2017-03-22 15 views
0

MQTTサーバー経由で異なるデバイスタイプからのメッセージを消費するSpringブートサービスがありますが、もちろん各デバイスタイプには独自のメッセージフォーマットがあります。現時点では5種類あります。それらのそれぞれは、アプリケーション内の別のコンポーネントによって処理されます。合計で約15,000メッセージ/秒があります。メッセージはトピック上にも広がっていませんが、1つのトピックには1万件しかありません。私はPahoクライアントの周りにいくつかのベストプラクティスとパフォーマンス情報を見つけようとしましたが、そこにはあまりありません。複数のPaho MQTTクライアントまたはそのルートのみ

高負荷時にPahoクライアントはどのように動作しますか? すべてのメッセージを購読して内部的にコンシューマーにルーティングするPahoクライアントと一緒にいるべきですか、各コンシューマーコンポーネントが独自のクライアントを作成できるようにすべきですか?

今、私は第2のオプションに傾いています。より多くのスレッドが作成されますが、コードは少なくなります(ルーティングなどを作成する必要はありません)。しかし、一方では複数のクライアントが実行されています。今

enter image description here

答えて

0

私は2番目のオプションに傾いています。スレッド数が多くなると が生成されますが、コードが少なくなり(ルーティングなどを作成する必要はありません)、より良い のスレッドが作成されます。

私は同意すると、2番目のアプローチが最適です。常にKIS(Keep It Simple)の原則に従ってください。

関連する問題