2018/2/17 SpringCloud的一个简单小介绍
在学习SpringCloud之前,我以为SpringCloud是与Double一样,只是个单纯的RPC框架。但在今天的学习中,我发现并非如此,事实上,SpringCloud是多个框架的集合,感觉Spring一家子都这样,做的更多的是集众人之长,它自己则更像是一个容器,只是为我们提供了很多默认配置和调用模板,让我们使用起来更方便,它支持的功能大概有配置管理、服务发现、断路器、路由、微代理、事件总线、全局锁、决策竞选、分布式会话等等。所以,SpringCloud的定位已经很清晰了,它就是一个能让你快速构建分布式系统的框架;当然,有一点要注意,SpringCloud是基于Springboot的。
https://springcloud.cc/ 这是SpringCloud的中文网站,里面可以看到它现阶段能集成的框架。不过有一点要注意的是,在服务注册中心上,SpringCloud虽然也支持Zookeeper,但Eureka更好用,网上的教程也都大都基于Eureka。
首先介绍下Eureka吧,一个服务注册与发现框架,不要以为它与Zookeeper一样,两者功能是不同的,要知道Zookeeper本身只具有存储数据与监听节点功能,所有其它功能都是我们使用代码基于这两个功能之上进行扩展的,它本身是没有像什么服务注册发现,分布式锁,分布式事务,统一管理配置这些功能的;但Eureka则是为了服务注册与发现而生的,这就是它本身自带的功能,同时值得一提的是,它是个Servlet应用,这一点可以自己观看源码(过两天如果有时间的话我会解析源码然后写一下)。同时,Eureka也提供了心跳机制(默认30S),健康检查(和心跳机制不是一个功能,意思是多久没收到心跳我就认定你不健康了,就剔除你这个服务提供者,这个时间间隔可以大于设定的心跳的时间,也就是说,可以在多次收不到心跳后再剔除(默认90S)),客户端缓存
(和Dobbu一样,它也具有消费方缓存服务提供方信息的机制,刷新时间默认是30s,可以自己配置)。而且有一点要注意的是,SpringCloud是通过rest形式来进行服务调用的.所以,我们在命名服务提供方的application name时一定要注意点,这个可不是RPC框架的直接调方法,我们一般使用rest形式调用时都是application name加上context path再加上具体的服务路径进行调用的;
最后,Eureka的集群搭建十分简单,比如在配置文件中写上对方的URL即可,在服务启动时,会互相将自己节点中保存的元数据信息(也就是服务生产方的信息)复制一份到对方的节点中,这样不管哪个节点挂掉都没事。这个和ElasticSearch的主分片,副本分片的机制倒是有异曲同工之妙;
2018/2/17 SpringCloud的一个简单小介绍的更多相关文章
- 关于Hibernate的一个简单小程序
本人根据视频学习了一下三大框架中比较简单的一个Hibernate,并简单完成了一个运用Hibernate的小程序 Hibernate是一个简化web程序Dao层的一个框架,应用他,可以完全脱离sql语 ...
- 关于ExpandableListView用法的一个简单小例子
喜欢显示好友QQ那样的列表,可以展开,可以收起,在android中,以往用的比较多的是listview,虽然可以实现列表的展示,但在某些情况下,我们还是希望用到可以分组并实现收缩的列表,那就要用到an ...
- Paxos算法的一个简单小故事
一.Paxos是什么? Paxos,它是一个基于消息传递的一致性算法,Leslie Lamport在1990年提出,近几年被广泛应用于分布式计算中,Google的Chubby,Apache的Zooke ...
- 一个简单小技巧实现手机访问.html文件网页效果
注册登录Github不解释 settings设置往下拉 选择一个主题上传代码文件到code 打开这个文件选择此时的网址 在网址前面加上 这段代码 http://htmlpreview.github.i ...
- scrapy的一个简单小项目
使用scrapy抓取目标url下所有的课程名和价格,并将数据保存为json格式url=http://www.tanzhouedu.com/mall/course/initAllCourse 观察网页并 ...
- 使用 Suricata 进行入侵监控(一个简单小例子访问百度)
前期博客 基于CentOS6.5下Suricata(一款高性能的网络IDS.IPS和网络安全监控引擎)的搭建(图文详解)(博主推荐) 1.自己编写一条规则,规则书写参考snort规则(suricata ...
- python+requests----登录接口reponse中token传递给其他接口使用的一个简单小示例介绍
#!/usr/bin/env python # coding=UTF-8 import requests def login(): url = "https://xxxx.xxx.xxx/v ...
- 一个简单用原生js实现的小游戏----FlappyBird
这是一个特别简单的用原生js实现的一个小鸟游戏,比较简单,适合新手练习 这是html结构 <!DOCTYPE html><html lang="en">&l ...
- 通过Dapr实现一个简单的基于.net的微服务电商系统(十四)——开发环境容器调试小技巧
之前有很多同学提到如何做容器调试,特别是k8s环境下的容器调试,今天就讲讲我是如何调试的.大家都知道在vs自带的创建项目模板里勾选docker即可通过F5启动docker容器调试.但是对于启动在k8s ...
随机推荐
- JSR-303原生支持的限制
@Null: 限制只能为null@NotNull: 限制必须不为null@AssertFalse: 限制必须为false@AssertTrue: 限制必须为true@DecimalMax(value) ...
- css3 transform + deviceorientation实现图片旋转效果
1. 陀螺仪deviceorientation的使用,参考<关于陀螺仪deviceorientation>https://segmentfault.com/a/11900000071838 ...
- pandas之groupby分组与pivot_table透视表
zhuanzi: https://blog.csdn.net/qq_33689414/article/details/78973267 pandas之groupby分组与pivot_table透视表 ...
- spring framework 第一章数据库管理(data access)
spring data access 的网址:https://docs.spring.io/spring/docs/current/spring-framework-reference/index.h ...
- sql语句中截取字符串
今天在开发过程中因为要用到合并单元格,在程序里实现了以后,查出来的数据太长,都把格式撑大了,后来想想可以在sql语句查询的时候就截取,就去网上找了一下,挺好用,就转了过来: 合并单元格: /// &l ...
- Farseer.net轻量级ORM开源框架 V1.x 入门篇:存储过程实体类映射
导航 目 录:Farseer.net轻量级ORM开源框架 目录 上一篇:Farseer.net轻量级ORM开源框架 V1.x 入门篇:视图的数据操作 下一篇:Farseer.net轻量级ORM开源 ...
- 【译】x86程序员手册36-9.9异常汇总
9.9 Exception Summary 异常汇总 Table 9-6 summarizes the exceptions recognized by the 386. Table 9-6. Exc ...
- chosen-bootstrap使用技巧
1.页面加载完成后,通过js方式设置值,无法有效显示的问题. 解决:先设置值,让后在进行初始化操作. // 设置select选中值 $("#type").val(type); // ...
- q-oo-p , a piggy domain name. Very cute. boyan.zheng at foxmail.com
Contact me.
- Python界面编程之六----布局
布局(转载于–学点编程吧)通过实践可知采用了布局之后能够让我们的程序在使用上更加美观,不会随着窗体的大小发生改变而改变,符合我们的使用习惯. 绝对位置程序员以像素为单位指定每个小部件的位置和大小. 当 ...