問題タブ [solace-mq]
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.
java - Solace コンシューマ アプリケーションで消費速度を遅くする方法
javax.jmsを使用して Solace キュー ( A としましょう)からメッセージを読み取る Spring Boot ベースの Java アプリケーションがあります。次に、私のアプリケーションは、( DelayedQueue を使用して)各メッセージに個別に 10 秒の遅延を適用します。その 10 秒が経過したら、メッセージを別の Solace Queue ( B としましょう) にプッシュします。キュー A の初期メッセージが少ない場合でも、メッセージごとに適切な 10 秒の遅延を設定できますが、すべて正常に動作します。
しかし、私にとっての課題は、キュー A に膨大な数のメッセージがあり (通常、私のユース ケースで発生します)、アプリケーションを起動すると、メッセージが非常に高速にプルされることです (1 秒あたり 10 ~ 15K メッセージ)。これにより、アプリケーションがメモリ不足になります ( GC オーバーヘッド制限を超えました)。
質問:私の質問は、アプリケーションで消費速度を遅くする方法です。1 秒あたり約 2 ~ 3K のメッセージを処理できる方法はありますか? コードでいくつかの構成変更を行う必要がありますか? お知らせ下さい。
以下は私が試した設定ですが、役に立ちません。この後でも、私のアプリケーションは 1 秒あたり 12 ~ 15K のメッセージをプルします。
ヒープメモリ(初期:2GB、最大:4GB)を増やそうとしましたが、役に立ちません。
親切に助けてください。ありがとう!
PSここでは TTL を使用できません。アプリケーションのみを使用して行う必要があります。
spring-jms - なぜsolace接続が拒否され、再起動後に再開するのか
spring jmsを使用してsolaceに接続するアプリがあり、solaceサーバーは昨日維持されます。その後、私のアプリは常にConnecting to host 'orig=tcp://xxx, scheme=tcp://, host=xxx' (host 1 of 1, smfclient 190521, attempt 1 of 1, this_host_attempt: 1 of 1) Connection attempt failed to host 'xxx' ConnectException com.solacesystems.jcsmp.JCSMPTransportException: (Client name: ceaaa391610d/1/#11ba492e839/CfXgqoqM62 Local port: -1 Remote addr: xxx Remote port: 55555) - Error communicating with the router. cause: java.net.ConnectException: Connection refused ((Client name: ceaaa391610d/1/#11ba492e839/CfXgqoqM62 Local port: -1 Remote addr: xxx Remote port: 55555) - )
アプリのログを確認しました。上記のログは 8 秒ごとに表示されますが、アプリでタイムアウト値を設定していないようです。
javax.jms.ConnectionFactory
との接続ベースを慰め、メッセージを送信するためorg.springframework.jms.connection.CachingConnectionFactory
に使用JmsTemplate
します。
再起動後に機能する理由と、そこにあるクライアント名情報のアイデアはありますか?
どんな助けにも感謝します!
java - 春のブート再接続慰めjmsキュー
スプリング ブートを使用して solace キューに接続しています。以下のチュートリアルを使用して、solace JMS キューに接続しました。 https://www.devglan.com/spring-boot/spring-jms-solace-example solace キューに接続できます。アプリケーションが開始され、solace キューとの接続が正常に機能しているときに 1 つの問題に直面しましたが、しばらくして solace キューがダウンした後、アプリケーションを再起動して接続するのではなく、Spring Boot アプリケーションが solace キューに再接続する必要があります。追加した solace キューに再接続するには
コードは以下のようになります
pom.xml
ここでは、solace キュー接続が中断された場合、例外リスナーには入りません。また、再接続プロパティを追加することにより、アプリケーションが solace キューに再接続しているかどうかがログに表示されません。しばらくして solace キューが起動した場合に solace キューに再接続する方法
親切に助けて