springcloud-busメッセージバスの構築と使用

プロジェクト全体については、giteeにアクセスしてhttps://gitee.com/xwb1056481167/spring-cloudを表示して表示してください

プロジェクトはcloud-config-center-3344を使用しました。

メッセージバス

マイクロサービスアーキテクチャを備えたシステムでは、通常、軽量のメッセージブローカーを使用して共通のメッセージトピックを構築し、システム内の他のマイクロサービスインスタンスを接続
します。トピックで生成されたメッセージは、すべてのインスタンスで監視および消費されます。バス上のインスタンスでは、主題に関連する他の部隊に知らせる必要があるいくつかのニュースを簡単にブロードキャストできます。

原理

ConfigClientインスタンスはすべてMQで同じトピックをリッスンします。デフォルトはspringCloudBusです。サービスがデータを更新すると、同じトピックをリッスンする他のサービスに通知できるように、メッセージをトピックに配置し、独自のトピックを更新します。構成。

バスは現在、RabbitMQとKafkaのみをサポートしています

RabbitMQをインストールします

1.最初にerlangをインストールします

ダウンロードリンク:http//erlang.org/download/otp_win64_21.3.exe

または他のアドレスhttp://erlang.org/download/

2. RabbitMQをダウンロードしてインストールします

1.
インストールバージョンをダウンロードしてインストールします:https//github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.14/rabbitmq-server-3.7.14.exe
解凍バージョン:https//github.com /rabbitmq/rabbitmq-server/releases/download/v3.7.14/rabbitmq-server-windows-3.7.14.zip

2. sbinディレクトリに入り、次にcmdを実行してrabbitmqを実行します-プラグインはrabbitmq_managementを有効にします

rabbitmq-plugins enable rabbitmq_management

次のメッセージが表示され、インストールが完了します

次のインストール情報がウィンドウの下に表示され、インストールが成功したかどうかを確認します

http://localhost:15672/ 

デフォルトのパスワードguest:guest

 

ブロードキャスト通知2つのアーキテクチャのアイデア


最初のタイプ:(メッセージバスを使用して、他のすべてのクライアントの構成を更新せずにクライアント/ bus / refreshをトリガーします)

2番目のタイプ:(メッセージバスを使用してconfigServerの/ bus / refreshをトリガーします)ブレークポイント、およびすべてのクライアントの構成を更新します

 

2つのモードでの構成

SpringCloudバスはグローバルブロードキャストを動的に更新します

サーバーは3344で、2つのクライアントは3355と3366です。githubを変更した後は、3344に通知するだけで、3355と3366は、rabbitMQによってサブスクライブされたspringCloudBusニュースを通じて最新のコンテンツを自動的に取得します。

1.メッセージマスターコントロール3344の構成

Cloud-config-center-3344構成

1.マスターコントロールメッセージセンターにrabbitMQを統合します

<!-- 添加消息总线RabbitMQ的支持(包含了bus和rabbitMQ) -->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-bus-amqp</artifactId>
</dependency>

2.ymlはrabbitMQの構成を構成します

spring:
  #RabbitMQ的配置
  rabbitmq:
    host: localhost
    port: 5672
    username: guest
    password: guest
# rabbitmq相关配置,暴露bus刷新配置的断点
management:
  endpoints: #暴露bus刷新配置的断点
    web:
      exposure:
        include:  'bus-refresh'

2つ目は、クライアント3355、3366を構成することです。

cloud-config-client-3355、3366を構成します

1.PomがrabbitMQサポートを追加

<!-- 添加rabbitmq的支持 -->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-bus-amqp</artifactId>
</dependency>

spring-cloud-starter-bus-amqpはバスとRabbitMQを統合します

2.yml構成

spring:
  #rabbitmq的配置
  rabbitmq:
    host: localhost
    port: 5672
    username: guest
    password: guest
#暴露监控断点
management:
  endpoints:
    web:
      exposure:
        include: "*" #*表示健康等其他参数,统一用*代替了

3366の構成は3355の構成と同じです。ここでは省略

テスト

起動シーケンス7001、3344、3355、3366 は、マスターコントロールのバスリフレッシュリフレッシュを実行し
ます。curlコマンドがない場合は、https://curl.haxx.se/download/curl-7.73.0をダウンロードする必要があります。 zip

url -X POST "http://localhost:3344/actuator/bus-refresh"

効果:githubファイルを変更しました。3344は最新の時刻にアクセスします。3344マスター制御コマンドを手動で実行した後、3355と3366は両方とも最新の構成ファイルです。

SpringCloudバスの動的更新の固定小数点通知

注:2つの構成(3355、3366)クライアントが同時に、3355に通知するだけで、3366に通知したくない

次のコマンドを実行します

curl -X POST "http://localhost:3344/actuator/bus-refresh/{destination}"

注:/ bus / refreshリクエストは特定のサーバーインスタンスに送信されませんが、構成サーバーに送信され、宛先パラメータークラスを介して構成を更新する必要があるサービスまたはインスタンスを指定します。
宛先は次のとおりです。サービス名:ポート番号、つまり:spring.application.name:server.port
例:curl -X POST " http:// localhost:3344 / actuator / bus-refresh / config-client:3355 "

おすすめ

転載: blog.csdn.net/www1056481167/article/details/113584610