139

Message Brokers と ESB に関するさまざまな質問/記事を調べました (stackoverflow でも)。Message Broker と ESB の明確な違いは何ですか? ここで、製品、Websphere Broker と Mule ESB を比較しようとしています!!

まず、(任意のバージョンの) Webshere Broker は ESB ですか? 私たちの IBM 製品担当者は、それが ESB であると主張しています (私はそれについて驚くことはありません)。

私の限られた情報によると、Message Broker は HUB-SPOKE モデルで動作します。ただし、ESB はバス アーキテクチャで動作します。一体、それは何を意味するのだろうか?HUB が失敗した場合 (利用できないと思われます)、ブローカーは完全に失敗します。これはESBの場合ではありません(だから彼らは言います)。ここで理解できないのは、「バスに障害が発生した場合」です。

ESB とブローカーに関する通常の機能は、ルーティング、変換、オーケストレーションなどを提供することです。したがって、両方がこれを提供する場合、なぜ一方を他方よりも選択するのでしょうか。

対立の別の領域は、変換に関するものです。ESB は、メッセージ ブローカとは異なる方法でそれを促進しますか? これについての洞察が本当に欲しいです。

ここで、HORIZONTAL スケーリングについて説明します。誰が誰よりも優れていますか?または、複雑さ(またはその他の要因)の点で、両方とも同じようにスケーラブルです。もちろん、コスト面では、Webspere Broker はボックスごとに (もちろん CPU ごとに) 料金を請求します。私は、商用の MULE ESB でさえそれをしないと信じています。コストの部分は別として、ESB スケーリングとメッセージ ブローカ スケーリングの意味は何ですか。ESB でサービス レベルまでスケールアップできることをたまたま知っています。これはメッセージ ブローカで可能ですか?

4

7 に答える 7

30

サービス バスなしで変換ブローカーを使用することも、その逆も可能です。特定の製品に関しては、それぞれが他の製品を補完する方法があるため、純粋にどちらか一方というわけではないと思います。一部の製品はある分野でより強力であり、他の製品は別の分野でより強力です。おそらく、どの機能が個々の問題を最もよくカバーするかに基づいて選択する必要があります.

ブローカーには、変換チェーンを構築するための組み込みの「レゴ ブロック」が ESB 製品よりも優れている場合があります。ESBとしてサービスを開始したブローカーは、負荷がかかって押しつぶされてうまくスケーリングされないか、ジャーナルを処理するための堅牢なジャーナリングとツールが不足している可能性があります.

一部の ESB では、ロジックの重大なエラーが発見されて修正されると、データベースの更新をロールバックし、キューを修正されたアプリケーションに再生することができます。ほとんどのブローカーがそのレベルのトランザクション サポートを統合しているとは思いません。これがすべての「トランザクション」で機能するためには、RPC っぽい「データベースの更新」ではなく、ほぼビジネス イベント (販売、更新、所有権の変更など) である必要があります。

于 2009-06-25T02:53:01.337 に答える
24

免責事項:私はIBMコンサルタントであり、WebSphereESBを専門としています。このコメントは公式の立場に残されていません。

ESBは、製品というよりもアーキテクチャパターンまたは概念であり、大まかに言って、緩い結合を設計するサービスベースの方法です。その定義は争われており、正確に決定されているわけではありません。一般に、ESBは、関連のない(技術的な意味での)サービスのセットです。これらのサービスはインターフェイスを公開し、他のサービスからそれらを消費します。一般に、ハブアンドスポークアーキテクチャは含まれていませんが、含まれている場合があります。

IBMは確かに、WebSphere MessageBrokerとWebSphereESBの両方を、(DataPowerハードウェアアプライアンスとともに)ESBの構築を容易にする製品として販売しています。それらは異なる技術的ルーツを持っていますが、目的がいくつか重複しています。また、「ESB製品」としてブランド化されていない他の多くのものを使用してESBを構築できないわけではありません。

それはあなたのすべての質問に答えるわけではありませんが、うまくいけばIBMの部分に対処します。

于 2009-04-22T19:16:20.060 に答える
22

