淘宝的 diamond
服务端搭建
- 安装jdk
- 安装maven
- 安装tomcat
- 安装mysql
启动mysql并创建数据库和表
1234567891011121314151617181920212223242526272829303132333435 |
-- 创建Diamond数据库CREATE DATABASE IF NOT EXISTS `diamond` /*!40100 DEFAULT CHARACTER SET utf8 */;USE `diamond`; -- 配置表CREATE TABLE IF NOT EXISTS `config_info` ( `id` bigint(64) unsigned NOT NULL AUTO_INCREMENT, `data_id` varchar(255) NOT NULL DEFAULT '', `group_id` varchar(128) NOT NULL DEFAULT '', `content` longtext NOT NULL, `md5` varchar(32) NOT NULL DEFAULT '', `src_ip` varchar(20) DEFAULT NULL, `src_user` varchar(20) DEFAULT NULL, `gmt_create` datetime NOT NULL DEFAULT '2010-05-05 00:00:00', `gmt_modified` datetime NOT NULL DEFAULT '2010-05-05 00:00:00', PRIMARY KEY (`id`), UNIQUE KEY `uk_config_datagroup` (`data_id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8; -- 组表CREATE TABLE IF NOT EXISTS `group_info` ( `id` bigint(64) unsigned NOT NULL AUTO_INCREMENT, `address` varchar(70) NOT NULL DEFAULT '', `data_id` varchar(255) NOT NULL DEFAULT '', `group_id` varchar(128) NOT NULL DEFAULT '', `src_ip` varchar(20) DEFAULT NULL, `src_user` varchar(20) DEFAULT NULL, `gmt_create` datetime NOT NULL DEFAULT '2010-05-05 00:00:00', `gmt_modified` datetime NOT NULL DEFAULT '2010-05-05 00:00:00', PRIMARY KEY (`id`), UNIQUE KEY `uk_group_address` (`address`,`data_id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8; |
下载源码
1 |
git clone ://github.com/gzllol/diamond.git |
打包
- 修改diamond-server/src/main/resources/system.properties文件,将diamond.server.addr的值换成Diamond服务器所在机器的ip地址
- 修改diamond-server/src/main/resources/jdbc.properties文件,配置mysql服务器的url,用户名和密码
- 在根目录执行打包命令
1 |
mvn clean package -Dmaven.test.skip=true |
用tomcat加载diamond-server/target/diamond-server.war
客户端使用
将diamond-client jar包发布到maven仓库
1 |
mvn clean deploy -Dmaven.test.skip=true |
在工程中引入jar包
12345 |
<dependency> <groupId>com.taobao.diamond</groupId> <artifactId>diamond-client</artifactId> <version>2.0.5.4.taocode-SNAPSHOT</version></dependency> |
使用例子
1234567891011 |
DiamondManager manager = n 大专栏 多种配置的分布式配置中心ew DefaultDiamondManager("${your_config_data_id}", new ManagerListener() { public Executor getExecutor() { return null; } public void receiveConfigInfo(String configInfo) { System.out.println("receive config: " + configInfo); }}); |
在配置中心界面添加一个配置
- 登陆配置中心(本机是127.0.0.1:8080),用户名abc,密码123
- 点击左侧“配置信息管理”
- 点击添加配置信息
- 输入data_id(就是配置的id,3中的${your_config_data_id})和配置内容
- 点击“提交”
- 在更新配置时,客户端会调用ManagerListener的回调函数receiveConfigInfo,参数就是最新的配置内容
百度的 disconf (配置麻烦)
基于mysql
快速文档https://disconf.readthedocs.io/zh_CN/latest/install/src/01.html
- 环境配置
disconf运行需要如下软件:mysql、nginx、tomcat、zookeeper、redis,这个网上可以找到很多种安装配置的方法 - clone disconf
disconf的代码在github上开源了,是一个很好的分布式配置管理平台,github上很多人fork了
下载至本地
cd work/github
git clone https://github.com/knightliao/disconf.git - 修改环境变量
sudo vi /etc/profile,在文件的末尾加上
ONLINE_CONFIG_PATH=/usr/local/xxx/disconf/source
WAR_ROOT_PATH=/usr/local/xxx/disconf/war
export ONLINE_CONFIG_PATH
export WAR_ROOT_PATH
注意:disconf这个文件夹必须有写的权限 - 修改配置
cp work/github/disconf/disconf-web/profile/rd/application-demo.properties jdbc-mysql.properties redis-config.properties zoo.properties log4j.properties logback.xml rabbit.properties /usr/local/xxx/disconf/source
将application-demo.properties修改成application.properties(mv或者cp命令都可以)
然后将/usr/local/xxx/disconf/source下的这4个配置文件修改成自己环境相关的配置
application.properties
该文件中主要是配置了监控邮件发送和接受的服务器和邮箱地址
zoo.properties
主要修改里面的hosts,指定zookeeper集群的host的端口
jdbc-mysql.properties
主要修改数据库的host和mysql的用户名和密码
redis-config.properties
主要修改2个实例的host和端口
rabbit.properties
修改用户名和密码以及端口(自己安装的默认端口是5672)
log4j.properties
主要修改日志存放的路径
log4j.appender.dailyRolling.File=/home/xxx/xxx/tomcat/log/disconf-log4j.log
logback.xml
主要修改web和监控的log存放位置 - 生成war包
cd disconf/disconf-web
sh deploy/deploy.sh
然后会发现war的内容会生成在/usr/local/xxx/disconf/war这个文件夹下 - 初始化数据库
如何初始化根据disconf-web下的sql文件夹下的README.md来初始化 - tomcat配置
在tomcat的server.xml中加入 - nginx配置
在http这个标记对里面加上如下配置(/etc/nginx/nginx.conf):
upstream disconf {
? server 127.0.0.1:8080;
}
server {
? listen 8991;
? server_name localhost;
? access_log /home/xxx/nginx/log/disconf/access.log;
? error_log /home/xxx//nginx/log/disconf/error.log;
location / {
root /usr/local/xxx/disconf/war/html;
if ($query_string) {
expires max;
}
}
location ~ ^/(api|export) {
proxy_pass_header Server;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme $scheme;
proxy_pass http://disconf;
}
}
upstream disconf 配置中的端口必须与tomcat启动的端口一致
server中listen是启动该disconf前端的端口
里面需要修改access_log和error_log指定log的位置
disconf使用前后端分离的部署方式,前端配置在nginx是那个,后端api部署在tomcat中
启动
分别启动tomcat和nginx,打开浏览器:http://localhost:8991/
使用用户名admin和密码admin进入系统
至此disconf的web操作服务搭建完成
携程的 apollo (开箱即用,推荐)
官方介绍
服务端基于Spring Boot和Spring Cloud开发,打包后可以直接运行,不需要额外安装Tomcat等应用容器。
Java客户端不依赖任何框架,能够运行于所有Java运行时环境,同时对Spring/Spring Boot环境也有较好的支持。
- 目前唯一的外部依赖是MySQL,所以部署非常简单,只要安装好Java和MySQL就可以让Apollo跑起来
开源配置中心Apollo的设计与实现.pnf
Spring的 Cloud Config
基于svn -git 文件系统
无可视化界面 前面几种都有可视化页面
对比
总结
原文地址:https://www.cnblogs.com/lijianming180/p/12258981.html
时间: 2024-11-05 13:50:43