私たちのビジネス要件では、全国に分散している数千のクライアントに更新を送信する必要があります。つまり、これらのクライアントの多くは 3g ネットワークを使用して接続しているため、多くの接続/切断が発生します...配信する必要がある更新は、「企業 A はもう現金化できません」または「企業 B は現金化できます」などです。これらの更新を配信するために、ActiveMQ の永続的なトピックを使用することを考えていました。クライアントが永続的なトピックに接続すると、接続が失われたとしても、クライアントが戻ってくるたびに、オフラインの間にそのトピックに送信されたメッセージを受信することを理解しています。大きな問題は、クライアントが私たちのシステムを起動したときに、サブスクリプションの前に、クライアントがサブスクライブしている永続的なトピックにメッセージが送信された場合はどうなるかということです。このケースは次のとおりです。
永続トピックが作成される
メッセージ 1 が永続トピックに送信される
メッセージ 2 が永続トピック クライアント A に送信される 永続トピック
クライアント A にサブスクライブする
メッセージ 3 が永続トピックに送信される
メッセージ 4 が永続トピック
クライアント A に送信さ
れる メッセージ 5 が送信される永続トピックへ
メッセージ 6 が永続トピックに送信される
クライアント A がオンラインになる
ActiveMQ の論文によると、クライアント A はメッセージ 3 から 6 を問題なく受信します。しかし、メッセージ 1 と 2 はどうでしょうか。それらのメッセージを失うわけにはいきません...
前もって感謝します!