数据的发布和订阅:
数据的发布和订阅是一种1:N 的关系,多个订阅者对象同时监听某一主题对象,主题对象在自身状态发生变化后,会通知所有的订阅者对象,使他们能够自动的更新自己的状态。
发布订阅可以让发布方和订阅方独立封装,当一个对象的改变需要同时改变其他对象时,而且并不知道有多少个对象需要改变时,可以使用发布-订阅者模式。
发布订阅模式在分布式系统中的相关应用有 配置管理和服务发现,配置管理是指如果集群中的机器 拥有某些相同的配置 并且这些某些需要做相同的改变 ,我们可以使用发布订阅者模式 对这些配置做统一的管理,让这些机器各自订阅配置信息的改变,当配置发生改变时,这些机器就会得到通知,并更新为最新的配置。
服务发现是指 对集群中的服务上下线做同一的管理,每个工作服务器都可以作为服务的发布方 向集群注册自己的基本信息 而让某些监控服务器作为订阅方,订阅工作服务器的基本信息,当工作服务器的基本信息发生改变时,服务上下线,服务器的角色和服务范围变更,监控服务器可以得到通知并相应这些变化。
配置管理和服务发现:
zookeeper集群:
zookeeper
servers
worker server1
worker server2
worker server3
command
config
工作服务器集群
worker server1
worker server2
worker server3
Manager Server 管理服务器
Control Server 控制命令服务器 此时用zk命令行代替
config目录 配置信息 workserver 订阅config节点的改变 更新自己的config数据
servers 节点 用于服务发现 每个workServer在启动时都会在 Servers 目录下创建一个临时节点
manager Server 充当monitor 监控Servers节点的子节点的列表的变化情况 来 更新自己的内存中工作服务器列表的信息
通过control Server 由command 节点 作为中介向manager server 发送控制指令
control server 向command节点 写入命令信息 manager server 订阅 command节点的数据改变 来监听并执行命令
WorkServer 即架构图中的workerver
ManagerServer 即 管理节点
ServerConfig 即 配置信息
ServerData 即 服务器的基本信息