最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringCloud Bus 消息總線的具體使用

 更新時(shí)間:2018年12月17日 10:01:05   作者:郭鵬飛  
這篇文章主要介紹了SpringCloud Bus 消息總線的具體使用,詳細(xì)的介紹了什么是消息總線以及具體配置,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

什么是消息總線

1. 概念

在微服務(wù)架構(gòu)中,通常會(huì)使用輕量級(jí)的消息代理來(lái)構(gòu)建一個(gè)共用的消息主題來(lái)連接各個(gè)微服務(wù)實(shí)例, 它廣播的消息會(huì)被所有在注冊(cè)中心的微服務(wù)實(shí)例監(jiān)聽和消費(fèi),也稱消息總線

2. SpringCloud Bus

SpringCloud中也有對(duì)應(yīng)的解決方案,SpringCloud Bus 將分布式的節(jié)點(diǎn)用輕量的消息代理連接起來(lái), 可以很容易搭建消息總線,配合SpringCloud config 實(shí)現(xiàn)微服務(wù)應(yīng)用配置信息的動(dòng)態(tài)更新。

3. 其他

消息代理屬于中間件。設(shè)計(jì)代理的目的就是為了能夠從應(yīng)用程序中傳入消息,并執(zhí)行一些特別的操作。 開源產(chǎn)品很多如ActiveMQ、Kafka、RabbitMQ、RocketMQ等 目前springCloud僅支持RabbitMQ和Kafka。本文采用RabbitMQ實(shí)現(xiàn)這一功能。

搭建分布式配置中心

1. Config 架構(gòu)

當(dāng)一個(gè)系統(tǒng)中的配置文件發(fā)生改變的時(shí)候,我們需要重新啟動(dòng)該服務(wù),才能使得新的配置文件生效,spring cloud config可以實(shí)現(xiàn)微服務(wù)中的所有系統(tǒng)的配置文件的統(tǒng)一管理,而且還可以實(shí)現(xiàn)當(dāng)配置文件發(fā)生變化的時(shí)候,系統(tǒng)會(huì)自動(dòng)更新獲取新的配置。

2. Git 環(huán)境搭建

使用 碼云 環(huán)境搭建 git

碼云環(huán)境地址: https://gitee.com/guopf/springcloud_bus

3. Git服務(wù)器上傳配置文件

命名規(guī)范 服務(wù)名稱-版本.yml 例如configclient_dev.yml

4. 搭建 Eureka 服務(wù)注冊(cè)中心

具體搭建環(huán)境隨后補(bǔ)充,可以使用我自己部署的 http://47.105.86.222:8100 (配置地址http://47.105.86.222:8100/eureka)

5. 搭建 config-server 服務(wù)

1. maven 依賴

<dependencies>
    <!-- SpringBoot整合Web組件 -->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <!--spring-cloud 整合 config-server -->
    <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-config-server</artifactId>
      <version>2.0.2.RELEASE</version>
    </dependency>

    <!-- SpringBoot整合eureka客戶端 -->
    <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
      <version>2.0.2.RELEASE</version>
    </dependency>
 </dependencies>

2. 配置文件

### 服務(wù)地址 端口
server:
 port: 8800
### 服務(wù)名稱
spring:
 application:
  name: config_server
 cloud:
  config:
   server:
    git:
     ### git 地址
     uri: https://gitee.com/guopf/springcloud_bus.git
     username:
     password:
     ### 配置讀取文件夾
     search-paths: config
   ### 分支
   label: master

### eureka 配置
eureka:
 client:
  service-url:
   defaultZone: http://47.105.86.222:8100/eureka
  register-with-eureka: true
  fetch-registry: true

3. 啟動(dòng)

/**
 * @EnableEurekaClient : 開啟 eureka 客戶端
 * @EnableConfigServer : 開啟 config 服務(wù)端
 *
 */
@SpringBootApplication
@EnableEurekaClient
@EnableConfigServer
public class App {
  public static void main(String[] args) {
    SpringApplication.run(App.class,args);
  }
}

搭建 config-client 服務(wù)

1. 手動(dòng)更新 

1. maven 依賴

  <dependencies>
    <!-- SpringBoot整合Web組件 -->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-config-client</artifactId>
      <version>2.0.2.RELEASE</version>
    </dependency>
    <!-- SpringBoot整合eureka客戶端 -->
    <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
      <version>2.0.2.RELEASE</version>
    </dependency>
    <!--核心jar包,集成rabbitMQ 消息總線 bus
    <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-starter-bus-amqp</artifactId>
    </dependency>
    -->
    <!-- actuator監(jiān)控中心 -->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>

  </dependencies>

2. 配置文件(bootstrap.yml)

### 端口
server:
 port: 8801
 ### eureka 配置中心
eureka:
 client:
  service-url:
   defaultZone: http://47.105.86.222:8100/eureka
  fetch-registry: true
  register-with-eureka: true

### 配置服務(wù)名稱,要和config 配置中心文件保持一致
spring:
 application:
  name: configclient
 cloud:
  config:
   ### 讀取配置
   profile: dev
   discovery:
    ###
    enabled: true
    ### config 配置中心配置的服務(wù)名稱
    service-id: config_server
management:
 endpoints:
  web:
   exposure:
    include: "*"

3. 啟動(dòng)

@SpringBootApplication
@EnableEurekaClient
@EnableDiscoveryClient
public class App {
  public static void main(String[] args) {
    SpringApplication.run(App.class,args);
  }
}
/**
 * 在讀取配置文件信息的地方進(jìn)行添加 @RefreshScope 注解
 */
