ActiveMQメッセージ管理(メカニズム)


ActiveMQの概要


ActiveMQはApache出品で、最も流行しており、能力の強いオープンソースメッセージバスです.ActiveMQはJMS 1を完全にサポートするものである.1とJ 2 EE 1.4規範のJMS Provider実現.

JMSプロフィール


JMS(Java Message Service)、すなわちjavaメッセージサービスアプリケーションインタフェース.
Javaプラットフォームのメッセージミドルウェア(MOM)向けAPI/技術仕様です.
シーン:アプリケーションと2つのアプリケーションの間、または分散システムアーキテクチャの中でメッセージを配布し、非同期/同期方式の通信を行うことができ、プラットフォームAPIとは関係なく、ほとんどのMOMはJMSに対するサポートを提供する.

JMSアーキテクチャ


JMSプロバイダは、メッセージミドルウェア向けのJMSインタフェースの実装を接続する.プロバイダは、JavaプラットフォームのJMS実装であってもよいし、Javaプラットフォーム以外のメッセージミドルウェア向けアダプタであってもよい.
JMSクライアントは、メッセージベースのJavaアプリケーションまたはオブジェクトを生産または消費します.
JMS生産者がメッセージを作成して送信するJMSクライアント.
JMSコンシューマがメッセージを受信するJMSクライアント.
JMSメッセージには、JMSクライアント間で伝達可能なデータのオブジェクトが含まれる.
JMSキューは、送信される待機中のメッセージを格納する領域である.キュー名が示す意味とは異なり,メッセージの受信順序は必ずしもメッセージの送信順序と同じではない.メッセージが読み出されると、メッセージはキューから移動されます.
JMSトピックは、複数のサブスクライバへのメッセージ送信をサポートするメカニズムである.

JMS属性


Destination(インタフェース/ターゲット)Product(生産者)Consumer(コンシューマ)Broker P 2 P,Pub/sub(モデル)P 2 P:メッセージキュー(Queue)、送信者(Sender)、受信者(Receiver)Pub/sub:トピック(Topic)、パブリッシャ(Publisher)、サブスクライバ(Subscriber)

ActiveMQとJMSの関係


JMSは規範です
ActiveMQはJMS仕様の実装である

AvtiveMQアーキテクチャ図


ActiveMQの主な特性


(1)JMS1.1、J2EE1.4
(2)J2EE servers(Tomcat,JBoss4,GlassFish,WebLogic…)
(3)多言語クライアント(Java,C,C++,C#,Ruby,PhP)
(4)マルチプロトコル(VM,TCP,SSL,UDP,multicast,JGroups...)
(5)Spring
(6)Ajax
(7)CXF,Axis(WebServiceの2つの流行のフレームワーク)
(8)REST(状態伝達)
(9)Message Groups,Virtual Destinations,Wildcards,Composite , Destinations
(10)持続化(journal,JDBC)
(11)性能(client-server,cluster,peer...)

ActiveMQ機能


-複数のプロトコル
-永続化
-セキュリティ
-クラスタ
-監視
-その他

AvtiveMQマルチプロトコル


URI: scheme:scheme-specific-part
eg:
VM vm://brokername 
TCP tcp://host:port 
SSL ssl://host:port 
HTTP http://host:port 
UDP udp://host:port 
peer   peer://group/brokername 
multicast multicast://IPAddress
static static(list uris) 
failover failvoer(list uris)
discovery discovery://host:port

ActiveMQ持続化


データベース:
含む:Derby、HSQL、MySQL、SQLServer、Sybase、DB 2、Oracle...

ActiveMQセキュリティ


資格認定
simpleAuthenticationPlugin
jaasAuthenticationPlugin

権限
authorizationPlugin

ActiveMQクラスタ


Master/Slave
Network of Brokers

ActiveMQモニタ


JMX(Java管理拡張フレームワーク)Advisory Message(通知メッセージ)

QueueとTopicの違い


ActiveMQをJMSミドルウェアの実現の利点として使用


1.複数の言語とプロトコルでクライアントを作成します.言語:Java,C,C++,C#,Python,PHP.
2.JMS 1を完全にサポートする.1およびJ 2 EE 1.4仕様(永続化、XAメッセージ、トランザクション)
3.Springのサポートに対して、ActiveMQはSpringを使うシステムに簡単に埋め込むことができ、Spring 2もサポートする.0のプロパティ
4.JMS 1を完全にサポートする.1およびJ 2 EE 1.4仕様(永続化、XAメッセージ、トランザクション)
5.一般的なJ 2 EEサーバー(例えばGeronimo,JBoss 4,GlassFish,WebLogic)のテストに合格した.ここで、JCA 1.5 resource adaptorsの構成によって、ActiveMQは自動的にいかなる互換J 2 EE 1.4商業サーバーに配置できる.
6.複数種類の転送プロトコルをサポート
7.設計上高性能を保証したクラスタ、クライアント-サーバ、ポイント・ツー・ポイント
8.Ajax対応
9.Axisとの統合をサポート
10.内蔵JMS providerを簡単に呼び出し、テストを行うことができます.

ActiveMQキーワード


ActiveMQConnectionFactory:
Connection:MS接続、Java接続プールのConnectionとの差は多くありませんProducerとConsumerはBrokerと通信するために使用します

セッション:セッション

Destination:宛先、データはどこに送るか、どこから取るか

MessageProducer:生産者

MessageConsumer:消費者

Message:メッセージ、addからキューへのもの、つまり自分が処理するもの、Messageにはサブインタフェース、TextMessageまたはByteMessageがたくさんあります

ActiveMQディレクトリの説明


bin:スクリプトファイルが格納されています
conf:基本プロファイルが格納されています
data:ログファイルが格納されています
docs:説明ドキュメントが格納されています
examples:簡単なインスタンスが格納されています
lib:activemqに必要なjarパッケージが格納されています
Webapps:プロジェクトを格納するディレクトリ