問題タブ [spring-cloud-bus]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
651 参照

spring-cloud - Spring Cloud Bus Kafka を使用した複数インスタンス

私の質問は、Spring Cloud Stream Kafka でマルチ インスタンスを管理する方法です。

説明させてください。Spring Cloud Stream Microservices コンテキスト (eureka、configserver、kafka) で、同じマイクロサービスの 2 つのインスタンスが必要です。GIT リポジトリの構成を変更すると、configserver が (webhook を介して) メッセージを Kafka トピックにプッシュします。

マイクロサービスで同じグループ ID を使用すると、2 つのインスタンスのうちの 1 つだけが通知を受け取り、Spring コンテキストをリロードします。しかし、すべてのインスタンスを更新する必要があります...

そのために、一意の group-id を構成しました。${spring.application.name}.bus.${hostname} うまく機能しますが、問題は、サービスの新しいインスタンスを開始するたびに、kafka に新しいコンシューマー グループが作成されることです。今、私は未使用の消費者グループをたくさん持っています。

[![マイクロサービスの消費者][1]][1] [1]: https://i.stack.imgur.com/6jIzx.png

私のサービスのSpring Cloud Stream構成は次のとおりです。

多くの消費者の作成を避ける方法は? kafka で古いコンシューマ グループを削除する必要がありますか? 私の解決策はそれを行うための最良の方法ではないと思うので、より良い選択肢があれば興味があります;)

ありがとうございました

0 投票する
1 に答える
503 参照

spring-boot - Spring Cloud Bus を無効にしても、RabbitMQ が起動する

Spring Boot 2.2.9.RELEASE と Spring Cloud Hoxton.SR7 を使用しています。Spring Cloud Bus を使用して、docker swarm スタック内のすべてのコンテナーにシグナルを送信しています。実行中の RabbitMQ クラスターを使用して本番環境にデプロイすると、完全に機能します!

spring-cloud-starter-bus-amqp Spring Boot スターターを介して RabbitMQ 実装を使用しています。バスを必要とせずにテストを実行することもあります。これにはスプリング ブート フラグがあります。

spring.cloud.bus.enabled=false

これによりバスが無効になりますが、rabbitMQ は引き続き起動し、接続拒否エラーを吐き出します。私も追加する必要がありました:

rabbitmq.autoStarting=false

RabbitMQ の自動設定を無効にしてみましたが、SB の自動設定クラスを暗示するRabbitAutoConfigurationクラスがあるようですが、実際には通常の SB 設定クラスです。

RabbitMQ の起動も妨げる Cloud Bus を無効にするよりクリーンな方法はありますか?