php zookeeper配置管理应用实践
来源:互联网 发布:手写字体软件 编辑:程序博客网 时间:2024/05/17 23:52
需求:
在服务迁移中经常会遇到这么一个问题
像mysql配置,memcached配置,redis配置,迁移服务后各种配置信息会改变,在机器数量较多的情况下,一个一个去修改明显是不方便的,如果业务对配置信息较为敏感,则有可能因为配置修改不及时导致服务down掉。
说明来源:http://www.ibm.com/developerworks/cn/opensource/os-cn-zookeeper/
Zookeeper 分布式服务框架是 Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等, Zookeeper 的典型的应用场景(配置文件的管理、集群管理、同步锁、Leader 选举、队列管理等)
安装
ubuntu
wget http://download.nextag.com/apache/zookeeper/zookeeper-3.3.6/zookeeper-3.3.6.tar.gz
mv zookeeper-3.3.6 zookeeper
cd zookeeper
调整配置文件
mv conf/zoo_samle.cfg conf/zoo.cfg
启动zk
sudo ./bin/zkServer.sh start
查看是否安装成功,quit退出
./bin/zkCli.sh -server 127.0.0.1:2181
示例
下面示例中用到的Zookeeper_Example来自
https://github.com/andreiz/php-zookeeper/examples
1、zkMgr.php
添加一个节点到zookeeper,并把mysql配置信息添加到节点上
<?php
require_once ‘Zookeeper_Example.php’;
$zk = new Zookeeper_Example(‘127.0.0.1:2181’);
$bbs_mysql_config = array(
‘dbhost’ => ‘127.0.0.1’,
‘dbuser’ => ‘root’,
‘dbpwd’ => ‘root’,
‘dbname’ => ’test'
);
$zk->set(‘/BBS_MYSQL_CONFIG', json_encode($bbs_mysql_config));
2、业务端
例如在业务信息配置脚本中,去请求zookeeper获取配置信息。
<?php
try{
require_once ‘Zookeeper_Example.php’;
$zk = new Zookeeper_Example(‘127.0.0.1:2181’);
$bbs_mysql_config = json_decode($zk->get(‘/BBS_MYSQL_CONFIG’));
$db[‘host’] = $bbs_mysql_config[‘dbhost’];
$db[‘dbuser’] = $bbs_mysql_config[‘ dbuser’];
$db[‘dbpwd’] = $bbs_mysql_config[‘dbpwd’];
$db[‘dbname’] = $bbs_mysql_config[‘dbname’];
}catch(Exception e){
echo ‘Zookeeper Server ERROR’;
exit(1);
}
后记:
其实关于配置集中管理,我个人认为如果业务不复杂并且机器数量不多,不建议使用,因为这会使业务逻辑变得更加复杂,配置管理只是zookeeper的冰山一角,他还有更多的功能等我们深挖,如有错误,还等各位批评指证,谢谢。
- php zookeeper配置管理应用实践
- ZooKeeper应用场景-配置管理
- Zookeeper应用--配置管理
- Zookeeper应用 - 集中配置管理系统的实现
- Zookeeper应用 - 集中配置管理系统的实现
- ZooKeeper实战应用之【统一配置管理】
- ZooKeeper实战应用之【统一配置管理】
- ZooKeeper实战应用之【统一配置管理】
- ZooKeeper实战应用之【统一配置管理】
- Zookeeper的PHP实践
- Zookeeper配置管理
- Zookeeper配置管理
- Zookeeper系列(三十)Zookeeper场景应用之配置管理中心
- ZooKeeper场景实践:(2)集中式配置管理
- Zookeeper和Curator-Framework实践系列之: 配置管理
- Zookeeper和Curator-Framework实践系列之: 配置管理
- zookeeper应用——集中配置管理系统的实现
- ZooKeeper 笔记(3) 实战应用之【统一配置管理】
- 百度地图开发之获取定位地点
- dorado5之SqlMatchRule
- struts2学习——Action
- android下查看内存阀值限制
- Two Sum
- php zookeeper配置管理应用实践
- Android通讯录开发之联系人
- 使用SQLQuery 在Hibernate中使用sql语句
- gloox移植到android平台
- Visual Studio 应用第三方库的设置方法
- 第七章测试报告的生成
- 《静态页面爬虫》读后总结
- 404自动跳转主页的实现
- [iOS进阶]iOS消息机制