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.hqwc.cn/news/338083.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

springboot医院信管系统源码和论文

随着信息技术和网络技术的飞速发展&#xff0c;人类已进入全新信息化时代&#xff0c;传统管理技术已无法高效&#xff0c;便捷地管理信息。为了迎合时代需求&#xff0c;优化管理效率&#xff0c;各种各样的管理系统应运而生&#xff0c;各行各业相继进入信息管理时代&#xf…

CentOS本地部署SQL Server数据库无公网ip环境实现远程访问

文章目录 前言1.安装GeoServer2. windows 安装 cpolar3. 创建公网访问地址4. 公网访问Geo Servcer服务5. 固定公网HTTP地址 前言 GeoServer是OGC Web服务器规范的J2EE实现&#xff0c;利用GeoServer可以方便地发布地图数据&#xff0c;允许用户对要素数据进行更新、删除、插入…

算法刷题常用方法

&#x1f4d1;前言 本文主要是【java】——算法刷题常用方法的文章&#xff0c;如果有什么需要改进的地方还请大佬指出⛺️ &#x1f3ac;作者简介&#xff1a;大家好&#xff0c;我是听风与他&#x1f947; ☁️博客首页&#xff1a;CSDN主页听风与他 &#x1f304;每日一句&…

开发超爽的nodejs命令行程序

开发nodejs命令行程序以一般会到什么库&#xff1f; 首选commander提供一套标化化的命令行解析&#xff0c;非常好用。其次是prompts、inquirer,enquirer等库来提供交互输入提示&#xff0c;可以提供更加友好的用户体验还有一个是ansicolor、chalk来进行命令行输出的颜色控制&…

DNS解析原理和k8s DNS 实践

1. 问题背景 1.1 域名解析异常 近期开发的一个功能&#xff0c;需要在k8s集群容器环境中调用公司内部api&#xff0c;api提供了内网域名&#xff0c;解析内网域名异常导致请求超时&#xff0c;因此梳理了下DNS的知识点。 可以先看到下面&#x1f447;这段配置&#xff0c;修…

ubuntu20.04安装cuda11.4以及cudnn

系统&#xff1a;ubuntu20.04硬件配置&#xff1a;GPU3080、CPU未知通过《软件和更新》在附加驱动选项中添加了驱动&#xff1a; 1.检查自己电脑支持的cuda nvidia-smi4. 下载cuda11.4.2 wget https://developer.download.nvidia.com/compute/cuda/11.4.2/local_installers/c…

Java中CompletableFuture 异步编排的基本使用

一、前言 在复杂业务场景中&#xff0c;有些数据需要远程调用&#xff0c;导致查询时间缓慢&#xff0c;影响以下代码逻辑运行&#xff0c;并且这些浪费时间的逻辑与以后的请求并没有关系&#xff0c;这样会大大增加服务的时间。 假如商品详情页的每个查询&#xff0c;需要如下…

【高等数学之泰勒公式】

一、从零开始 1.1、泰勒中值定理1 什么是泰勒公式?我们先看看权威解读: 那么我们从古至今到底是如何创造出泰勒公式的呢? 由上图可知&#xff0c;任一无穷小数均可以表示成用一系列数字的求和而得出的结果&#xff0c;我们称之为“无穷算法”。 那么同理我们想对任一曲线来…

Every Nobody Is Somebody 「每小人物都能成大事」

周星驰 NFT Nobody即将发售&#xff0c;Nobody共创平台 Every Nobody Is Somebody Nobody 关于Nobody&#xff1a;Nobody是一款Web3共创平台&#xff0c;旨在为创作者提供一个交流和合作的场所&#xff0c;促进创意的产生和共享。通过该平台&#xff0c;创作者可以展示自己的作…

程序员试用期转正工作总结

一、试用期工作总结 在公司的三个月试用期中&#xff0c;我完成了以下工作&#xff1a; 完成了XX个功能模块的开发&#xff0c;包括XX模块、XX模块和XX模块。参与了XX个项目的开发和上线&#xff0c;其中XX项目、XX项目和XX项目是我主导的。优化了现有系统的性能&#xff0c;特…

Linux最常用的几个系统管理命令

文章目录 Linux最常用的几个系统管理命令查看网络信息的原初 ifconfig默认无参数使用-s显示短列表配置IP地址修改MTU启动关闭网卡 显示进程状态 ps语法几个实例默认情况显示所有进程查找特定进程信息 任务管理器的 top常规使用显示完整命令设置信息更新次数设置信息更新时间显示…

自行车商城网站网页设计与制作web前端设计html+css+js成品。电脑网站制作代开发。vscodeDrea

【自行车商城网站网页设计与制作web前端设计htmlcssjs成品。电脑网站制作代开发。vscodeDrea】 https://www.bilibili.com/video/BV1wT4y1p7jq/?share_sourcecopy_web&vd_sourced43766e8ddfffd1f1a1165a3e72d7605