1.首先,什么是注册中心
- 注册中心是一个集中化的服务目录,用于管理微服务架构中所有服务的元数据信息(如服务名、IP 地址、端口号等)。服务提供者在启动时将自己的信息注册到注册中心,服务消费者通过查询注册中心获取服务提供者的信息,从而实现服务的动态发现和调用。
- 注册中心是SpringCloud核心组件之一,现在主流使用的是Nacos,也有一些在使用ZooKeeper和Eureka这两种。
- 它用于实现服务的注册与发现。它的主要作用是解耦服务提供者和服务消费者之间的关系,使得服务消费者能够动态地发现和调用服务提供者。
2.注册中心有哪些?
2.1.Nacos(现在主流)
2.1.1.Nacos是什么
Nacos是阿里巴巴开源的服务注册与配置中心,近年来在 Java 微服务生态中非常流行,尤其是在 Spring Cloud Alibaba 生态中。
2.1.2.Nacos的特点
(1)服务发现和服务健康监测:
- Nacos 提供对服务的实时的健康检查,阻止向不健康的主机或服务实例发送请求。Nacos 支持传输层 (PING 或 TCP)和应用层 (如 HTTP、MySQL、用户自定义)的健康检查。
- 对于复杂的云环境和网络拓扑环境中(如 VPC、边缘网络等)服务的健康检查,Nacos 提供了 agent 上报模式和服务端主动检测 2 种健康检查模式。Nacos 还提供了统一的健康检查仪表盘,帮助您根据健康状态管理服务的可用性及流量。
(2)动态配置服务:
-
动态配置服务可以让您以中心化、外部化和动态化的方式管理所有环境的应用配置和服务配置。
-
配置中心化管理让实现无状态服务变得更简单,让服务按需弹性扩展变得更容易。
-
Nacos 提供了一个简洁易用的 UI(控制台样例 Demo)帮助您管理所有的服务和应用的配置。
-
Nacos 还提供包括配置版本跟踪、金丝雀发布、一键回滚配置以及客户端配置更新状态跟踪在内的一系列开箱即用的配置管理特性,帮助您更安全地在生产环境中管理配置变更和降低配置变更带来的风险。
(3)支持基于 DNS 和基于 RPC 的服务发现:
- Nacos 支持基于 DNS 和基于 RPC 的服务发现。服务提供者使用原生SDK、OpenAPI、或一个独立的Agent TODO注册 Service 后,服务消费者可以使用DNS TODO 或HTTP&API查找和发现服务。
(4)支持 AP 和 CP 两种一致性模型(基于 Raft 协议)
- Nacos 的注册中心支持 CP 也支持 AP,对他来说只是一个命令的切换,随你玩,还支持各种注册中心迁移到 Nacos,反正一句话,只要你想要的他就有。
(5)与 Spring Cloud、Dubbo 等框架集成良好
- Nacos 除了服务的注册发现之外,还支持动态配置服务,一句话概括就是 Nacos = Spring Cloud注册中心 &#