本地demo服务器搭建计划——(三)rabbitmq配置中心config配置自动刷新

news2024/11/17 16:03:22

本章内容主要使用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: localserver
    port: 5672
    username: guest
    password: guest
  datasource:
    url: jdbc:mysql://127.0.0.1/scexample?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC&useSSL=true
    username: root
    password: root
    driver-class-name: com.mysql.jdbc.Driver
  jpa:
    properties:
      hibernate:
        hbm2ddl:
          auto: update
        dialect: org.hibernate.dialect.MySQL5InnoDBDialect
    show-sql: true

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

引入SpringCloudConfig依赖,pom文件如下

<!--consul 服务中心依赖-->
<dependency>
	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-starter-consul-discovery</artifactId>
</dependency>
<!--spring-cloud-config配置中心依赖-->
<dependency>
	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-config-server</artifactId>
</dependency>

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

<!--spring-cloud-bus消息总线依赖(自动更新配置)-->
<dependency>
	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-bus</artifactId>
</dependency>
<!--spring-actuator依赖(自动更新配置)-->
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<!--rabbitmq依赖(自动更新配置)-->
<dependency>
	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-stream-binder-rabbit</artifactId>
</dependency>

应用配置如下

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/30157.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【英语口语】单词如何正确发音?

1. 发音基础介绍 音素&#xff1a;元音 辅音 单词&#xff1a;重音 失去爆破 浊化 三单 过去式过去分词 句子&#xff1a;语调 重音 弱读 连读 缩读 段落&#xff1a;意群 元音字母&#xff1a; A、E、I、O、U 2. 音节的定义 英语单词在发音的时候&#xff0c;不是一个字…

GD32F4(9):GD32f4出现上电不工作,必须按复位程序才能跑起来

GD32&#xff1a;上电不工作&#xff0c;需要按一下复位按键程序才能跑起来 文章目录GD32&#xff1a;上电不工作&#xff0c;需要按一下复位按键程序才能跑起来1.问题描述2. 我的调试思路2.1 第一步&#xff0c;排除电源问题2.2 第二步&#xff0c;排除复位电路的问题2.3 第三…

QUIC简介

一、概述、 QUIC&#xff08;Quick udp Internet connection&#xff09;&#xff1a;快速UDP互联网协议。相比于当前广泛应用的http2tcptls有如下优势&#xff1a; 减少三次握手及TLS握手时间&#xff1b;改进拥塞机制&#xff1b;避免队头阻塞的多路复用&#xff1b;连接迁移…

一文了解riscv软件系列之linux内核编译运行

一、交叉编译工具链的安装 【推荐阅读文章】 代码大佬的【Linux内核开发笔记】分享&#xff0c;前人栽树后人乘凉&#xff01; 一篇长文叙述Linux内核虚拟地址空间的基本概括 一文了解Linux内核的Oops 需要多久才能看完linux内核源码&#xff1f; 详细讲解磁盘及文件系统…

【antd vue pro】设置项目默认语言为中文:

文章目录一、官网文档&#xff1a;二、解决&#xff1a;1、在src\locales\index.js文件修改默认语言2、src\core\bootstrap.js文件&#xff0c;修改初始化的语言3、src\store\modules\app.js4、清空本地存储&#xff0c;然后npm run serve重启&#xff1a;5、遇到问题&#xff…

Linux文件权限管理:chomd命令和chown命令

Linux文件权限管理&#xff1a;chomd命令和chown命令前言介绍文件类型文件权限文件所属文件信息chomd命令chown命令前言 在服务器部署项目、安装应用会经常涉及到文件权限的问题&#xff0c;在此记录chomd命令和chown命令它们的用法及区别。 介绍 以下图为例&#xff0c;进行…

如何解决全局工业相机飞拍拖影问题

1.问题描述: 物体静态拍摄时图像正常&#xff0c;但是动态拍摄时会有拖影现象。 2.问题原因&#xff1a; 只要物体存在运动&#xff0c;拍摄就一定会存在拖影&#xff0c;那么如何判断飞拍项目能否使用&#xff1f;拖影是否会对飞拍造成影响呢&#xff1f;这就要看具体的检测…

Viterbi维特比译码误码率仿真,调制为QPSK,信道为高斯白噪声

目录 1.算法描述 2.仿真效果预览 3.MATLAB部分代码预览 4.完整MATLAB程序 1.算法描述 整体思路如图1中所示&#xff0c; 其中输入序列使用randn函数来产生&#xff0c;卷积也采用matlab本身的函数conv&#xff0c;加性高斯白噪声用wgn函数来产生&#xff0c;由于实验的重点…

世上最全NVDIA GPU参数列表: 3090,4090, A40, A30,V100, A100, A800性能参数

