博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
springCloud Finchley 微服务架构从入门到精通【六】Bus RabbitMQ配置刷新
阅读量:7221 次
发布时间:2019-06-29

本文共 2966 字,大约阅读时间需要 9 分钟。

上篇文章介绍了高可用的配置中心,如何在不重启服务器的情况下对配置文件进行更新呢?请看下面的介绍

一、安装rabbitMq

1、下载地址

2、运行

输入:15672,出下以下界面,说明安装成功

clipboard.png

3、cloud整合配置说明

  • 默认端口: 5672
  • 默认用户名:guest
  • 默认密码:guest

二、代码实现

1、添加依赖

config 服务端:commonservice-config 添加如下依赖:

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

在config 客户端:bussnessservice-user添加

org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-actuator
org.springframework.cloud
spring-cloud-starter-bus-amqp

2、修改配置

修改两个项目的yml文件,加入以下配置:

spring:  rabbitmq:     host: localhost    port: 5672    username: guest    password: guestmanagement:   endpoints:    web:      exposure:         include: "*"      cors:        allowed-origins: "*"        allowed-methods: "*"

配置说明:

  • rabbitmq配置
  • 默认关闭了bus请求url,因此需要打开才能使用

在客户端bussnessservice-user的配置文件中添加一个属性server.time=update version1,用来测试属性的变更

3、在需要刷新配置的类上添加@RefreshScope注解

package com.mayi.springcloud.controller;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import org.springframework.beans.factory.annotation.Value;import org.springframework.cloud.context.config.annotation.RefreshScope;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RestController;@RestController@RefreshScopepublic class UserManagementController {        @Value("${server.port}")    String serverPort;        @Value("${server.time}")    String testValue;    @GetMapping("/listUsers")    public String ListUsers(){                /**         * 模拟从数据库查询         */        List
> users = new ArrayList
>(); for(int i=1; i< 5; i++){ Map
user = new HashMap
(); user.put("id", i); user.put("name", "小明" + i); users.add(user); } return "服务器端口号: " + serverPort + " | 用户信息: " + users.toString(); } @GetMapping("/getTestValue") public String getTestValue(){ return testValue; }}

三、测试

依次启动eureka server、config server 和 config client(启动两个端口,以测试批量更新配置文件)三个项目

启动配置中心时可以看到如下日志:

clipboard.png

  • /actuator/refresh :刷新单个节点
  • /actuator/bus-refresh: 刷新所有节点

启动完成:

clipboard.png

使用postman测试:

发送Post请求 :8801/getTestValue:8802/getTestValue

clipboard.png

clipboard.png

修改配置文件:

server:  port: 8802  time: update version100

发送post请求 :8801/actuator/bus-refresh

clipboard.png

clipboard.png

注意:添加 spring-boot-starter-amqp 依赖有时会报错,这是因为maven里面有多个版本,需要删除,再重新maven - update project

github:

接下来,我会依次更新文章,直至整个架构完成,如有兴趣的朋友关注作者 或 加我微信 拉你进入spring cloud社区群

clipboard.png

微信公众号:java架构师修行

clipboard.png

本公众号从2018-5.1日 - 2019.5.1日期间,将要按照JAVA高级软件架构师实战培训的路线发布一期完整的架构文章,难度由浅入深,适合有一定开发基础想转架构和正在做初级架构开发的人员学习

转载地址:http://lphym.baihongyu.com/

你可能感兴趣的文章
MySQL配置文件mysql.ini参数详解
查看>>
通知UI thread的一个方法
查看>>
offsetof宏—求结构体中一个成员在该结构体中的偏移量
查看>>
SpringMVC+hibernate+mysql环境搭建后测试例中使用的注解总结
查看>>
C++ Primer(第五版)练习12.6
查看>>
debian 声音管理
查看>>
高级计划任务维护管理
查看>>
关于GCD一些事
查看>>
iOS 全面支持 webp格式图片
查看>>
ionic 延时执行
查看>>
addChildViewController 的使用
查看>>
ORA-12560: TNS:protocol adapter error(TNS:协议适配器...
查看>>
vcf2iPhone
查看>>
类设计原则
查看>>
家乐福官方网站
查看>>
MySQL高可用方案选型参考
查看>>
Servlet激活器
查看>>
JDK1.6 自动生成WebService客户端代码
查看>>
创建一个基于for 的简单的循环。使其循环10 次,并且使用fmt 包打印 出计数器的值...
查看>>
ERP实施过程中应如何沟通
查看>>