メッセージ ブローカと ESB (エンタープライズ サービス バス) の違いは、主に「バス」という言葉です。

私にとって、メッセージ ブローカは、ある構造から別の構造にデータを変換したり、コンテンツを変更したりする (通常は大きな) プロセスの 1 つです。

ESB は、メッセージ指向ミドルウェア (MOM) と追加のサービスであり、そのうちの 1 つはメッセージブローカです。したがって、ESB にはメッセージ ブローカをそのコンポーネントの 1 つとして含めることができます。バスは複数のプロセスで構成されています。それ以外の場合は「バス」とは呼びません。バスの性質は、さまざまなタスクを実行する複数のコンポーネントがあり、それぞれが MOM を介して通信し、何らかの形式の「共通データ形式」に準拠しているということです。バスは、MOM にデータを送信するアプリケーション、データベース アダプタ、メッセージ ブローカ、MOM ブリッジなどで構成されます。

分離は少し段階的ですが、メッセージ ブローカ アーキテクチャとバスの最大の違いは粒度です。アプリケーション A、B、..、Z、およびいくつかのデータベースを統合することがタスクである場合、すべての人を接続する 1 つの大きなメッセージ ブローカでこれを実行できます。または、複数の小さなコンポーネントが小さなタスクを引き継ぐ ESB を使用します。たとえば、1 つのアダプターが A に接続し、別のアダプターが B に接続し (ただし変換は行いません)、それぞれが 1 つ (または複数) のメッセージ ブローカーにデータを送信します。 「A」または「B」のデータモデルについて知る必要があります。優れた ESB は、個々のアプリケーションの「違い」を抽象化して、バス上に共通のデータ定義を持つ必要があります。

変換: ESB は、メッセージ ブローカーが付属していない限り、変換には役立ちません。しかし、優れた ESB にはいずれにせよ、Message Broker が含まれている必要があります。Message Broker は、バスの変換に関する専門家であるべきですが、それ以外には何もありません。

水平スケーリング: 接続するものが 3 つしかない場合 (現在および将来)、本格的な ESB を取得するために努力する価値はおそらくありません。メッセージ ブローカには、1 つの大きなプロセスであるという利点があります。そこですべてを構成し、すべてのデータ マッピング、フィルタリング、およびルーティングを一元的に行うことができます。

しかし、接続するアプリケーションが 30 個ある場合、1 つの Message Broker が停止する可能性があります。もちろん、より多くのインスタンスを購入したり、冗長に実行したりできますが、戦略を変更してジョブを「ローカライズ」する必要があります。各アプリケーションのアダプター (それぞれ 1 つの小さな Message Broker インスタンスである可能性があります) は、抽象化された共通データ モデル (共有 XSD を持つ XML など) を生成および/または受信できる必要があります。変換タスク用の中央メッセージ ブローカも存在する可能性がありますが、そのインスタンスはデータ モデル A または B を認識しない必要があります。したがって、ESB は、すべてを中央の場所に保持するのではなく、処理をエキスパート コンポーネントに移動する必要があります。

于 2015-01-16T10:28:22.980 に答える
15

数日前に Udi Dahan によるこの記事を読んだところですが、根本的な違いの 1 つであると私が感じていることをより明確に理解できるかもしれません。

http://www.udidahan.com/2011/03/24/bus-and-broker-pubsub-differences

引用:

特定のイベント タイプに対して 1 つのパブリッシャーしか存在できないという規則は、バスとブローカーを区別するものの 1 つですが、どちらも明らかに複数のサブスクライバーを持つことができます。

...

残念ながら、Enterprise Service Bus の名の下に市場に出回っているブローカー スタイルのテクノロジは数多くあります。一部の製品は集中型と分散型の両方で展開できますが (「フェデレーション」または「組み込み」モードと呼ばれることもあります)、多くの製品は「イベント タイプごとに 1 つの発行エンドポイント」ルールを適用しません。

この制約がないと、間違いを犯しやすくなります。

それが役に立てば幸い。

于 2011-04-04T14:34:18.313 に答える