学习spring cloud

This commit is contained in:
2023-03-06 23:50:41 +08:00
parent e608c50af1
commit 0cd5c1ef28

View File

@@ -0,0 +1,22 @@
# Spring Cloud
## eureka
eureka是由netflix公司开源的一个服务注册与发现组件。eureka和其他一些同样由netflix公司开源的组建一起被整合为spring cloud netflix模块。
### eureka和zookeeper的区别
#### CAP原则
CAP原则指的是在一个分布式系统中一致性Consistency、可用性Aailability和分区容错性Partition Tolerance三者中最多只能实现两者无法实现三者兼顾。
- C一致性表示分布式系统中不同节点中的数据都要相同
- A可用性代表可以允许某一段时间内分布式系统中不同节点的数据可以不同只要分布式系统能够保证最终数据的一致性。中途允许分布式系统中的节点数据存在不一致的情形
- P及Partition Tolerance通常情况下节点之间的网络的断开被称之为network partition。故而partition tolerance则是能够保证即使发生network partition分布式系统中的节点也能够继续运行
通常P是必选的而在满足P的前提下A和C只能够满足一条即AP或CP。
#### zookeeper遵循的原则
zookeeper遵循的是cp原则如果zookeeper集群中的leader宕机那么在新leader选举出来之前zookeeper集群是拒绝向外提供服务的。
#### eureka遵循的原则
和zookeeper不同eureka遵循的是ap原则这这意味着eureka允许多个节点之间存在数据不一致的情况即使某个节点的宕机eureka仍然能够向外提供服务。
### eureka使用
可以通过向项目中添加eureka-server的依赖来启动一个eureka-server实例。eureka-server作为注册中心会将其本身也作为一个服务注册到注册中心中。
#### 注册实例id
注册实例id由三部分组成`主机名称:应用名称:端口号`构成了实例的id。每个实例id都唯一。