本地demo服务器搭建计划——(三)rabbitmq配置中心config配置自动刷新
创始人
2024-02-10 11:17:01

本章内容主要使用Spring Cloud Config来启动一个配置中心服务,通过Spring Cloud Bus消息总线(依赖rabbitmq)和Git仓库(Gitee)Webhook钩子函数来实现配置的自动更新(push新的配置到gitee仓库时触发)

安装rabbitmq

yum安装

惯例先贴官网链接
https://www.rabbitmq.com/install-rpm.html
就是官网这安装教程写的太乱太复杂,看着头疼

我们来个简单粗暴的,少走弯路

# 配置epel,相当于添加了一个第三方源
yum install epel-release -y# 安装rabbit-server 服务端必须的
yum install rabbitmq-server -y# 启动
rabbitmq-plugins enable rabbitmq_management
systemctl start rabbitmq-server# 开机自启
systemctl enable rabbitmq-server

记得还是放通防火墙
rabbitmq默认监听端口5672,rabbitmq的控制台端口15672
浏览器访问 http://ip:1572,ok你的rabbitmq已经起来了
ps:至于为什么我访问的是localserver,配置下/etc/hosts文件,这个不用说吧
在这里插入图片描述

配置rabbitmq service

惯例应该是配置service让rabbitmq开机自启,方便我们调试。
rabbitmq的service是直接安装好的,我们看下他的配置:

[Unit]
Description=RabbitMQ broker
After=syslog.target network.target[Service]
Type=notify
User=rabbitmq
Group=rabbitmq
WorkingDirectory=/var/lib/rabbitmq
ExecStart=/usr/lib/rabbitmq/bin/rabbitmq-server
ExecStop=/usr/lib/rabbitmq/bin/rabbitmqctl stop[Install]
WantedBy=multi-user.target

想详细了解linux service的查看这篇blog https://blog.51cto.com/u_15077561/4163501

SpringCloudConfig实现

Spring Cloud Config的代码就需要我们手动实现一下了,不过也就是改改配置文件,starter已经帮我们做了所有事情

首先我们需要一个git仓库管理配置文件

Spring Cloud Config依赖git仓库进行配置文件管理
申请一个git仓库,这个不用多说,为了国内访问方便直接用gitee https://gitee.com/
然后创建一个仓库,创建一个config目录,创建一个配置文件,比如文件名就叫config-pro.yml
配置随便写一写,如下:

app:version: pro2
server:port: 80
spring:rabbitmq:host: localserverport: 5672username: guestpassword: guestdatasource:url: jdbc:mysql://127.0.0.1/scexample?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC&useSSL=trueusername: rootpassword: rootdriver-class-name: com.mysql.jdbc.Driverjpa:properties:hibernate:hbm2ddl:auto: updatedialect: org.hibernate.dialect.MySQL5InnoDBDialectshow-sql: true

然后创建个SpringBoot项目,作为配置中心服务

引入SpringCloudConfig依赖,pom文件如下


org.springframework.cloudspring-cloud-starter-consul-discovery


org.springframework.cloudspring-cloud-config-server

为了实现配置的自动刷新,还需要引入以下几个依赖


org.springframework.cloudspring-cloud-bus


org.springframework.bootspring-boot-starter-actuator


org.springframework.cloudspring-cloud-stream-binder-rabbit

应用配置如下

server:port: 8001 # 配置中心服务监听的端口
spring:application:name: spring-cloud-config-servercloud:config:server:git:uri: https://gitee.com/ideatea/demo-config-repo.git # 用于托管配置的git仓库,确保你的应用能访问search-paths: # 配置文件所在仓库的目录- config- repositories- exampleusername: admin # 仓库用户名password: 1234 # 仓库密码default-label: masterdiscovery:enabled: true # 开启服务发现bus:enabled: true # 开启bus消息总线trace:enabled: true # 开启trace之后,可以追踪所有此节点的RemoteApplicationEvent的各个子事件类型事件# 配置中心的相关配置consul:host: localserverport: 8500discovery:enabled: true # 将服务注册到consulservice-name: config-server
# bus依赖rabbitmq的相关配置,也可以直接使用默认配置rabbitmq:host: localserver # rabbitmq所在服务器,我这里配的hostsport: 5672username: guestpassword: guest
# bus endpoints依赖actuator,暴露bus-refresh端点
management:endpoints:web:exposure:include: bus-refresh

spring-cloud-bus的事件机制,有兴趣看下这个blog https://blog.csdn.net/xichenguan/article/details/77535694

启动注册中心和配置中心,我们就能直接访问获取到配置文件了
如果你想了解访问url和配置文件的对应关系,看看这篇blog https://www.ngui.cc/el/812654.html
在这里插入图片描述

配置自动刷新

上面已经添加了spring-cloud-bus来实现配置刷新,我们还需要在git仓库添加webhook,在推送配置到git仓库时自动触发配置更新
在这里插入图片描述
测试配置自动更新
启动注册中心和配置中心,修改配置文件并推动到git仓库
获取配置中心配置,查看配置是否刷新

惯例把配置中心加到service

vim /etc/systemd/system/config-server.service

配置如下

[Unit]
Description=config-server service
After=network.target consul.service rabbitmq-server.service
# 因为配置中心依赖服务中心和rabbitmq,把依赖加上
Requires=consul.service rabbitmq-server.service
Wants=network.target[Service]
Type=simple
# 启动服务的命令
ExecStart=/usr/bin/java -jar /ssd/config-server/config-server-0.0.1-SNAPSHOT.jar >/var/log/demo/config-server/config-server_info.log[Install]
WantedBy=multi-user.target

相关内容

热门资讯

埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...