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:プロジェクトを格納するディレクトリ