当前位置: 首页 > news >正文

springCould中的Bus-从小白开始【11】

目录

🧂1.Bus是什么❤️❤️❤️

🌭2.什么是总线❤️❤️❤️

🥓3.rabbitmq❤️❤️❤️

🥞4.新建模块3366❤️❤️❤️

🍳5.设计思想 ❤️❤️❤️

🍿6.添加消息总线的支持❤️❤️❤️

🥚7.定点通知❤️❤️❤️


1.Bus是什么❤️❤️❤️

  • SpringCloud Bus是将分布式系统的节点轻量级消息系统链接起来的框架
  • 整合了Java的事件处理机制和消息中间件的功能
  • 目前支持RabbitMQKafka。
  • Spring Cloud Bus配合Spring Cloud Config使用可以实现配置的动态刷新。

2.什么是总线❤️❤️❤️

在微服务架构的系统中,通常会使用轻量级的消息代理来构建一个共用的消息主题,并让系统中所有微服务实例都连接上来。由于该主题中产生的消息会被所有实例监听消费,所以称它为消息总线。在总线上的各个实例,都可以方便地广播一些需要让其他连接在该主题上的实例都知道的消息。

3.rabbitmq❤️❤️❤️

虚拟机上安装好rabbitmq

安装详细请看小张的—>从入门到精通RabbitMQ

4.新建模块3366❤️❤️❤️

4.1.建模块❤️❤️

  • 1.在父工程下创建模块
  • 2.注意jdk和maven版本号

4.2.加pom❤️❤️

    <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.example</groupId><artifactId>cloud-api-commons</artifactId><version>${project.version}</version></dependency><!--eureka的Client端--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId></dependency><!--configClient--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-config</artifactId></dependency></dependencies>

4.3.改yml❤️❤️

server:port: 3366
spring:application:name: config-clientcloud:config:label: masterprofile: devname: configuri: http://localhost:3344eureka:client:service-url:defaultZone:  http://eureka7001.com:7001/eureka,http://eureka7002.com:7002/eureka,http://eureka7003.com:7003/eureka#暴露监控端点
management:endpoints:web:exposure:include: "*"

4.4.主启动类❤️❤️

@SpringBootApplication
@EnableEurekaClient
public class ConfigClientMain3366 {public static void main(String[] args) {SpringApplication.run(ConfigClientMain3366.class);}
}

4.5.业务类❤️❤️

@RestController
@RefreshScope
public class ConfigClientController {@Value("${server.port}")private String serverPort;@Value("${config.info}")private String configInfo;@GetMapping("/configInfo")public String getConfigInfo() {return "serverPort:" + serverPort + "\t\t" +",configInfo:"+configInfo;}
}

5.设计思想 ❤️❤️❤️

利用消息总线触发一个服务端ConfigServer的/bus/refresh端点,而刷新所有客户端的配置

6.添加消息总线的支持❤️❤️❤️

6.1.修改3344模块❤️❤️

1.改pom❤️❤️

添加消息总线依赖

        <!--消息总线RabbitMq--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-bus-amqp</artifactId></dependency>

2.改yml❤️❤️

添加rabbitmq配置,并暴露刷新端点

server:port: 3344spring:application:name:  cloud-config-centercloud:config:server:git:#gitee上面的仓库地址uri: git@gitee.com:hqdmdxz/springcould-config.git#搜索目录search-paths:- sprongcloud-config#gitee的账号username: 18337062987#gitee的密码password: love4.29#读取分支lable: master#rabbitmq配置rabbitmq:host: 192.168.20.129port: 5672username: rootpassword: 123456#注册到eureka
eureka:client:service-url:defaultZone: http://eureka7001.com:7001/eureka,http://eureka7002.com:7002/eureka,http://eureka7003.com:7003/eureka#暴露bus刷新配置的端点
management:endpoints:web:exposure:include: 'bus-refresh'

6.2.修改3355模块❤️❤️

1.改pom❤️❤️

 添加消息总线依赖

        <!--消息总线RabbitMq--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-bus-amqp</artifactId></dependency>