@RestController
@RefreshScope
public class AppController {

  @Value("${userAge}")
  private String userAge;

  @GetMapping("/userAge")
  public String config(){
    System.out.println("userAge : " + userAge);
    return userAge;
  }
}

修改git倉(cāng)庫(kù)中的配置,進(jìn)行手動(dòng)更新,post請(qǐng)求

http://127.0.0.1:8801/actuator/refresh  啟動(dòng)刷新器 從cofnig_server讀取

2. 使用消息總線 bus 更新

1. 添加依賴信息

在 config_server,config_client 中添加 

    <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-starter-bus-amqp</artifactId>
    </dependency>
    <!-- actuator監(jiān)控中心 -->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>

2. 配置文件修改

添加對(duì) rabbbitMQ的配置, rabbitMQ服務(wù)和config_server,config_client 在一個(gè)服務(wù)器上,使用默認(rèn)配置即可

### rabbitmq 配置信息
 rabbitmq:
  addresses: 47.105.86.222
  username: guest
  password: guest
  port: 5672
  virtual-host: /

3. 刷新

http://127.0.0.1:8801/actuator/bus-refresh   post方式

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java開發(fā)者結(jié)合Node.js編程入門教程

    Java開發(fā)者結(jié)合Node.js編程入門教程

    這篇文章主要介紹了Java開發(fā)者結(jié)合Node.js編程入門教程,我將先向您展示如何使用Java EE創(chuàng)建一個(gè)簡(jiǎn)單的Rest服務(wù)來(lái)讀取 MongoDB數(shù)據(jù)庫(kù)。然后我會(huì)用node.js來(lái)實(shí)現(xiàn)相同的功能,需要的朋友可以參考下
    2014-09-09
  • ConcurrentModificationException日志關(guān)鍵字報(bào)警思考分析

    ConcurrentModificationException日志關(guān)鍵字報(bào)警思考分析

    本文將記錄和分析日志中的ConcurrentModificationException關(guān)鍵字報(bào)警,還有一些我的思考,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2023-12-12
  • springmvc限流攔截器的示例代碼

    springmvc限流攔截器的示例代碼

    本篇文章主要介紹了springmvc限流攔截器的示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-12-12
  • Springboot 整合shiro實(shí)現(xiàn)權(quán)限控制的方法

    Springboot 整合shiro實(shí)現(xiàn)權(quán)限控制的方法

    這篇文章主要介紹了Springboot 整合shiro實(shí)現(xiàn)權(quán)限控制的相關(guān)知識(shí),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-11-11
  • java復(fù)制文件的4種方式及拷貝文件到另一個(gè)目錄下的實(shí)例代碼

    java復(fù)制文件的4種方式及拷貝文件到另一個(gè)目錄下的實(shí)例代碼

    這篇文章主要介紹了java復(fù)制文件的4種方式,通過(guò)實(shí)例帶給大家介紹了java 拷貝文件到另一個(gè)目錄下的方法,需要的朋友可以參考下
    2018-06-06
  • springboot封裝響應(yīng)實(shí)體的實(shí)例代碼

    springboot封裝響應(yīng)實(shí)體的實(shí)例代碼

    這篇文章主要介紹了springboot封裝響應(yīng)實(shí)體,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-07-07
  • java中如何判斷對(duì)象是否是垃圾

    java中如何判斷對(duì)象是否是垃圾

    這篇文章主要介紹了java中如何判斷對(duì)象是否是垃圾,Java有兩種算法判斷對(duì)象是否是垃圾:引用計(jì)數(shù)算法和可達(dá)性分析算法,需要的朋友可以參考下
    2023-04-04
  • JavaScript的基本類型值-String類型

    JavaScript的基本類型值-String類型

    String類型用于表示由零或多個(gè)16位Unicode字符組成的字符序列,即字符串。在JavaScript中沒(méi)有單個(gè)的字符型,都是字符串。這篇文章主要介紹了JavaScript的基本類型值String類型,需要的朋友可以參考下
    2017-02-02
  • Springboot中如何使用Redisson實(shí)現(xiàn)分布式鎖淺析

    Springboot中如何使用Redisson實(shí)現(xiàn)分布式鎖淺析

    redisson是redis的java客戶端程序,國(guó)內(nèi)外很多公司都有在用,下面這篇文章主要給大家介紹了關(guān)于Springboot中如何使用Redisson實(shí)現(xiàn)分布式鎖的相關(guān)資料,需要的朋友可以參考下
    2021-10-10
  • java 中ThreadLocal本地線程和同步機(jī)制的比較

    java 中ThreadLocal本地線程和同步機(jī)制的比較

    這篇文章主要介紹了java 中ThreadLocal本地線程和同步機(jī)制的比較的相關(guān)資料,需要的朋友可以參考下
    2017-03-03

最新評(píng)論

南川市| 庄浪县| 公主岭市| 东丰县| 北票市| 尤溪县| 石渠县| 栾川县| 宽甸| 博兴县| 景泰县| 同心县| 惠州市| 剑河县| 成武县| 濮阳县| 双城市| 青阳县| 红原县| 昌都县| 文安县| 汾西县| 洮南市| 祁连县| 伊通| 稻城县| 青州市| 安泽县| 玉溪市| 邓州市| 定襄县| 邢台县| 额敏县| 维西| 越西县| 平邑县| 南丰县| 柘荣县| 嘉黎县| 句容市| 昭通市|