what
所有服务提供者将自己的服务名称及自己的主机详情(IP,端口,版本等)写入到另一台主机中的一个列表中,这个主机称之为服务注册中心,这个列表称为服务注册表
nacos
nacos=服务注册中心+配置中心=eureka+springcloud config+spring cloud bus+kafka
一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台
why
服务提供方与服务消费方解耦
服务消费者直接连接服务提供者,当消费者出故障宕机了,会影响服务提供者
需要一个服务注册中心,提供者对于消毒者来说是透明的、不固定的
how
(TODO:后续补上)
nacos
nacos config可以自动感知配置更新,采用长连接的pull模型
长连接的pull模型
问题引入nacos config Server中配置的变化,nacos config client如何知晓?
两种配置信息更新模型:
push模型(推):当server中配置有变化的时候,主动推送到相应的订阅者client。
优势:可以实时更新配置;不足:需要心跳机制维护长连接
pull模型(拉):client定时发起任务,取server拉取更新后的配置
优势:无需保持长连接;不足:不能实现实时更新配置
长连接的pull模型
结合了pull模型和push模型的优势
clien任然定时发起拉取更新后配置的请求,如果有更新,server立刻将更新数据以响应的形式发送给client;如果无更新,server并不立即向client返回响应,而是临时性的保持住这个连接一段时间,在这个时间段内,若有更新,则立刻将变更数据push;在这个时间段内依旧没有更新,则放弃此次长连接,等待下一次client的pull请求