-1&#xff09;GeForce RTX 4090 GeForce RTX 4090 GPU 引擎规格&#xff1a;NVIDIA CUDA 核心数量16384加速频率 (GHz)2.52基础频率 (GHz)2.23显存规格&#xff1a;标准显存配置24 GB GDDR6X显存位宽384 位技术支持&#xff1a;Ray Tracing Core第 3 代Tensor Cores第 4 代N…

CRDB-多区域部署

多区域部署允许cockachdb数据库跨越多个地理区域。多区域部署的配置对集群的容错和区域性能有影响。一般来说&#xff0c;我们将一个cockachdb集群配置为多个区域&#xff0c;以实现以下两个目标中的一个或两个&#xff1a; 允许集群在其中一个区域的计算资源不可用时继续服务…

磨金石教育摄影技能干货分享|花朵怎样拍才能不凌乱

喜欢养花种花的朋友&#xff0c;除了享受花朵在自己精心培育下绽放之外&#xff0c;给爱花拍照发在朋友圈炫耀也是一大乐趣之一。 但是别看花朵静静地盛开&#xff0c;娇艳欲滴&#xff0c;想要拍得好看却不是一件容易的事。作为摄影小白常常遇到的情况就是&#xff0c;拍出的花…

即兴发言怎样避免语无伦次?记住这个即兴发言万能公式

作为PMO和项目经理&#xff0c;经常要组织和参与各种会议&#xff0c;在会议中难免需要即兴发言&#xff0c;但是很多人即兴发言时总语无伦次&#xff0c;不知所云&#xff0c;而PMO和项目经理又是依靠外在表现来体现自己的专业性的&#xff0c;这时候就很难获得被人的认可&…

Docker Desktop Installer 安装无反应的,如何解决?

docker教程 Docker 教程 | 菜鸟教程 下载地址&#xff1a; Docker Desktop 官方下载地址&#xff1a; Install on Windows | Docker DocumentationHow to install Docker Desktop for Windowshttps://docs.docker.com/desktop/install/windows-install/ 问题&#xff1a;出…

webpack

webpack一、前端工程化1、前端开发历程2、什么是前端工程化3、前端工程化的解决方案二、webpack的基本使用1、什么是webpack2、列表隔行变色例子3、安装和配置webpack1.安装webpack2.配置webpack4、webpack.config.js的作用5、配置webpack.config.js自定义打包入口和出口三、we…

乘用车排气系统流场的数值模拟

目 录 摘 要 I Abstract II 第1章 绪论 1 1.1 课题背景及意义 1 1.2 国内外研究现状 1 1.3 课题主要研究内容 2 第2章 流体力学及流场分析软件的介绍 4 2.1 概述 4 2.2 流体力学及应用现状 4 2.3 Solidworks软件的应用范围 5 2.4 Flow Simulation 软件简介 5 第3章 排气系统理论…

软件测试的行业现状,我们的未来在哪里?

1.现状 1.1建立软件测试团队的公司规模 可看出主要当前是以中小型公司为主&#xff0c;因为大厂毕竟就那么几个&#xff0c;数量少。 1.2软件测试团队的规模 可看出主要目前的软件测试团队主要是以50人以内的团队为主(外包除外)。 1.3各公司软件测试工作的规范程度 可看出大…

优化器scipy.optimize参考指南

原文&#xff1a;https://mp.weixin.qq.com/s/BDHXQHXSzDk-RTi-VNMNEw 1 scipy.optimize简介 该scipy.optimize包提供几种常用的优化算法。 该模块包含&#xff1a; 1、使用多种算法&#xff08;例如BFGS&#xff0c;Nelder-Mead单形&#xff0c;牛顿共轭梯度&#xff0c;C…

在线预约系统开发的用途_分享在线预约小程序的作用

在微信小程序上进行在线预约&#xff0c;不管是商家还是顾客&#xff0c;都可以自由选择时间&#xff0c;顾客还可以通过预约小程序&#xff0c;了解到所选服务的详情和功能特色&#xff0c;不必等到去店内听介绍&#xff0c;顾客能节省等候时间&#xff0c;商家能解放招待人力…

【34-业务开发-基础业务-属性组和基本属性-属性组和基本属性建立关联-属性组和基本属性解除关联-未关联属性查询-确认新增】

一.知识回顾 【0.三高商城系统的专题专栏都帮你整理好了&#xff0c;请点击这里&#xff01;】 【1-系统架构演进过程】 【2-微服务系统架构需求】 【3-高性能、高并发、高可用的三高商城系统项目介绍】 【4-Linux云服务器上安装Docker】 【5-Docker安装部署MySQL和Redis服务】…

【动手学深度学习】权重衰减(含Pytorch从零开始实现的源代码)

目录&#xff1a;权重衰减一、理论知识二、高维线性回归的实现步骤2.1 准备数据2.2 初始化模型参数2.3 定义L2L_2L2​范数惩罚2.4 定义训练代码实现2.5 是否加入正则化2.5.1 忽略正则化2.5.2 加入正则化三、简单实现四、源代码一、理论知识 前面我们已经介绍学习了过拟合的问题…