|
|
|
@ -399,11 +399,11 @@ nginx默认判断节点失效是以connect refuse和timeout为标准,在对某
|
|
|
|
|
|
|
|
|
|
# 注册中心
|
|
|
|
|
|
|
|
|
|
注册中心主要是为分布式服务的发布与发现提供一层统一标准化的基础组件,便于使用者直接操作简单接口即可实现服务发布与发现功能。
|
|
|
|
|
注册中心主要是为分布式服务的**发布与发现**提供一层统一标准化的基础组件,便于使用者直接操作简单接口即可实现服务发布与发现功能。
|
|
|
|
|
|
|
|
|
|
## 服务注册
|
|
|
|
|
|
|
|
|
|
服务注册有两种形式:客户端注册和代理注册。
|
|
|
|
|
服务注册有两种形式:**客户端注册**和**代理注册**。
|
|
|
|
|
|
|
|
|
|
### 客户端注册
|
|
|
|
|
|
|
|
|
@ -500,11 +500,12 @@ Zookeeper会有一些未知的问题出现,所以需要生产特性来应对
|
|
|
|
|
|
|
|
|
|
下面结合各个维度对比一下各组件:
|
|
|
|
|
|
|
|
|
|
| 组件 | 优点 | 缺点 | 访问协议 | 一致性算法 |
|
|
|
|
|
| :-------- | :----------------------------------------------------------- | :----------------------------------------------------------- | :------- | :---------- |
|
|
|
|
|
| Zookeeper | 1.功能强大,不仅仅只是服务发现;2.提供watcher机制可以实时获取服务提供者的状态;3.广泛使用,dubbo等微服务框架已支持 | 1.没有健康检查;2.需要在服务中引入sdk,集成复杂度高;3.不支持多数据中心 | TCP | Paxos(CP) |
|
|
|
|
|
| Consul | 1.开箱即用,方便集成;2.带健康检查;3.支持多数据中心;4.提供web管理界面 | 不能实时获取服务变换通知 | HTTP/DNS | Raft(CP) |
|
|
|
|
|
| Nacos | 1.开箱即用,适用于dubbo,spring cloud等;2.AP模型,数据最终一致性;3.注册中心,配置中心二合一(二合一也不一定是优点),提供控制台管理;4.纯国产,各种有中文文档,久经双十一考验 | 刚刚开源不久,社区热度不够,依然存在bug | HTTP/DNS | CP+AP |
|
|
|
|
|
| **方案** | **优点** | **缺点** | **访问协议** | **一致性算法** |
|
|
|
|
|
| :------------ | :----------------------------------------------------------- | :----------------------------------------------------------- | :----------- | :------------- |
|
|
|
|
|
| **Zookeeper** | 1.功能强大,不仅仅只是服务发现;2.提供watcher机制可以实时获取服务提供者的状态;3.广泛使用,dubbo等微服务框架已支持 | 1.没有健康检查;2.需要在服务中引入sdk,集成复杂度高;3.不支持多数据中心 | TCP | Paxos(CP) |
|
|
|
|
|
| **Consul** | 1.开箱即用,方便集成;2.带健康检查;3.支持多数据中心;4.提供web管理界面 | 不能实时获取服务变换通知 | HTTP/DNS | Raft(CP) |
|
|
|
|
|
| **Nacos** | 1.开箱即用,适用于dubbo,spring cloud等;2.AP模型,数据最终一致性;3.注册中心,配置中心二合一(二合一也不一定是优点),提供控制台管理;4.纯国产,各种有中文文档,久经双十一考验 | 刚刚开源不久,社区热度不够,依然存在bug | HTTP/DNS | CP+AP |
|
|
|
|
|
| **Eureka** | | | HTTP | AP |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -4270,7 +4271,7 @@ SendResult sendResult = producer.send(msg);
|
|
|
|
|
|
|
|
|
|
- **可用性(Availability)**:在集群中一部分节点故障后,集群整体还能响应客户端的读写请求
|
|
|
|
|
|
|
|
|
|
- **分区容错性(Partition Tolerance)**:即使某一部分集群坏掉,另一部分仍能正常工作
|
|
|
|
|
- **分区容错性(Partition Tolerance)**:系统中任意信息的丢失或失败不会影响系统的继续运作
|
|
|
|
|
|
|
|
|
|

|
|
|
|
|
|
|
|
|
|