プロジェクト全体については、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 "