国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Spring Cloud學(xué)習(xí)筆記【消息總線-SpringCloud Bus】

這篇具有很好參考價(jià)值的文章主要介紹了Spring Cloud學(xué)習(xí)筆記【消息總線-SpringCloud Bus】。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

SpringCloud Bus概述

概述

Spring Cloud Bus是Spring Cloud生態(tài)系統(tǒng)中的一個(gè)組件,用于實(shí)現(xiàn)微服務(wù)架構(gòu)中的消息總線。它利用了輕量級(jí)消息代理(如RabbitMQ或Kafka)作為通信中間件,實(shí)現(xiàn)了在分布式系統(tǒng)中的消息傳遞和事件廣播。

Spring Cloud Bus旨在簡(jiǎn)化微服務(wù)架構(gòu)中的配置管理和狀態(tài)同步。它允許將配置更改或狀態(tài)更新廣播到整個(gè)分布式系統(tǒng)中的各個(gè)微服務(wù)實(shí)例。通過(guò)使用消息總線,微服務(wù)可以輕松地獲取最新的配置信息,并且能夠了解其他微服務(wù)的狀態(tài)變化。

作用

  • 配置的集中管理: Spring Cloud Bus與Spring Cloud Config(配置中心)集成,可以實(shí)現(xiàn)集中式的配置管理。當(dāng)配置發(fā)生變化時(shí),只需更新配置中心的配置,Spring Cloud Bus會(huì)將新的配置信息廣播給所有訂閱了消息總線的微服務(wù)。

  • 快速的配置更新: 通過(guò)使用消息總線,配置的更新可以迅速傳播到整個(gè)分布式系統(tǒng)中的所有微服務(wù)實(shí)例,而無(wú)需每個(gè)微服務(wù)都主動(dòng)去拉取配置。這樣可以減少配置更新的延遲,提高系統(tǒng)的響應(yīng)速度。

  • 系統(tǒng)狀態(tài)的同步: Spring Cloud Bus不僅可以用于配置的更新,還可以用于系統(tǒng)狀態(tài)的同步。當(dāng)一個(gè)微服務(wù)的狀態(tài)發(fā)生變化時(shí),它可以通過(guò)消息總線廣播給其他微服務(wù),從而實(shí)現(xiàn)微服務(wù)之間的狀態(tài)同步。

  • 可擴(kuò)展的消息傳遞: Spring Cloud Bus提供了靈活的擴(kuò)展機(jī)制,可以與其他Spring Cloud組件無(wú)縫集成。例如,可以與Spring Cloud Stream(消息驅(qū)動(dòng)的微服務(wù))集成,實(shí)現(xiàn)更高級(jí)的消息傳遞模式。

Spring Cloud學(xué)習(xí)筆記【消息總線-SpringCloud Bus】,spring cloud,學(xué)習(xí),筆記

基本原理

Spring Cloud Bus的原理是基于消息代理和事件廣播機(jī)制。

  • 消息代理: Spring Cloud Bus使用輕量級(jí)消息代理(如RabbitMQ或Kafka)作為通信中間件。消息代理負(fù)責(zé)接收和分發(fā)消息,并確保消息的可靠傳遞。微服務(wù)通過(guò)連接到消息代理,可以發(fā)送和接收消息。

  • 事件廣播: 當(dāng)一個(gè)微服務(wù)的配置發(fā)生變化或狀態(tài)發(fā)生改變時(shí),它會(huì)將這些變化作為消息發(fā)送到消息代理。消息代理將這些消息廣播給所有訂閱了消息總線的微服務(wù)。這樣,其他微服務(wù)就能夠接收到這些變化,并及時(shí)做出相應(yīng)的響應(yīng)。

安裝RabbitMQ

  • *安裝Erlang
    下載地址:http://erlang.org/download/otp_win64_21.3.exe,下載完成后點(diǎn)擊安裝即可。
  • 安裝RabbitMQ
    下載地址:https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.14/rabbitmq-server-3.7.14.exe?????,下載完成后點(diǎn)擊安裝。

