一 注册中心
一 什么是注册中心
注册中心可以说是微服务架构中的“通讯录”,它记录了服务和服务地址的映射关系。在分布式架构中,服务会注册到这里,当服务需要调用其它服务时,就到这里找到服务的地址,进行调用。
当我想给张三打电话时,那我需要在通讯录中按照名字找到张三,然后就可以找到他的手机号拨打电话。
– 服务发现李四办了手机号并把手机号告诉了我,我把李四的号码存进通讯录,后续,我就可以从通讯录找到他。
– 服务注册通讯录
– 服务注册中心
总结: 服务注册中心的作用就是服务的注册和服务的发现。
二 常见的注册中心
特性 | Eureka | Nacos | Consul | Zookeeper |
---|---|---|---|---|
CAP | AP | CP+AP | CP | CP |
健康检查 | Cilent Beat | TCP/HTTP/MySQL/Cilent Beat | CP/HTTP/gRPC | keep Alive |
雪崩保护 | 有 | 有 | 无 | 无 |
自动注销实例 | 支持 | 支持 | 不支持 | 支持 |
访问协议 | HTTP | HTTP/DNS | HTTP/DNS | TCP |
监听支持 | 支持 | 支持 | 支持 | 支持 |
多数据中心 | 支持 | 支持 | 支持 | 不支持 |
跨注册中心同步 | 不支持 | 支持 | 支持 | 不支持 |
SpringCloud集成 | 支持 | 支持 | 支持 | 支持 |
三 为什么需要注册中心
了解了什么是注册中心,那么我们继续谈谈,为什么需要注册中心。在分布式系统中,我们不仅仅是需要在注册中心找到服务和服务地址的映射关系这么简单,我们还需要考康更多更复杂的问题:
- 服务注册后,如何被及时发现
- 服务宕机后,如何放下线
- 服务如何有效的水平扩展
- 服务发现时,如何进行路由
- 服务异常时,如何进行降级
- 注册中心如何实现自身的高可用
这些问题的解决都依赖于注册中心。简单看,注册中心的功能有点类似于 DNS 服务器或者负载均衡器,而实际作为微服务的基础组件,可能要更加复杂,也需要更多的灵活性和时效性,所以我们还需要学习更多 Spring loud 微服务组件协同完成应用开发。
四 注册中心解决了什么问题
- 服务管理
- 服务的依赖关系管理
五 Eureka注册中心
Eureka注册中心的三种角色: