欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

<三>基于Fourinone实现统一配置管理demo

程序员文章站 2022-03-03 08:13:59
...
在分布式多台机器环境下,维持统一的配置信息是最常见的需求, 当配置信息改变时,所有的机器能实时获取并更新。

fourinone通过park进行配置信息管理,park提供创建和修改信息的方法,并支持轮循和事件响应两种方式获取变化的对象,两种方式的效果一样。

SetConfig:在parkserver上建立一个“domain=浙江、node=杭州、value=西湖”的配置信息,并且在10秒后把“西湖”改为“余杭”
GetConfigA:演示了轮循方式监控配置信息变化,它调用一个getLastest的方法,该方法可以传入一个旧版本的对象,并对比获取最新版本的对象,如果有就打印,如果没有最新版本,就返回null

GetConfigB:演示了事件响应方式监控配置信息变化,它实现一个LastestListener的事件接口并进行注册,当信息变化时,会产生事件并获取到变化后的对象进行处理,LastestListener的happenLastest方法有个boolean返回值,如果返回false,它会一直监控配置信息变化,继续有新的变化时还会进行事件调用;如果返回true,它完成本次事件调用后就终止。

运行步骤:
1、启动ParkServerDemo(它的IP端口已经在配置文件指定)
2、运行GetConfigA
3、运行GetConfigB
4、运行SetConfig

如果是线上环境,为避免ParkServer宕机, parkServer可以配置master和任意数量的slave,请使用ParkMasterSlave替换上面的ParkServerDemo即可,每次输入M或者S启动master或者slave,运行过程关掉master,GetConfig仍然可以从slave获取配置信息。

fourinone对比zookeeper的优势:zookeeper没有获取最新版本信息的方法支持,它只能粗暴的在每次写入更新等方法时注册一个watch,当这些方法被调用后就回调,它不考虑信息内容是否变化,对于没有使信息内容发生改变的更新,zookeeper仍然会回调,并且zookeeper的回调比较呆板,它只能用一次,如果信息持续变化,必须又重新注册watch, 而fourinone的事件处理则可以*控制是否持续响应信息变化。

邮箱:fourinone@yeah.net
腾讯群:1313859

本demo源码和开发包下载
http://www.skycn.com/soft/68321.html