安裝RabbitMQ后進(jìn)入sbin目錄下
Spring Cloud學(xué)習(xí)筆記【消息總線-SpringCloud Bus】,spring cloud,學(xué)習(xí),筆記
執(zhí)行命令rabbitmq-plugins enable rabbitmq_management
啟動(dòng)mq,如下圖就啟動(dòng)成功
Spring Cloud學(xué)習(xí)筆記【消息總線-SpringCloud Bus】,spring cloud,學(xué)習(xí),筆記
訪問(wèn)地址http://localhost:15672/ 如下圖
Spring Cloud學(xué)習(xí)筆記【消息總線-SpringCloud Bus】,spring cloud,學(xué)習(xí),筆記
賬號(hào)密碼都為,guest
Spring Cloud學(xué)習(xí)筆記【消息總線-SpringCloud Bus】,spring cloud,學(xué)習(xí),筆記

Demo配置

新建模塊cloud-config-client-3366

Spring Cloud學(xué)習(xí)筆記【消息總線-SpringCloud Bus】,spring cloud,學(xué)習(xí),筆記

pom.xml

    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-config</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>
        <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.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </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.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
    </dependencies>

bootstrap.yml

server:
  port: 3366

spring:
  application:
    name: config-client
  cloud:
    #Config客戶端配置
    config:
      label: master #分支名稱
      name: config #配置文件名稱
      profile: dev #讀取后綴名稱   上述3個(gè)綜合:master分支上config-dev.yml的配置文件被讀取http://config-3344.com:3344/master/config-dev.yml
      uri: http://localhost:3344 #配置中心地址

# 暴露監(jiān)控端點(diǎn)
management:
  endpoints:
    web:
      exposure:
        include: "*"

#服務(wù)注冊(cè)到eureka地址
eureka:
  instance:
    # 配置eureka的狀態(tài)顯示
    hostname: localhost
    instance-id: ${eureka.instance.hostname}:${spring.application.name}:${server.port}
  client: #服務(wù)提供者provider注冊(cè)進(jìn)eureka服務(wù)列表內(nèi)
    service-url:
      register-with-eureka: true
      fetch-registry: true
      defaultZone: http://eureka7001.com:7001/eureka

啟動(dòng)類

@EnableEurekaClient
@SpringBootApplication
public class ConfigClientMain3366 {

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

}

controller

@RestController
@RefreshScope //Spring Cloud 提供的用于動(dòng)態(tài)刷新配置的注解,會(huì)在調(diào)用 /actuator/refresh 接口時(shí)重新加載配置并更新 configInfo 的值。
public class ConfigClientController {

    @Value("${spring.cloud.config.info}")
    private String configInfo;

    @GetMapping("/configInfo")
    public String getConfigInfo() {
        return configInfo;
    }
}

配置中心3344添加消息總線支持

pom.xml

        <!--添加消息總線RabbitMQ支持-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bus-amqp</artifactId>
        </dependency>

bootstrap.yml

##rabbitmq相關(guān)配置,暴露bus刷新配置的端點(diǎn)
management:
  endpoints: #暴露bus刷新配置的端點(diǎn)
    web:
      exposure:
        include: 'bus-refresh'

客戶端3355,3366添加消息總線支持

pom.xml

        <!--添加消息總線RabbitMQ支持-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bus-amqp</artifactId>
        </dependency>

bootstrap.yml修改后

server:
  port: 3355

spring:
  application:
    name: config-client
  cloud:
    #Config客戶端配置
    config:
      label: master #分支名稱
      name: config #配置文件名稱
      profile: dev #讀取后綴名稱   上述3個(gè)綜合:master分支上config-dev.yml的配置文件被讀取http://config-3344.com:3344/master/config-dev.yml
      uri: http://localhost:3344 #配置中心地址
  #rabbitmq相關(guān)配置 15672是Web管理界面的端口;5672是MQ訪問(wèn)的端口
  rabbitmq:
    host: localhost
    port: 5672
    username: guest
    password: guest

# 暴露監(jiān)控端點(diǎn)
management:
  endpoints:
    web:
      exposure:
        include: "*"

