
注册中心主要就是用来服务的管理,它的核心就是有服务的注册表,通过心跳的机制去动态维护。
注册中心是基于生产者和消费者的一个模型。
服务提供者会在一启动的时候,向这个注册中心去进行注册,把自身的一些信息写到注册中心里面。服务消费者就可以通过注册中心去找到想要消费的服务。
最后服务消费者找到了一些信息,就会来服务提供者这边找到相应的服务提供者去请求它所提供的服务。
以dubbo+zk为例子,服务提供者启动的时候就会向zk里面写入dubbo,一个provider这个目录去写入自己url的地址。
服务消费者启动的时候,通过订阅zk所创建的目录去获取提供者的url的地址,同时会在注册中心consumer的目录下面去写入自己url的一个地址。
这就是服务提供者和消费者在启动的时候会去做的一件事。

dubbo里面有个监控中心,监控中心在启动的时候去注册中心订阅整个生产者,消费者这样一个目录。
通过订阅这个目录,就可以查到所有的提供者和消费者的url。
这就是dubbo和zk做的事情。也就相当于你朋友,服务消费者,要去找你,服务提供者。那要知道你的地址在哪,这个时候你就要将你的地址向当地的居委会进行一个注册,之后你的朋友,服务消费者,可以通过居委会,注册中心,去找到你居住的一个信息,从而去找到你这个人。
这就是服务提供者,消费者,注册中心的联系。
注册中心除了保存这些信息,还得去看提供者是否还活着。通过心跳的机制,通过发送心跳包确认自己还活着。如果超过了10s没有向注册中心发送心跳包,那么就认为服务提供者挂掉了,那么还会去通知服务消费者这个服务不可用,那么就会删除提供者的信息。
这样就可以帮助我们管理好我们的应用。
如果发生了变动,因为流量进来了,单纯这几个服务提供者很难扛得住了,那么得去新启动一些服务提供者。如果没有注册中心,那么消费者全部得修改这个配置文件,那么这段时间对外是终止服务的。
最后最常见的就是zk + dubbo作为注册中心。