activeMQ了解一下(二)

常用消息中間件有activeMQ,RabbitMQ,Kafka穴翩,ZeroMQ氨菇,MetaMQ,RocketMQ响牛,本文這里只介紹第一個(gè)玷禽。

一、linux上安裝
下載tar.gz包   解壓tar -zxvf 
在MQ目錄下bin/linux-x86-64下  ./activemq start   ./activemq stop
http://IP:8161/admin
默認(rèn)用戶名密碼 admin/admin 
三呀打、發(fā)布和消費(fèi)消息(這里以P2P為例)
1矢赁,寫一個(gè)發(fā)消息服務(wù)如下:
@Service("notifyService")
public class NotifyServiceImpl implements INotifyService{
    private static final Logger logger = LoggerFactory.getLogger(NotifyServiceImpl.class);
    
    @Resource(name="jmsTemplate")
    private JmsTemplate jmsTemplate;
    
    @Resource(name = "awardMsgDestinationQueue")
    private Destination awardMsgDestinationQueue;
 
    @Override
    public void sendAwardMsg(final String msg) {
        try {
            Destination destination = this.awardMsgDestinationQueue;
            jmsTemplate.send(destination,new MessageCreator() {
                @Override
                public Message createMessage(Session session) throws JMSException {
                    TextMessage textMessage = session.createTextMessage();
                    textMessage.setText(msg);
                    return textMessage;
                }
            });

        } catch (Exception ex) {
            ex.printStackTrace();
            logger.error("向默認(rèn)隊(duì)列發(fā)送消息失敗");
        }
    }
}
2,寫一個(gè)消費(fèi)監(jiān)聽器
public class AwardMsgQueueListener implements MessageListener{  
    @Override
    public void onMessage(Message message) {
        TextMessage tm = (TextMessage) message;
        try {
            msg = tm.getText();
        } catch (JMSException e1) {
            logger.error("從消息隊(duì)列獲取消息出現(xiàn)異常贬丛,請檢查");
            e1.printStackTrace();
            return;
        }
        ......//根據(jù)實(shí)際業(yè)務(wù)拿到msg并處理
    }
}

由上可以看出撩银,我們發(fā)布消息注入了jms模板和queue,這就需要我們先進(jìn)行配置

二豺憔、整合spring

基礎(chǔ)配置文件如下:

