春の雲バスメッセージバスのRabbitMQ

オリジナルリンク: http://www.cnblogs.com/luangeng/p/7291770.html

スプリングクラウドバスシステムは、軽量メッセージ・ブローカによって接続されたノードを分散します。これにより、ブロードキャスト(例えば、構成変更)コマンド、または他の管理などの状態変化を達成します。唯一の実装は、トランスポートエージェントのオブジェクトとしてAMQPを使用することです。

春クラウドバスもMQによって統合を達成するために、すべての分散システムメッセージ放送機構の管理と普及を担当するメッセージ・バスとして知られ、それは現在、カフカとRabbitMQのを使用しています。コンフィギュレーション・センターのクライアントの更新は、一般的なアプリケーション・シナリオで、物事の多くを行うことができますバスメカニズムを使用してください。リフレッシュコマンドの中心は、無線を用いた構成の各端に送信するとき、メッセージ・バスを使用して、構成が達成されてもよいです。 

春はコンフィグパッケージでの作業のほとんどを完了した、私たちは次のように変更前の設定に基づいて中央する必要があります。

コンフィグ・サーバ設定・クライアント、および増加した信頼1.:

<依存性> 
     <のgroupId> org.springframework.cloud </のgroupId> 
     <たartifactId>ばねクラウドスタータバスAMQP </たartifactId> 
</依存>

2. MQを高めるためにコンフィグサーバと設定クライアントの設定ファイルを与えます

spring.rabbitmq.host = localhostの
spring.rabbitmq.port = 5672 
spring.rabbitmq.username = LG 
spring.rabbitmq.password = LG

3.ターンのRabbitMQ、ユーレカ、コンフィグサーバ、設定-CLIENT1、コンフィグ-CLIENT2を開始します

4. GitHubに、リフレッシュ設定・クライアントの構成図でプロファイルを変更し、この時点で更新されません

その後、カール-X POSTはhttp実行:// localhostと:8011 /バス/リフレッシュした後、再び設定クライアントの設定を参照して、この時間は更新されています 

5.ログRabbitMQの管理ページでは、あなたは、接続キューやその他の情報を見ることができます。

 

時にはそれが唯一の指定された設定クライアントをリフレッシュされ、一部をリフレッシュする必要があり、春にもサポートして、唯一の転送先引数を呼び出す必要があるときなど/バス/リフレッシュ・インターフェース、:

?/バス/リフレッシュ先= configの-クライアント:?8031或/バス/リフレッシュ先= configのクライアント:**

 

カスタムメッセージとは、バスを介してメッセージを送信します

前にいくつかのプロジェクトに基づき、我々は次のように変更します。

1.configサーバーベースクラスの増加送信者

@Component
 パブリック クラスのSender { 

    プライベート 静的のAtomicIntegerカウント= のAtomicInteger(1 ); 

    @Autowired 
    プライベートAmqpTemplate rabbitTemplate。

    公共 のボイドセンド(){ 
        文字列のMSG = "MSG" + count.getAndIncrement()+ "" + 新しい日付(); 
        System.out.println( "送信者:" + MSG)。
        この .rabbitTemplate.convertAndSend( "こんにちは" 、MSG)。
    } 
}

 

2.config-サーバーベースのタイマータスクが増加すると、メインクラス注釈付き@EnableSchedulingに、メッセージごとに3秒を送信します。

@Component
 パブリック クラスScheduledTasks { 

    @Autowired 
    プライベート送信者、送信者、

    @Scheduled(ini​​tiaDelay = 5000、fixedRate = 3000 公共 ボイドreportCurrentTime(){ 
        sender.send()。
    } 

}

 

3、各々、及びCONFIG-CONFIG-CLIENT1 CLIENT2増加受付クラスレシーバ

@Component 
@RabbitListener(キュー = "こんにちは" パブリック クラスレシーバ{ 

    @RabbitHandler 
    公共 ボイド処理(文字列MSG){ 
        するSystem.out.println( "受信" + MSG)。
    } 

}

 

4.順次ユーレカ設定 - サーバ設定クライアントを起動します

5.次のようにコンソール出力を守ってください。

設定 - サーバー:

送信者:日8月6日午後9時56分03秒CST 2017 MSG1 
日8月MSG2:送信者 06午前21時56分06秒CST 2017 
日8月MSG3:送信者 06午後9時56分09秒CST 2017 
日8月MSG4:送信者 06午前21時五十六分12秒をCST 2017 
送信者:日8月msg5で 06午後九時56分15秒CST 2017 
日8月msg6:送信者 06 21時56分18秒CST 2017 
日8月msg7:送信者 06夜九時56分21秒CST 2017 
日8月msg8:送信者 06午後9時56分を:24 CST 2017 
送信者:日8月msg9 2017 06夜9時56分27秒CSTを

設定-CLIENT1:

受信機:日8月6日午後9時56分06秒CSTをMSG2 2017 
レシーバー:日8月MSG4 06 21時56分12秒CST 2017 
msg6日8月:レシーバ 06夜九時56分18秒CST 2017 
レシーバー:msg8日8月 06 21時56分24秒をCST 2017

設定 - クライアント2:

受信機:日8月6日夜九時56分03秒CST 2017 MSG1 
日8月MSG3:レシーバ 21時56分09秒06をCST 2017 
レシーバー:日8月msg5で 06を午前21時56分15秒CST 2017 
レシーバー:日8月msg7 06午前21時56分21秒をCST 2017 
レシーバー:日8月msg9 21時五十六分27秒06をCST 2017

単一のメッセージキューの順番を取るために、クライアントから見えます

 

 

参考:http://projects.spring.io/spring-cloud/spring-cloud.html 

 

終わり

ます。https://www.cnblogs.com/luangeng/p/7291770.htmlで再現

おすすめ

転載: blog.csdn.net/weixin_30515513/article/details/94786679