多种配置的分布式配置中心

淘宝的 diamond

参考文档

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

打包

  1. 修改diamond-server/src/main/resources/system.properties文件,将diamond.server.addr的值换成Diamond服务器所在机器的ip地址
  2. 修改diamond-server/src/main/resources/jdbc.properties文件,配置mysql服务器的url,用户名和密码
  3. 在根目录执行打包命令
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);    }});

在配置中心界面添加一个配置

  1. 登陆配置中心(本机是127.0.0.1:8080),用户名abc,密码123
  2. 点击左侧“配置信息管理”
  3. 点击添加配置信息
  4. 输入data_id(就是配置的id,3中的${your_config_data_id})和配置内容
  5. 点击“提交”
  6. 在更新配置时,客户端会调用ManagerListener的回调函数receiveConfigInfo,参数就是最新的配置内容

百度的 disconf (配置麻烦)

基于mysql

快速文档https://disconf.readthedocs.io/zh_CN/latest/install/src/01.html

liunx下disconf环境搭建吐血总结

  1. 环境配置
    disconf运行需要如下软件:mysql、nginx、tomcat、zookeeper、redis,这个网上可以找到很多种安装配置的方法
  2. clone disconf
    disconf的代码在github上开源了,是一个很好的分布式配置管理平台,github上很多人fork了
    下载至本地
    cd work/github
    git clone https://github.com/knightliao/disconf.git
  3. 修改环境变量
    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这个文件夹必须有写的权限
  4. 修改配置
    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存放位置
  5. 生成war包
    cd disconf/disconf-web
    sh deploy/deploy.sh
    然后会发现war的内容会生成在/usr/local/xxx/disconf/war这个文件夹下
  6. 初始化数据库
    如何初始化根据disconf-web下的sql文件夹下的README.md来初始化
  7. tomcat配置
    在tomcat的server.xml中加入
  8. 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 (开箱即用,推荐)

Apollo分布式配置中心部署以及使用

github地址

官方介绍

服务端基于Spring Boot和Spring Cloud开发,打包后可以直接运行,不需要额外安装Tomcat等应用容器。

Java客户端不依赖任何框架,能够运行于所有Java运行时环境,同时对Spring/Spring Boot环境也有较好的支持。

  • 目前唯一的外部依赖是MySQL,所以部署非常简单,只要安装好Java和MySQL就可以让Apollo跑起来

开源配置中心Apollo的设计与实现.pnf

Quick Start for java

Java客户端使用指南

Apollo分布式配置中心部署以及使用

Spring的 Cloud Config

基于svn -git 文件系统

无可视化界面 前面几种都有可视化页面

对比

总结

原文地址:https://www.cnblogs.com/lijianming180/p/12258981.html

时间: 2024-08-29 00:38:23

多种配置的分布式配置中心的相关文章

分布式配置中心201902

分布式配置中心 1.配置中心简介 2.xxl-conf简介 3.代码模拟演示 1.配置中心简介 为什么需要集中配置 当然是程序的发展,需要引入集中配置 随着程序功能的日益复杂,程序的配置日益增多:各种功能的开关.参数的配置.服务器的地址…… 对配置的期望也越来越高,配置修改后实时生效,灰度发布,分环境.分集群管理配置,完善的权限.审核机制…… 随着采用分布式的开发模式,项目之间的相互引用随着服务的不断增多,相互之间的调用复杂度成指数升高,每次投产或者上线新的项目时苦不堪言,因此需要引用配置中心治

【Spring Cloud】Spring Cloud Config 实现分布式配置中心

Spring Cloud Config 实现分布式配置中心 一.分布式配置中心 分布式系统中,往往拥有大量的服务应用,而每个应用程序都需要有对应的配置文件来协助完成服务环境初始化.运行.因此生产了大量的服务配置文件,Spring Cloud Config 可以实现配置文件的统一管理,它支持将配置服务放置在服务端的内存中(即服务端的本地内存),并且它也默认支持 git,所以我们也可将配置文件放置在 git 仓库,以便于我们的访问和开发. 二.Spring Cloud Config 起步 实现管理配