<bean id="jmsFactory" class="org.apache.activemq.pool.PooledConnectionFactory" destroy-method="stop">
        <property name="connectionFactory">
            <bean class="org.apache.activemq.ActiveMQConnectionFactory">
                <property name="brokerURL"><value>tcp://192.168.28.2:61616?</value></property>
            </bean>
        </property>
        <property name="maxConnections" value="100"></property>
    </bean>

    <!--使用緩存可以提升效率-->
    <bean id="connectionFactory" class="org.springframework.jms.connection.CachingConnectionFactory">
        <property name="targetConnectionFactory" ref="jmsFactory"/>
        <property name="sessionCacheSize" value="100"/>
    </bean>
    
    <!-- 配置JMS模板(Queue)额获,Spring提供的JMS工具類够庙,它發(fā)送、接收消息抄邀。 -->
    <bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
        <property name="connectionFactory" ref="connectionFactory"/>
        <property name="messageConverter">
            <bean class="org.springframework.jms.support.converter.SimpleMessageConverter"/>
        </property>
    </bean>
    
    <!-- 定義推送中獎(jiǎng)消息隊(duì)列(Queue) -->
    <bean id="awardMsgDestinationQueue" class="org.apache.activemq.command.ActiveMQQueue">
        <constructor-arg name="name" value="awardMsgDestinationQueue"/>
    </bean>
    
    <!-- 配置監(jiān)聽者(Queue) -->
    <bean id="awardMsgQueueListener" class="com.latech.notify.consumer.AwardMsgQueueListener" />

    <!-- 配置多個(gè)消息監(jiān)聽容器耘眨,配置連接工廠,監(jiān)聽的目標(biāo)是defaultDestinationQueue境肾,監(jiān)聽器是上面定義的監(jiān)聽器 -->
    <bean id="queueListenerContainer1" class="org.springframework.jms.listener.DefaultMessageListenerContainer">
        <property name="connectionFactory" ref="connectionFactory" />
        <property name="destination" ref="awardMsgDestinationQueue" />
        <property name="messageListener" ref="awardMsgQueueListener" />

    </bean>
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末剔难,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子奥喻,更是在濱河造成了極大的恐慌偶宫,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,324評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件环鲤,死亡現(xiàn)場離奇詭異纯趋,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)楔绞,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,356評論 3 392
  • 文/潘曉璐 我一進(jìn)店門结闸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人酒朵,你說我怎么就攤上這事桦锄。” “怎么了蔫耽?”我有些...
    開封第一講書人閱讀 162,328評論 0 353
  • 文/不壞的土叔 我叫張陵结耀,是天一觀的道長。 經(jīng)常有香客問我匙铡,道長图甜,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,147評論 1 292
  • 正文 為了忘掉前任鳖眼,我火速辦了婚禮黑毅,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘钦讳。我一直安慰自己矿瘦,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,160評論 6 388
  • 文/花漫 我一把揭開白布愿卒。 她就那樣靜靜地躺著缚去,像睡著了一般。 火紅的嫁衣襯著肌膚如雪琼开。 梳的紋絲不亂的頭發(fā)上易结,一...
    開封第一講書人閱讀 51,115評論 1 296
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼搞动。 笑死躏精,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的滋尉。 我是一名探鬼主播玉控,決...
    沈念sama閱讀 40,025評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼狮惜!你這毒婦竟也來了高诺?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,867評論 0 274
  • 序言:老撾萬榮一對情侶失蹤碾篡,失蹤者是張志新(化名)和其女友劉穎虱而,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體开泽,經(jīng)...
    沈念sama閱讀 45,307評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡牡拇,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,528評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了穆律。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片惠呼。...
    茶點(diǎn)故事閱讀 39,688評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖峦耘,靈堂內(nèi)的尸體忽然破棺而出剔蹋,到底是詐尸還是另有隱情,我是刑警寧澤辅髓,帶...
    沈念sama閱讀 35,409評論 5 343
  • 正文 年R本政府宣布泣崩,位于F島的核電站,受9級特大地震影響洛口,放射性物質(zhì)發(fā)生泄漏矫付。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,001評論 3 325
  • 文/蒙蒙 一第焰、第九天 我趴在偏房一處隱蔽的房頂上張望买优。 院中可真熱鬧,春花似錦挺举、人聲如沸而叼。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,657評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至液荸,卻和暖如春瞻佛,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,811評論 1 268
  • 我被黑心中介騙來泰國打工伤柄, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留绊困,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,685評論 2 368
  • 正文 我出身青樓适刀,卻偏偏與公主長得像秤朗,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子笔喉,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,573評論 2 353

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理取视,服務(wù)發(fā)現(xiàn),斷路器常挚,智...
    卡卡羅2017閱讀 134,651評論 18 139
  • 消息隊(duì)列及常見消息隊(duì)列介紹 導(dǎo)語 : 消息隊(duì)列是分布式系統(tǒng)中重要的組件作谭,在很多生產(chǎn)環(huán)境如商品搶購等需要控制并發(fā)量的...
    寒劍飄零閱讀 4,057評論 2 52
  • 一、 消息隊(duì)列概述 消息隊(duì)列中間件是分布式系統(tǒng)中重要的組件奄毡,主要解決應(yīng)用耦合折欠、異步消息、流量削鋒等問題吼过。實(shí)現(xiàn)高性能...
    步積閱讀 56,927評論 10 138
  • 前言 在微服務(wù)架構(gòu)的系統(tǒng)中锐秦,我們通常會使用輕量級的消息代理來構(gòu)建一個(gè)共用的消息主題讓系統(tǒng)中所有微服務(wù)實(shí)例都連接上來...
    Chandler_玨瑜閱讀 6,574評論 2 39
  • 以下是消息隊(duì)列以下的大綱,本文主要介紹消息隊(duì)列概述盗忱,消息隊(duì)列應(yīng)用場景和消息中間件示例(電商酱床,日志系統(tǒng))。 本次分享...
    文檔隨手記閱讀 1,886評論 0 28