#服務(wù)注冊(cè)到eureka地址
eureka:
  instance:
    # 配置eureka的狀態(tài)顯示
    hostname: localhost
    instance-id: ${eureka.instance.hostname}:${spring.application.name}:${server.port}
  client: #服務(wù)提供者provider注冊(cè)進(jìn)eureka服務(wù)列表內(nèi)
    service-url:
      register-with-eureka: true
      fetch-registry: true
      defaultZone: http://eureka7001.com:7001/eureka

測(cè)試

修改gitee上的配置,config info version由2改為3提交

Spring Cloud學(xué)習(xí)筆記【消息總線-SpringCloud Bus】,spring cloud,學(xué)習(xí),筆記

發(fā)送POST請(qǐng)求來(lái)觸發(fā)刷新

http://localhost:3344/actuator/bus-refresh

Spring Cloud學(xué)習(xí)筆記【消息總線-SpringCloud Bus】,spring cloud,學(xué)習(xí),筆記

查看客戶端結(jié)果

3355和3366均已成功更新
Spring Cloud學(xué)習(xí)筆記【消息總線-SpringCloud Bus】,spring cloud,學(xué)習(xí),筆記
Spring Cloud學(xué)習(xí)筆記【消息總線-SpringCloud Bus】,spring cloud,學(xué)習(xí),筆記

動(dòng)態(tài)刷新定點(diǎn)通知

不想全部通知,只想定點(diǎn)通知:只通知3355,不通知3366

簡(jiǎn)單一句話:指定具體某一個(gè)實(shí)例生效而不是全部

公式:http://localhost:配置中心的端口號(hào)/actuator/bus-refresh/{destination}

案例:

我們這里以刷新運(yùn)行在3355端口上的config-client為例:只通知3355,不通知3366文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-706379.html

http://localhost:3344/actuator/bus-refresh/config-client:3355

