5

職場では、既製のフルスタック ESB (Enterprise Service Bus -- http://en.wikipedia.org/wiki/Enterprise_service_bus ) を選択するか、RabbitMQ などの AMQP システムを中心に独自のものを展開するかについて議論しています。

懸念の 1 つは、私たちのエコシステムが PHP を Python にできる限り速く移行していることと、既に持っている API がすべて JSON でメッセージを渡すことです。ESB と「SOA ソリューション」の検索スペースは、本当に汚染されています。それかこれは Python Thing(tm) ではありません。そこで私はここで質問します。私たちが検討したすべてのフルスタック ESB ソリューションは、主に SOAP ベースのコンポーネントの統合に焦点を当てているようです。これは、やりたくないメッセージの二重ラッピングとアンラッピングが大量にあるように思えます。また、可能であれば、サービスから ESB へのアダプターを Python で作成したいと考えています。

ここで、PHP/Python エコシステムは内部的なものであることに注意してください。クライアントの多くは、アプリを統合する巨大なモノリシック エンタープライズ ウェアを使用するかなり隠れた組織です。彼らは、顧客向け API の SOAP、XML-RPC などに満足するでしょう。すでにリクエストがありました。そのため、国境では最終的に JSON ベースと SOAP ベースの両方のサービスを提供することになるかもしれません。内部だけではありません。

tl;dr: Python アプリで使用するのに適したフルスタック ESB を持っている人はいますか? あなたが一緒に仕事をしたことのある好まれていない人はどうですか?PHP/Python エコシステムにとって、RabbitMQ のようなものをラップすることはより良い考えだと思いますか?

4

2 に答える 2

3

それは本当に大きな問題です。ですから、誤解していたらすみません。

ESB は、定義上、アプリケーションを実装する際に選択した言語と実際には結びついていません。したがって、SOA 方式で接続するアプリが PHP または Python で記述されているかどうかに関係なく、それらを SOA で公開できる必要があります。一方、JSON は、SOA の世界では少しオフな選択であり、この選択は非常に重要です。

COTS ESB の多くは、ある程度の REST サポートを提供します。Mule、ServiceMix、WSO2、JBoss は、いくつかのオープン ソースのものです。商用ベンダーを利用したい場合は、Tibco と Oracle がすぐに使用できるサポートを提供しているか、少しコーディングするだけで実装できると思います。

RabbitMQ や AMQP などのメッセージ ブローカーのいずれを使用するかの選択は、実際にはトランスポートに関するものです。これもまた、直接的には関係ありません。繰り返しになりますが、あなたの目標がアプリケーション間にメッセージを追加することである場合、それは私が実際に答えることができない有効な質問です.

ESB に興味を持った主な動機を書いていただけると、より良い回答が得られます。

HTH

于 2012-05-17T15:48:29.357 に答える
2

うわー...それはかなりの質問であり、私が完全に答える方法はありません...しかし、あなたが尋ねたので、ここにことわざの2セントがあります:

RabbitMQ はかなり良いです。科学計算グリッドにキャッシュを実装するマルチエージェント システムでリアルタイム メッセージングに使用しています。RabbitMQ の優れた機能の 1 つは、任意の (バイナリを含む) メッセージをプッシュできることです。これは、パフォーマンスにとって優れた機能かもしれません。(おそらく Hessian プロトコルのシリアライゼーション/デシリアライゼーションを使用していますか?)

RabbitMQ に関する私の唯一の懸念は、AMQP の Python ライブラリの継続的なサポートです。現在のライブラリは機能しており、私はそれらを使用しました...しかし、それらは長く使用されておらず、そのような作業に関心を持ち、サポートしているコミュニティがどれほど大きいかはわかりません. とは言うものの、RabbitMQ (AMQP、および一般的なメッセージング) は最近、よりホットなトピックになっているようであり、うまくいけば、Python で動作しているベース - AMQP インターフェイス ライブラリが広がることになるでしょう。

于 2012-05-10T20:18:34.933 に答える