Spring Cloud构建微服务架构(四)分布式配置中心

Spring Cloud Config为服务端和客户端提供了分布式系统的外部化配置支持.配置服务器为各应用的所有环境提供了一个中心化的外部配置.它实现了对服务端和客户端对Spring Environment和PropertySource抽象的映射,所以它除了适用于Spring构建的应用程序,也可以在任何其他语言运行的应用程序中使用.作为一个应用可以通过部署管道来进行测试或者投入生产,我们可以分别为这些环境创建配置,并且在需要迁移环境的时候获取对应环境的配置来运行. 配置服务器默认采用git来存储

分布式配置中心

Spring Cloud Config为服务端和客户端提供了分布式系统的外部化配置支持.配置服务器为各应用的所有环境提供了一个中心化的外部配置.它实现了对服务端和客户端对Spring Environment和PropertySource抽象的映射,所以它除了适用于Spring构建的应用程序,也可以在任何其他语言运行的应用程序中使用.作为一个应用可以通过部署管道来进行测试或者投入生产,我们可以分别为这些环境创建配置,并且在需要迁移环境的时候获取对应环境的配置来运行. 置服务器默认采用git来存储配

【转】Diamond -- 分布式配置中心

特别提示:本人博客部分有参考网络其他博客,但均是本人亲手编写过并验证通过.如发现博客有错误,请及时提出以免误导其他人,谢谢!欢迎转载,但记得标明文章出处:http://www.cnblogs.com/mao2080/ 一.简介 Diamond是淘宝研发的分布式配置管理系统.使用Diamond可以让集群中的服务进程动态感知数据的变化,无需重启服务就可以实现配置数据的更新. 具有简单.可靠.易用等特点 二.使用方法 服务端搭建 1 准备工作 安装jdk 安装maven 安装tomcat 安装mysq

Spring Cloud构建微服务架构分布式配置中心

Spring Cloud Config是Spring Cloud团队创建的一个全新项目,用来为分布式系统中的基础设施和微服务应用提供集中化的外部配置支持,它分为服务端与客户端两个部分.其中服务端也称为分布式配置中心,它是一个独立的微服务应用,用来连接配置仓库并为客户端提供获取配置信息.加密/解密信息等访问接口:而客户端则是微服务架构中的各个微服务应用或基础设施,它们通过指定的配置中心来管理应用资源与业务相关的配置内容,并在启动的时候从配置中心获取和加载配置信息.Spring Cloud Conf

Spring Cloud Config 分布式配置中心使用教程

一.简介 在分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理,实时更新,所以需要分布式配置中心组件.在Spring Cloud中,有分布式配置中心组件spring cloud config ,它支持配置服务放在配置服务的内存中(即本地),也支持放在远程Git仓库中.在spring cloud config 组件中,分两个角色,一是config server,二是config client. 二.构建Config Server 创建一个spring-boot项目,取名为config-s

构建微服务架构Spring Cloud:分布式配置中心

Spring Cloud Config是Spring Cloud团队创建的一个全新项目,用来为分布式系统中的基础设施和微服务应用提供集中化的外部配置支持,它分为服务端与客户端两个部分.其中服务端也称为分布式配置中心,它是一个独立的微服务应用,用来连接配置仓库并为客户端提供获取配置信息.加密/解密信息等访问接口:而客户端则是微服务架构中的各个微服务应用或基础设施,它们通过指定的配置中心来管理应用资源与业务相关的配置内容,并在启动的时候从配置中心获取和加载配置信息.Spring Cloud Conf

企业分布式微服务云SpringCloud SpringBoot mybatis (六)分布式配置中心

一.简介 在分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理,实时更新,所以需要分布式配置中心组件.在Spring Cloud中,有分布式配置中心组件spring cloud config ,它支持配置服务放在配置服务的内存中(即本地),也支持放在远程Git仓库中.在spring cloud config 组件中,分两个角色,一是config server,二是config client.二.构建Config Server 创建一个spring-boot项目,取名为config-se