なぜActiveMQの、シンプルなキュー/ミューテックスは対照的に?

StackOverflow https://stackoverflow.com/questions/759151

  •  09-09-2019
  •  | 
  •  

質問

明日は、インプロセスのメッセージキューの実装を選択するための私の理論的根拠を提示しています、と私は私の推論を明確にすることができませんでしだ。私の共同設計者は、我々は、私は組み込みモードでのActiveMQを示唆していたジョブとのアクセスを制御するために、ミューテックスのちょうど基本的なリストを使用して簡単な非同期キューを実装することを提案しています。私は個人的に非常にActiveMQのに感銘を受けてきた、と私は私の腸の印象をバックアップするためにいくつかの良い、固体の引数を持っていると思います。

それが重要な場合は、

、アプリケーションは、基本的に優先して処理される個々のジョブに特定のタイプの情報を1つのプロデューサ/ N消費者である。

これは、これまでのソリューションの管理性と拡張性は、強力な引数されていないことは注目に値します。誰かが私の引数にもっとパンチを与えることができれば、私はそれを愛するだろう。フォーラムはそれで私を助けることはできますか?

役に立ちましたか?

解決

あなたの同僚の引数はメリットがないわけではありません。プロジェクトへのActiveMQを追加すると、さらに別の依存関係を追加することです。おそらく使用することがより複雑になり、それがカスタムソリューションよりも大きな足跡を持っています。あなたがそれを採用しているので、また、おそらく維持し、スムーズに作業を続けるためにあなたの責任になるために起こっている - 。バグおよびすべての

これはActiveMQの(および他のキューが)自分で書くことができることを行うだろうが、痛みであることを証明するかもしれない、と述べました。全体のJMS APIをサポートすることは、それらの一つである(私はあなたがいない場合、あなたは... Javaを使用している想定していますが、この時点では有効ではありません)。高いメモリ状況でディスクに余分なメッセージをシリアル化することは別です。耐久性のある加入者とメッセージセレクタが頭に浮かぶいくつか他のものです。ニーズのためのものの大部分はベル・アンド・ホイッスルのソートそれはそう、彼らは信頼性の高いメッセージ配信のために非常に重要になっています。

あなたが決めるものは何でも、切り替えやすくするために離れて、クライアントコードからのメッセージブローカーの最終的な選択をカプセル化します。

他のヒント

管理性と拡張性が高くない場合は、

の優先順位は、私はあなたの理由が管理し、メッセージキューを使用したいのためのものであるのだろうかする必要がありますか?たぶん、あなたの同僚は右であり、あなたは本当に余分な機能セットを必要としないのですか?

は奇妙なエッジケースでデバッグの同時実行コードする必要がない大きなメリットです。私は、この構造は、あなたの全体的なプロジェクトの一環としていかに重要であるかを知りませんが、メッセージキューは、プロジェクトの大きな部分を占めている場合は、インプリメンテーションことを利用して、の途方もないのメリットを享受することができ、他の誰かすでにデバッグ、そしてあなたのために維持する、書かれています。それは重要でないサブシステムのほんの一部ワンオフパーツなら、おそらくあなたがやって終わるかは重要ではありません。それは重要だ場合でも、私はむしろ(私はすでに恐怖で反動するために始めている!)同時実行コードをデバッグする私の時間を費やすよりも、バグレポートを提出したい。

ショートバージョン:より良い、NIH症候群は、あなたの仕事を速く終わらするために誰か他の人の作品を使用してからあなたを停止させ、そして安価しないでください。しかし、どちらか、モグラ塚の外に山を構築しません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top