一寞酿、簡介 :
? ? ? ? ? ? ?企業(yè)消息軟件從80年代起就存在脱柱,它不只是一種應用間消息傳遞風格,也是一種集成風格。因此煌茴,消息傳遞可以滿足應用間的通知和互相操作日川。但是開源的解決方案是到最近10年才出現(xiàn)的。Apache ActiveMQ就是其中一種龄句。它使應用間能以異步,松耦合方式交流傀蓉。本章將向您介紹ActiveMQ职抡。
1、activeMQ 特性:
? ? ? ? ? ? ActiveMQ是Apache軟件基金下的一個開源軟件缚甩,它遵循JMS1.1規(guī)范(Java Message Service),是消息驅動中間件軟件(MOM)壕探。它為企業(yè)消息傳遞提供高可用郊丛,出色性能浩蓉,可擴展,穩(wěn)定和安全保障捻艳。ActiveMQ使用Apache許可協(xié)議庆猫。因此,任何人都可以使用和修改它而不必反饋任何改變月培。這對于商業(yè)上將ActiveMQ用在重要用途的人尤為關鍵。MOM的工作是在分布式的各應用之間調度事件和消息纪蜒,使之到達指定的接收者此叠。所以高可用,高性能,高可擴展性尤為關鍵窗看。
? ? ? ? ? ? ActiveMQ的目標是在盡可能多的平臺和語言上提供一個標準的倦炒,消息驅動的應用集成。ActiveMQ實現(xiàn)JMS規(guī)范并在此之上提供大量額外的特性逢唤。
下面是一個高層次的特性列表 :
? ? ? ? ? ? 遵循JMS規(guī)范 ----理解ActiveMQ的起始點是明白ActiveMQ的各種特性是JMS1.1規(guī)范的實現(xiàn)。本章后面將討論JMS規(guī)范提供的好處和保證遂唧。它們包括同步和異步消息傳遞吊奢,一次和只有一次的消息傳遞,對于預訂者的持久消息等等页滚。依附于JMS規(guī)范意味著,不論JMS消息提供者是誰隧熙,同樣的基本特性都是有效的。
? ? ? ? ? ?連接----ActiveMQ提供各種連接選擇贞盯,包括HTTP沪饺,HTTPS,IP多點傳送整葡,SSL,STOMP啼器,TCP俱萍,UDP,XMPP等枪蘑。大量的連接協(xié)議支持使之具有更好的靈活性岖免。很多現(xiàn)有的系統(tǒng)使用一種特定協(xié)議并且不能改變成翩,所以一個支持多種協(xié)議的消息平臺降低了使用的門檻赦役。雖然連接很重要,但是和其他容器集成也同樣重要术羔。第四章將講解ActiveMQ的傳輸連接器(transport connectors)和網絡連接器(network connectors)乙漓。
? ? ? ? ? ?可插拔的持久性和安全----ActiveMQ提供多種持久性方案可供選擇,也可以完全按自己需求定制驗證和授權叭披。例如,ActiveMQ通過KahaDB提供自己的超快速消息持久方案(ultra-fast message persistence)嚼贡,但也支持標準的JDBC方案同诫。ActiveMQ可以通過配置文件提供簡單的驗證和授權,也提供標準的JAAS登陸模塊误窖。
? ? ? ? ? ?用Java建立消息驅動應用----ActiveMQ最常用在Java應用中,用于發(fā)送和接收消息霹俺。這部分的內容涉及JMS規(guī)范API。
? ? ? ? ? ? 與應用服務器集成----ActiveMQ與java應用服務器集成是很常見的嚷堡。
? ? ? ? ? ? 客戶端APIs----ActiveMQ對多種語言提供客戶端API艇棕,除了Java之外還有C/C++,.NET北苟,Perl打瘪,PHP傻昙,Python,Ruby等妆档。這使得ActiveMQ能用在Java之外的其它語言中虫碉。很多其它語言都可以通過ActiveMQ提供的客戶端API使用ActiveMQ的全部特性。當然敦捧,ActiveMQ代理器(broker)仍然是運行在java虛擬機上,但是客戶端能夠使用其它的被支持的語言习瑰。
? ? ? ? 代理器集群(Broker clustering)----為了利于擴展秽荤,多個ActiveMQ broker能夠聯(lián)合工作。這個方式就是network of brokers并且能支持多種拓撲結構窃款。
? ? ? ?高級代理器特性和客戶端選項----ActiveMQ為代理器和客戶端連接提供很多高級的特性雁乡。ActiveMQ也可以通過代理器的XML配置文件支持Apache Camel第喳。
? ? ? ? 簡單的管理----ActiveMQ是為開發(fā)者設計的。它并不需要專門的管理工具曲饱,因為它提供各種易用且強大的管理特性珠月。有很多方法去監(jiān)控ActiveMQ的各個方面,可以通過JMX使用JConsole或ActiveMQ web console啤挎;可以運行ActiveMQ消息報告;可以用命令行腳本胜臊;可以通過日志伙判。
2、了解JMS
JMS 公共 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?點對點域 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 發(fā)布/訂閱域
ConnectionFactory ? ? ? ? ? ? ? QueueConnectionFactory ? ? ?TopicConnectionFactory
Connection ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? QueueConnectioin ? ? ? ? ? ? TopicConnection
Destination ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Queue ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?Topic
Session ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?QueueSession ? ? ? ? ? ? ? ? ? ?TopicSession
MessageProducer ? ? ? ? ? ? ? ? ? ? ?QueueSender ? ? ? ? ? ? ? ? ? ? TopicPublisher
MessageConsumer? ? ? ? ? ? ? ? ? ? QueueReceiver? ? ? ? ? ? ? ? ? TopicSubscriber
JMS定義了兩種方式:Queue(點對點)勒魔;Topic(發(fā)布/訂閱)
ConnectionFactory是連接工廠,負責創(chuàng)建Connection.
Connection負責創(chuàng)建Session.
Session創(chuàng)建MessageProducer(用來發(fā)消息) 和MessageConsumer(用來接收消息)
Destination 是消息的目的地