1. 配置信息保存在程序代码中
这种方案简单,但每次修改配置都要从新编译、部署应用程序。显然这种方案很不方便,也不可靠,更没法作到修改的实时生效。web
2. 配置信息保存在xml文件或者属性文件中
在参数信息保存在xml或者属性文件中,当须要修改参数时,直接修改 xml 文件。这样无需从新编译,只需从新部署修改的文件便可。但而后对全部的应用进行从新部署。这样作的缺点显而易见,要往上百台机器上从新部署应用,简直是一个噩梦。同时该方案还有一个缺点,就是配置修改没法作到实时生效。修改后每每过一段时间才能生效。数据库
3. 配置信息保存在数据库中
当须要修改参数时,直接修改数据库,而后重启分布式应用程序,或者刷新分布式应用的缓存。尽管这种作法比以上两种方案简单,但却面临着单点失效问题。若是数据库服务器停机,则分布式应用程序的配置信息将没法更新。另外这种方案的配置修改生效实时性虽然比第二种方案好些,但仍然不能达到某些状况下的要求。缓存
若是使用ZooKeeper来实现,就能够直接把配置信息保存到ZooKeeper中,当配置内容发生变化时,就通知监听者如应用程序去从新读取配置文件。服务器