1. SpringCloud特点
SpringCloud
专注于为典型的用例和扩展机制提供良好的开箱即用体验,以涵盖其他情况:
- 分布式/版本化配置
- 服务注册和发现
Eureka
- 路由
Zuul
- 服务到服务的呼叫
- 负载均衡
Ribbon
- 断路器
Hystrix
- 分布式消息传递
2. 分布式系统的三个指标CAP
在介绍SpringCloud
默认使用的注册中心前,先介绍分布式系统的三个指标,分别是:
Consistency:
一致性,在分布式系统中,更新操作执行成功后所有的用户的读操作必须返回最新值;client写入,server同步至整个系统;Availability:
可用性,只要收到用户的请求,在一定的时间内服务器就必须给出回应,回应的结果可以是成功或是失败;Partition tolerance:
分区容错,即区间通信可能失败,在网络中断,消息丢失的情况下,仍对外提供服务;一般无法避免,可以认为CAP中的P总是成立
CAP
定律说的是,在一个分布式计算机系统中,一致性C,可用性A,分区容错性P这三种保证无法同时得到满足,最多满足两个:
放弃P:
为了避免分区容错性问题的发生,一种做法是将所有与事务相关的数据都放在一台服务器上,虽然不能保证100%系统不会出错,但是不会碰到由分区带来的负面效果,这样的做法会严重影响系统的扩展性。
放弃A:
放弃可用性,一旦遇到分区容错故障,受到影响的服务器需要等待一定来@源gao*daima.com搞@代#码网的时间,因此会导致在等待期间系统无法对外提供服务。
放弃C:
这儿说的放弃一致性,并不是完全放弃数据的一致性,而是放弃数据的强一致性,而保留数据的最终一致性。以网络购物为例,对只剩下一件库存的商品,如果同时接受到了两份订单,那么较晚的订单将被告知商品告罄。
文中部分CAP理论摘自: https://www.cnblogs.com/hxsyl/p/4381980.html
3. Eureka
基本介绍:
Eureka
是SpringCloud
官方推荐用于服务注册和发现,一个基于REST的服务
SpringBoot
实现了Netflix OSS
的集成,使用Eureka
的原因之一是因为其可以利用Spring Cloud Netflix
的其他组件:智能路由(Zuul)、客户端负载均衡(Ribbon
)等
基本组成:
Eureka
由多个Instance
(服务实例)组成,分为Eureka Server
和Eureka Client