- 微服务配置中心Konfig是一个配置集中化管理组件。
- 包括两部分组成:管理系统、Java开发SDK。
- 配置权限管理机制
- 配置 / 配置集 管理
- Java开发SDK(配置变更监听、获取配置)
- 用户、用户组管理
- 配置上线审核机制
- 多用户、用户组配置相互隔离
- 操作记录可追溯
Try it by using docker!
- Pull mariadb image, then deploy it, which used to store configurations and accounts.
docker pull mariadb
docker run --detach --name mariadb --env MARIADB_USER=test_user --env MARIADB_PASSWORD=123456 --env MARIADB_ROOT_PASSWORD=123456 mariadb:latest
- Run konfig service using docker
docker pull leisurelybear/konfig:1.2
docker run -itd -p 80:80 --link mariadb konfig:1.2 /bin/bash /app/setup.sh
(1) 从官方镜像分流下载zookeeper
$ wget https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.7.0/apache-zookeeper-3.7.0-bin.tar.gz
(2) 解压。
$ tar -zxvf apache-zookeeper-3.7.0-bin.tar.gz
(3) 运行Zookeeper。
$ cd apache-zookeeper-3.7.0-bin/conf/ # 进入zk的配置目录
$ cp zoo_sample.cfg zoo.cfg # 复制一份配置文件
$ cd ../bin # 进入zk的bin目录
$ ./zkServer.sh start # 启动zkServer
两种方法:
1、通过下载源码,编译安装,需要事先安装编译工具 gcc gcc-c++ kernel-devel
2、直接通过yum安装,这里选择第二个方式
(1) 安装Redis
$ yum search redis # 先搜一下redis,如果有可以安装,没有的话只能编译安装
$ sudo yum -y install redis.x86_64 # 安装
(2) 修改配置
# 修改配置,允许远程访问,设置密码
$ sudo vim /etc/redis.conf
# /etc/redis.conf
# protected-mode yes
protected-mode no # 关闭保护模式
# requirepass foobared
requirepass 123456 # 这里设置自己的密码
(3) 启动redis
$ redis-server # 或者在后台运行 $ nohup redis-server > redis.log 2>&1 &
- 当然,我们可以写一个脚本,在后台运行
#!/bin/bash nowtime=$(date +%Y-%m-%d__%H-%M) nohup redis-server > redis.$nowtime.log 2>&1 &
停止运行
ps -aux | grep redis
kill -9 {上一步展示的pid}
这里使用华为云的jdk8源
(1) 卸载openJDK
# 一般默认会有openJDK,先卸载
$ rpm -qa|grep java # 列出安装的openjdk
$ rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.101-3.b13.el7_2.x86_64 # 把有关openjdk字样的都删除了就可以了
(2) 安装Oracle JDK
# 安装oracle的jdk
$ wget https://mirrors.huaweicloud.com/java/jdk/8u151-b12/jdk-8u151-linux-x64.rpm
$ sudo rpm -i jdk-8u151-linux-x64.rpm # 安装rpm
$ java -version # 查看安装成功的版本号
(1) 下载安装maven
$ wget https://mirrors.tuna.tsinghua.edu.cn/apache/maven/binaries/apache-maven-3.2.2-bin.tar.gz
$ tar -zxvf apache-maven-3.2.2-bin.tar.gz
(2) 配置Maven镜像源
$ vim apache-maven-3.2.2/conf/settings.xml # 编辑配置文件,加入下面内容
<mirrors>
<mirror>
<id>aliyunmaven</id>
<mirrorOf>*</mirrorOf>
<name>阿里云公共仓库</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
</mirrors>
(3) 配置环境变量
$ sudo vim /etc/profile # 编辑文件
# 编辑文件,在末尾添加下面内容,保存
export PATH=$PATH:/path/to/apache-maven-3.2.2/bin
# 生效
$ sudo source /etc/profile
(1) 下载安装
$ wget https://downloads.apache.org/kafka/2.8.0/kafka_2.13-2.8.0.tgz
$ tar -xzf kafka_2.13-2.8.0.tgz
$ cd kafka_2.13-2.8.0
(2) 配置
$ vim kafka_2.13-2.8.0/config/server.properties
# kafka_2.13-2.8.0/config/server.properties 文件
# 配置zookeeper的地址
zookeeper.connect=localhost:2181
# 配置允许自动创建主题
auto.create.topics.enable=true
# 配置监听 ip端口号,这里也可以配置集群
advertised.listeners=PLAINTEXT://10.255.254.152:9092
# 如果是集群,需要注意broker区分
(3) 运行
$ nohup bin/kafka-server-start.sh config/server.properties > kafka-run.log 2>&1 & # 日志输出到文件kafka-run.log
$ yum -y install git
# 安装MariaDB
$ sudo yum -y install mariadb mariadb-server
# 启动MariaDB
$ sudo systemctl start mariadb
# 设置自启动
$ sudo systemctl enable mariadb
# 初始化MySQL,包括设置密码,是否支持远程访问等等
$ mysql_secure_installation
导入SQL文件
$ wget https://github.com/Leisurelybear/konfig/raw/master/sql/lite_config_20210608.sql
$ mysql -uroot -p # 登录mysql
$ > source path/to/lite_config_20210608.sql # 导入sql文件
(1) 下载项目
# 在要部署的服务器 下载项目
$ git clone https://github.com/Leisurelybear/konfig.git
(2) 打包部署项目
# 进入项目目录
$ cd konfig
# maven打包项目
$ mvn mvn clean package -Dmaven.test.skip=true
# 复制并修改 Auth 配置文件,将里面的组件和数据库都配置成自己的。
$ cp konfig-authentication-8021/src/main/resources/application.yml konfig-authentication-8021/target/
$ vim konfig-authentication-8021/target/application.yml
# 复制并修改 configservice 配置文件,将里面的组件和数据库都配置成自己的。
$ cp konfig-configservice-8301/src/main/resources/application.yml konfig-configservice-8301/target/
$ vim konfig-configservice-8301/target/application.yml
# 启动,可以参考上面提到的输出日志到文件,也可以开启两个session来启动
$ java -jar konfig-authentication-8021/target/konfig-authentication-1.0.0.jar
$ java -jar konfig-configservice-8301/target/konfig-configservice-1.0.0.jar
(1) 安装 Nginx/Apache/LNMP/LAMP 其中之一配置好即可
(2) 将git下载项目中的 liteconfig-web-ui 内容放到服务器的webroot目录。
(3) 在 liteconfig-web-ui/assets/js/common/header.js 中配置 AUTH_HOST 和 **SERVICE_HOST **分别为后端项目的两个地址。
(4) 通过前端的地址访问index页面。