MQメッセージキューの進化史とMQの汎用的なアーキテクチャ

MQ メッセージ キューの開発の歴史

  1. 初期のメッセージキュー:初期のメッセージキューは主にホストメモリーをベースにしたメッセージ伝達システムで、プロセス間通信やデータ転送に利用されていました。
  2. 第一世代メッセージキュー:第一世代メッセージキューは主にメッセージ伝送ミドルウェア(Middleware)のアーキテクチャに基づき、例えばIBM MQSeriesやTIBCO Rendezvousなどが該当します。これらのシステムでは、メッセージの転送と伝達のために独立したメッセージサーバーが使用されていました。
  3. 第2世代メッセージキューイング:第2世代メッセージキューイングは、主に ActiveMQ や RabbitMQ などのオープンソースミドルウェアのアーキテクチャをベースとしています。これらのシステムは、ネットワークとプロトコルを使用してメッセージの配信と処理を行います。
  4. 最新のMQ:最新のMQ は主に Kafka や RocketMQ などの分散型アーキテクチャベースのメッセージキューシステムです。これらのシステムは、高可用性と拡張性を確保するために分散ストレージとレプリケーションを使用しています。

MQ共通アーキテクチャ

MQの一般的なアーキテクチャは通常、以下の主要コンポーネントで構成されています。

  1. プロデューサ: メッセージの作成と送信を担当します。
  2. コンシューマー(Consumer): メッセージを受信、処理する。
  3. キュー(Queue): メッセージを格納するコンテナで、プロデューサーがメッセージをキューに送信し、コンシューマーがキューからメッセージを受け取ります。
  4. メッセージブローカーは、プロデューサーからメッセージを受け取り、それらをキューに格納して、コンシューマーにプッシュします。
  5. メッセージプロトコル(Message Protocol):メッセージのフォーマットと転送プロトコルを定義するために使用される。一般的なメッセージプロトコルには、AMQP(Advanced Message Queuing Protocol)、MQTT(Message Queuing Telemetry Transport)、STOMP(Simple Text Oriented Messaging Protocol)などがある。
  6. ルーティング(Routing): メッセージをプロデューサーから対応するキューやコンシューマーにルーティングする役割を担います。
  7. 永続化(Persistence): メッセージをディスクに保存し、メッセージの損失を防止する。
  8. 確実なメッセージの配信と処理を保証します(リトライとフェイルオーバーなど)
  9. 監視と管理(Monitoring and Management):メッセージキューの監視と管理機能を提供し、メッセージの統計情報、チューニング、障害の切り分けなどを可能にします。
bannerAds