注册中心的作用:
微服务将业务拆分成了一个一个服务,当实现一个业务的时需要调用多个服务,那么每个服务的调用都需要知道它的URL。如何更方便的调用,注册中心就出现了。
我们可以把注册中心当作通讯录,通讯录中记录了服务和服务地址的映射关系。
注册中⼼⼀般包含如下⼏个功能:
1. 服务发现:
服务注册/反注册:保存服务提供者和服务调⽤者的信息
服务订阅/取消订阅:服务调⽤者订阅服务提供者的信息,最好有实时推送的功能
服务路由(可选):具有筛选整合服务提供者的能⼒。
2. 服务配置:
配置订阅:服务提供者和服务调⽤者订阅微服务相关的配置
配置下发:主动将配置推送给服务提供者和服务调⽤者
3. 服务健康检测:
检测服务提供者的健康情况
常见的注册中心:
1.可以充当服务注册中心的服务器很多,但一般情况下,不同的微服务生态,使用不同的注册中心。
若微服务使用的是Dubbo,一般注册中心使用Zookeeper
若微服务使用的是Spring Cloud,一般注册中心使用Eureka或Consul
若微服务使用的是Spring Cloud Alibaba,一般注册中心使用Nacos
2. 常见注册中心简介
Zookeeper
ZooKeeper是一个开源的分布式应用程序协调服 务器,其为分布式系统提供一致性服务。其一致性是通过基于Paxos算法的ZAB协议完成的。其主要功 能包括:配置维护、命名服务、分布式同步、集群管理、DNS服务、Master选举、分布式锁、分布式队 列等。其中DNS服务就是提供的注册中心服务。
Eureka
Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS域中的 中间层服务,以达到负载均衡和中间层服务故障转移的目的。SpringCloud将它集成在其子项目springcloud-netflix中,实现SpringCloud的服务发现功能。
Consul
Consul是由HashiCorp基于Go语⾔开发的⽀持多数据中⼼分布式⾼可⽤的服务发布和注册服务软件, 采 ⽤Raft算法保证服务的⼀致性,且⽀持健康检查。
Nacos
Nacos是阿里巴巴开源的一款支持服务注册与发现,配置管理以及微服务管理的组件。Nacos是⼀个更易于构建云原⽣应⽤的动态服务发现、配置管理和服务管理平台。简单来说 Nacos 就是注册中⼼ + 配置中⼼的组合,提供简单易⽤的特性集,帮助我们解决微服务开发必会涉及到的服务注册与发现,服务配置,服务管理等问题。