2.改yml❤️❤️

server:port: 3355
spring:application:name: config-clientcloud:#客户端配置config:#分支名称label: master#配置文件名称name: config#读取后缀名称profile: dev#配置中心地址uri: http://localhost:3344rabbitmq:host: 192.168.20.129port: 5672username: rootpassword: 123456
#服务注册到eureka
eureka:client:service-url:defaultZone: http://eureka7001.com:7001/eureka,http://eureka7002.com:7002/eureka,http://eureka7003.com:7003/eureka#暴露监控端点
management:endpoints:web:exposure:include: "*"

6.3.修改3366模块❤️❤️

1.改pom❤️❤️

 添加消息总线依赖

        <!--消息总线RabbitMq--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-bus-amqp</artifactId></dependency>

2.改yml❤️❤️

server:port: 3366
spring:application:name: config-clientcloud:#客户端配置config:#分支名称label: master#配置文件名称name: config#读取后缀名称profile: dev#配置中心地址uri: http://localhost:3344rabbitmq:host: 192.168.20.129port: 5672username: rootpassword: 123456
#服务注册到eureka
eureka:client:service-url:defaultZone: http://eureka7001.com:7001/eureka,http://eureka7002.com:7002/eureka,http://eureka7003.com:7003/eureka#暴露监控端点
management:endpoints:web:exposure:include: "*"

6.4.测试❤️❤️

1.启动eureka集群,config配置中心3344,服务3355,服务3366。

2.手动刷新服务3344,一刷新处处生效

2.在gitee上修改版本号,浏览器查看3344,3355,3366. 

7.定点通知❤️❤️

  • 不想全部通知,只想顶点通知3355,不通知3366

公式:

http://localhost:配置中心的端口号/actuator/bus-refresh/{destination)

 至此消息总线基本拿捏~

 

http://www.lryc.cn/news/280577.html

相关文章:

  • xshell和xftp
  • python for...else用法,一个实例就能让你明白
  • windows 设置ip命令bat脚本
  • Openharmony 对应Android内存查看
  • R语言【paleobioDB】——pbdb_interval():通过ID选择,返回一个地层年代段的基本信息
  • spring boot mybatis plus mapper如何自动注册到spring bean容器
  • What is `@PathVariable` does?
  • 如何利用小程序介绍公司品牌形象?
  • [C#]使用sdcb.paddleocr部署v4版本ocr识别模型
  • Echarts图表如何利用formatter自定义tooltip的内容和样式
  • Ceph源码分析-s->req_id = store->svc()->zone_utils->unique_id(req->id)
  • Unity中的异步编程【7】——在一个异步方法里播放了animation动画,取消任务时,如何停止动画播放
  • vue3中ref和reactive联系与区别以及如何选择
  • 面试宝典之spring框架常见面试题
  • 建筑垃圾处理行业分析:正在被越来越广泛的运用
  • 【DIY summaries on Linux】
  • Redis(概述、应用场景、线程模式、数据持久化、数据一致、事务、集群、哨兵、key过期策略、缓存穿透、击穿、雪崩)
  • ospf-gre隧道小练习
  • C++入门【29-C++ 把引用作为返回值】
  • 基于Java SSM框架实现企业车辆管理系统项目【项目源码】
  • MyBatis的配置及简单使用
  • 【UE Niagara学习笔记】07 - 火焰的热变形效果
  • 深度学习模型中 argparse 模块Python 脚本的部分参数解读
  • 在win10和Linux上配置SSH 无密码登录
  • 【VUE】无法加载文件 \node\vue.ps1,因为在此系统上禁止运行脚本。问题解决
  • C //练习 4-12 运用printd函数的设计思想编写一个递归版本的itoa函数,即通过递归调用把整数转换为字符串。
  • 【python playwright 安装及验证】
  • 极简云源码已经开源
  • Shell中cp和mv命令说明
  • cssip 第11章 : 安全网络架构和保护网络组件