問題タブ [smallrye-reactive-messaging]
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.
quarkus - Quarkus: Artemis でポイントツーポイントメッセージングを使用する方法は?
私は quarkus バージョンを使用しています:1.5.2.Final
およびリアクティブ メッセージングを含めるために次の依存関係を使用しています (送信側プロジェクトと受信側プロジェクトの間に Artemis の実行中の docker インスタンスがあります):
送信者プロジェクトには、@Outgoing('stock-quote')
毎秒乱数を生成して返すメソッドに関する注釈がありますFlowable<Message<String>>
。構成は次のとおりです。
受信者プロジェクトでは、注釈付きのメソッドを持つ受信者が配置されてい@Incoming('stock)'.
ます。構成は次のとおりです。
私は何に気づきますか?すべてが正常に機能します。なんらかの理由で受信者プロジェクトが停止した場合でも、送信者によってまだ送信されているメッセージは保持されます。これは良いことです。ただし、レシーバーが再びオンラインに戻ると、レシーバーは永続化されたメッセージを受信せず、代わりに別の「クライアント スレッド」で開始します。永続化されたメッセージはそこにとどまります。
@Broadcast
送信者側にも注釈を追加しようとしました。また、レシーバーの複数のインスタンスが必要なため、メッセージはレシーバーに分割されています。その後、レシーバーがオフラインになると、メッセージは再び永続化されます。レシーバーが復帰すると、新しいメッセージが送信されますが、持続メッセージはそこにとどまります (別の「クライアント スレッド」に留まり、さらに悪いことに、この「クライアント スレッド」の持続メッセージは (ブロードキャストのために) 蓄積されます)。
それで、私は何が欲しいですか?メッセージを送信する送信者が必要です。これらのメッセージは、2 つ以上の受信側インスタンスに分割されています。1 つのレシーバーがダウンした場合、メッセージは他のインスタンスによって処理されます。すべてのレシーバーがダウンしている場合、メッセージは永続化され、1 つ以上のレシーバーが再びオンラインになると、これらの永続化されたメッセージが処理されます。だから基本的に私はこれが欲しい:
アルテミスと組み合わせて quarkus リアクティブ メッセージを使用してこれを行う方法について、誰にもアイデアがありますか?