千家信息网

java怎么配置中心和消息总线

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章主要介绍"java怎么配置中心和消息总线",在日常操作中,相信很多人在java怎么配置中心和消息总线问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"java怎么配
千家信息网最后更新 2026年11月01日java怎么配置中心和消息总线

这篇文章主要介绍"java怎么配置中心和消息总线",在日常操作中,相信很多人在java怎么配置中心和消息总线问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"java怎么配置中心和消息总线"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

Spring Cloud Bus

Spring cloud bus通过轻量消息代理连接各个分布的节点。这会用在广播状态的变化(例如配置变化)或者其他的消息指令。Spring bus的一个核心思想是通过分布式的启动器对spring boot应用进行扩展,也可以用来建立一个多个应用之间的通信频道。目前唯一实现的方式是用AMQP消息代理作为通道,同样特性的设置(有些取决于通道的设置)在更多通道的文档中。

Spring cloud bus被国内很多都翻译为消息总线,也挺形象的。大家可以将它理解为管理和传播所有分布式项目中的消息既可,其实本质是利用了MQ的广播机制在分布式的系统中传播消息,目前常用的有Kafka和RabbitMQ。利用bus的机制可以做很多的事情,其中配置中心客户端刷新就是典型的应用场景之一,我们用一张图来描述bus在配置中心使用的机制。

根据此图我们可以看出利用Spring Cloud Bus做配置更新的步骤:

1、提交代码触发post给客户端A发送bus/refresh

2、客户端A接收到请求从Server端更新配置并且发送给Spring Cloud Bus

3、Spring Cloud bus接到消息并通知给其它客户端

4、其它客户端接收到通知,请求Server端获取最新配置

5、全部客户端均获取到最新的配置

项目示例

客户端spring-cloud-config-client改造

1、添加依赖

    org.springframework.cloud    spring-cloud-starter-bus-amqp

需要多引入spring-cloud-starter-bus-amqp包,增加对消息总线的支持

2、配置文件

## 刷新时,关闭安全验证management.security.enabled=false## 开启消息跟踪spring.cloud.bus.trace.enabled=true spring.rabbitmq.host=192.168.9.89spring.rabbitmq.port=5672spring.rabbitmq.username=adminspring.rabbitmq.password=123456

配置文件需要增加RebbitMq的相关配置,这样客户端代码就改造完成了。

3、测试

依次启动spring-cloud-eureka、spring-cloud-config-server、spring-cloud-config-client项目,在启动spring-cloud-config-client项目的时候我们会发现启动日志会输出这样的一条记录。

2017-05-26 17:05:38.568  INFO 21924 --- [           main] o.s.b.a.e.mvc.EndpointHandlerMapping     : Mapped "{[/bus/refresh],methods=[POST]}" onto public void org.springframework.cloud.bus.endpoint.RefreshBusEndpoint.refresh(java.lang.String)

说明客户端已经具备了消息总线通知的能力了,为了更好的模拟消息总线的效果,我们更改客户端spring-cloud-config-client项目的端口为8003、8004依次启动,这样测试环境就准备好了。启动后eureka后台效果图如下:

我们先分别测试一下服务端和客户端是否正确运行,访问:http://localhost:8001/neo-config/dev,返回信息:

{    "name": "neo-config",     "profiles": [        "dev"    ],     "label": null,     "version": null,     "state": null,     "propertySources": [        {            "name": "https://github.com/ityouknow/spring-cloud-starter/config-repo/neo-config-dev.properties",             "source": {                "neo.hello": "hello im dev"            }        }    ]}

说明server端都正常读取到了配置信息。

依次访问:http://localhost:8002/hello、http://localhost:8003/hello、http://localhost:8004/hello,返回:hello im dev。说明客户端都已经读取到了server端的内容。

现在我们更新neo-config-dev.properties 中neo.hello的值为hello im dev update并提交到代码库中,访问:http://localhost:8002/hello 依然返回hello im dev。我们对端口为8002的客户端发送一个/bus/refresh的post请求。在win下使用下面命令来模拟webhook.

curl -X POST http://localhost:8002/bus/refresh

执行完成后,依次访问:http://localhost:8002/hello、http://localhost:8003/hello、http://localhost:8004/hello,返回:hello im dev update。说明三个客户端均已经拿到了最新配置文件的信息,这样我们就实现了图一中的示例。

到此,关于"java怎么配置中心和消息总线"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

配置 消息 客户 客户端 总线 项目 学习 代码 信息 分布式 文件 更多 机制 通道 应用 更新 测试 效果 示例 端口 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 深圳市人人互联网科技有限公司 天津市摩尔互联网科技 科技平台互联网 网络科技有限互联网 与互联网科技公司 青岛互联网科技公司 有马互联网科技 善班互联网科技有限公司 左右互联网络科技 西藏七维空间互联网科技有限公司 湖北码尼互联网科技有限公司电话 为客找房互联网科技公司怎么样 2021互联网科技公司排名 互联网科技实习生岗位 中天科技中国工业互联网 城市宝互联网科技有限公司 产业互联网科技服务公司 半导体是互联网高科技吗 普陀区互联网教育科技管理办法 杭州科技互联网公司有哪些 云信互联网科技有限公司 互联网科技战争 互联网科技的发展 有木互联网科技 湖南诚度互联网科技有限公司 互联网与医疗科技 高科技互联网发展前景如何 四川互联网展示科技馆设计 上海互联网科技公司ppt 互联网金融运营模式中的金融科技
0