一、spring cloud其实是一系列成熟框架的集合,之前单体架构后期维护成本高,开发难度大,所以有了微服务的出现,然后spring cloud是家族的大成者,他没有重复造轮子,就是把市面上的成熟框架组合起来使用
二、Eureka和zookeeper区别
在分布式系统中有个重要原则:
CAP原则,c:Constency,一致性
a:available可用性 p:分区容错性
因为只能保证2个原则
zookeeper是主从架构的,如果主节点挂了,会从从节点选举一个作为主节点,但是这段时间服务注册功能就不能用的,所以能保证数据一致性,但是可用性稍微差点,所以zookeepr是维护CP原则
Eureka吸取了经验,他的所有节点都是平等的,所以只要有一台Eureka在线,就能正常使用服务注册功能,所以维护的是AP原则
从集群架构上看,因为Eureka结点都是平等,因为数据可能不一致情况,而zookeeper为了保证数据一致性,主从架构,集群无主时不对外提供服务
三、目前我们分布式微服务架构有3套
serviceComb+CSE注册中心
Springboot +spring cloud
Dubbo+zookeeper
serviceComb微服务间通信使用的是可以有rest,也可以有RPC
dubbo使用的RPC
cloud使用的是rest,基于http协议传输的,只要请求和响应过程遵循http协议即可,使用灵活,性能比RPC差点
四、微服务之间的原则
1、微服务之间都是无状态的,你也可以有状态,但是处理太复杂了。
无状态就是指这个请求怎么样都不影响你上一个请求,下一个请求啊
2、微服务之间也要保证幂等性
a服务请求b服务,b服务部署了3个服务机器,a服务请求查询时候他查询任意一个b服务的机器都要是一个结果,不能查询结果不同,要保证幂等性