到了這里,關(guān)于Spring Cloud學(xué)習(xí)筆記【消息總線-SpringCloud Bus】的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • SpringCloud學(xué)習(xí)6(Spring Cloud Alibaba)斷路器Sentinel熔斷降級(jí)

    SpringCloud學(xué)習(xí)6(Spring Cloud Alibaba)斷路器Sentinel熔斷降級(jí)

    SpringCloud、SpringCloudAlibaba、SpringBoot版本選擇。為了避免各種千奇百怪的bug,我們還是采用官方推薦的畢業(yè)版本。 修改tomcat配置最大線程數(shù) 引入測(cè)試依賴 編寫測(cè)試代碼 這里同時(shí)我們?cè)跒g覽器去請(qǐng)求該地址,響應(yīng)會(huì)變得很慢 測(cè)試結(jié)論:此時(shí)會(huì)發(fā)現(xiàn)由于thread接口囤積大量請(qǐng)求,

    2023年04月08日
    瀏覽(31)
  • Spring Cloud【Config客戶端配置與測(cè)試、Config客戶端之動(dòng)態(tài)刷新 、什么是Spring Cloud Bus、Docker安裝RabbitMQ】(十)

    Spring Cloud【Config客戶端配置與測(cè)試、Config客戶端之動(dòng)態(tài)刷新 、什么是Spring Cloud Bus、Docker安裝RabbitMQ】(十)

    ? 目錄 分布式配置中心_Config客戶端配置與測(cè)試 為什么要引入bootstrap?

    2024年02月15日
    瀏覽(18)
  • config: 分布式配置中心 & bus: 消息總線

    每一個(gè)應(yīng)用程序在運(yùn)行時(shí)都需要相應(yīng)的yml配置,分布式架構(gòu)下多個(gè)服務(wù)器和應(yīng)用服務(wù)面臨著多個(gè)配置文件,在修改和發(fā)布上難度較大,需要有一個(gè)管理中心來(lái)統(tǒng)一管理,優(yōu)雅的解決了配置的動(dòng)態(tài)變更、持久化、運(yùn)維成本等問(wèn)題 流程: 分布式配置中心去遠(yuǎn)程倉(cāng)庫(kù)將創(chuàng)建好的yml文件

    2023年04月23日
    瀏覽(26)
  • Spring Cloud學(xué)習(xí)筆記:Eureka簡(jiǎn)介,Eureka簡(jiǎn)單樣例

    Spring Cloud學(xué)習(xí)筆記:Eureka簡(jiǎn)介,Eureka簡(jiǎn)單樣例

    這是本人學(xué)習(xí)的總結(jié),主要學(xué)習(xí)資料如下 - 馬士兵教育 Eureka 是 SpringCloud Nexflix 的核心子模塊,其中包含 Server 和 Client 。 Server 提供服務(wù)注冊(cè),存儲(chǔ)所有可用服務(wù)節(jié)點(diǎn)。 Client 用于簡(jiǎn)化和 Server 的通訊復(fù)雜度。 下面是 Eureka 的簡(jiǎn)單架構(gòu)圖 每一個(gè)服務(wù)節(jié)點(diǎn)需要在 Eureka Server 中注冊(cè)

    2024年04月16日
    瀏覽(102)
  • Spring Cloud學(xué)習(xí)筆記(Ribbon):Ribbon的應(yīng)用樣例

    Spring Cloud學(xué)習(xí)筆記(Ribbon):Ribbon的應(yīng)用樣例

    這是本人學(xué)習(xí)的總結(jié),主要學(xué)習(xí)資料如下 - 馬士兵教育 我們都知道 Ribbon 是用于負(fù)載均衡的。提供同一種服務(wù)的 Client 可能有多個(gè),比如有多個(gè) User Client 提供查詢用戶信息的服務(wù),使用 Ribbon 就能簡(jiǎn)單地達(dá)到負(fù)載均衡的效果。 想要使用 Ribbon ,無(wú)論是服務(wù)提供者還是調(diào)用服務(wù)

    2024年04月25日
    瀏覽(18)
  • 微服務(wù)SpringCloud教程——Spring Cloud是什么

    Spring Cloud 是一款基于 Spring Boot 實(shí)現(xiàn)的微服務(wù)框架。Spring Cloud 源自 Spring 社區(qū),主要由?Pivotal 和 Netflix 兩大公司提供技術(shù)迭代和維護(hù)。 隨著微服務(wù)的火爆流行,國(guó)內(nèi)外各大互聯(lián)網(wǎng)公司都相繼分享了他們?cè)谖⒎?wù)架構(gòu)中,針對(duì)不同場(chǎng)景出現(xiàn)的各種問(wèn)題的解決方案和開(kāi)源框架。

    2024年02月15日
    瀏覽(18)
  • 《Spring Cloud學(xué)習(xí)筆記:Nacos配置管理 & OpenFeign & LoadBalancer & Getway》

    《Spring Cloud學(xué)習(xí)筆記:Nacos配置管理 & OpenFeign & LoadBalancer & Getway》

    基于Feign的聲明式遠(yuǎn)程調(diào)用(代碼更優(yōu)雅),用它來(lái)去代替我們之前的RestTemplate方式的遠(yuǎn)程調(diào)用 首先我們來(lái)看一下,微服務(wù)架構(gòu)下關(guān)于配置文件的一些問(wèn)題: 配置文件相對(duì)分散。在一個(gè)微服務(wù)架構(gòu)下,配置文件會(huì)隨著微服務(wù)的增多變的越來(lái)越多,而且分散在各個(gè)微服務(wù)中,不

    2024年02月04日
    瀏覽(51)
  • 【springcloud 微服務(wù)】Spring Cloud Alibaba整合Sentinel詳解

    目錄 一、前言 二、環(huán)境準(zhǔn)備 2.1 部署sentinel管控臺(tái) 2.1.1 官網(wǎng)下載sentinel的jar包 2.1.2 啟動(dòng)控制臺(tái)

    2023年04月09日
    瀏覽(96)
  • 【springcloud 微服務(wù)】Spring Cloud Alibaba Nacos使用詳解

    目錄 一、前言 二、nacos介紹 2.1??什么是 Nacos 2.2 nacos 核心能力 2.2.1 服務(wù)發(fā)現(xiàn)和服務(wù)健康監(jiān)測(cè)

    2024年01月22日
    瀏覽(26)
  • 【springcloud 微服務(wù)】Spring Cloud Alibaba Sentinel使用詳解

    目錄 一、前言 二、分布式系統(tǒng)遇到的問(wèn)題 2.1 服務(wù)可用性問(wèn)題 2.1.1? 單點(diǎn)故障

    2024年01月16日
    瀏覽(22)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包