国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網(wǎng)站 > 幫助中心 > 正文

ActiveMQ消息隊(duì)列技術(shù)融合Spring過程解析

2024-07-09 22:42:02
字體:
供稿:網(wǎng)友

這篇文章主要介紹了ActiveMQ消息隊(duì)列技術(shù)融合Spring過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

一、業(yè)務(wù)邏輯

我想在修改一個(gè)物品的狀態(tài)時(shí),同時(shí)發(fā)送廣播,給對(duì)應(yīng)的監(jiān)聽器去實(shí)現(xiàn),此商品存儲(chǔ)到solr中,同時(shí)通過網(wǎng)頁靜態(tài)模板生成一個(gè)當(dāng)前物品的詳情頁面,此時(shí)用到了廣播機(jī)制

當(dāng)我刪除一個(gè)商品時(shí),發(fā)送一個(gè)廣播,給對(duì)應(yīng)的監(jiān)聽器,同時(shí)刪除solr中對(duì)應(yīng)的物品。

廣播機(jī)制:必須要同時(shí)在線,才能接收我的消息

使用消息中間件需要導(dǎo)入配置文件

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:amq="http://activemq.apache.org/schema/core"  xmlns:jms="http://www.springframework.org/schema/jms"  xsi:schemaLocation="http://www.springframework.org/schema/beans      http://www.springframework.org/schema/beans/spring-beans.xsd    http://www.springframework.org/schema/context      http://www.springframework.org/schema/context/spring-context.xsd">  <!-- 真正可以產(chǎn)生Connection的ConnectionFactory,由對(duì)應(yīng)的 JMS服務(wù)廠商提供-->   <bean  class="org.apache.activemq.ActiveMQConnectionFactory">     <property name="brokerURL" value="tcp://192.168.200.128:61616"/>   </bean>  <!-- Spring用于管理真正的ConnectionFactory的ConnectionFactory -->   <bean  class="org.springframework.jms.connection.SingleConnectionFactory">   <!-- 目標(biāo)ConnectionFactory對(duì)應(yīng)真實(shí)的可以產(chǎn)生JMS Connection的ConnectionFactory -->     <property name="targetConnectionFactory" ref="targetConnectionFactory"/>   </bean>  <!-- Spring提供的JMS工具類,它可以進(jìn)行消息發(fā)送、接收等 -->   <bean  class="org.springframework.jms.core.JmsTemplate">     <!-- 這個(gè)connectionFactory對(duì)應(yīng)的是我們定義的Spring提供的那個(gè)ConnectionFactory對(duì)象 -->     <property name="connectionFactory" ref="connectionFactory"/>   </bean>      <!-- 發(fā)布訂閱模式, 商品導(dǎo)入索引庫和生成靜態(tài)頁面 -->  <bean  class="org.apache.activemq.command.ActiveMQTopic">     <!--將商品上架所有的商品的id發(fā)送到這個(gè)隊(duì)列中-->     <constructor-arg value="youlexuan_topic_page_solr"/>  </bean>  <!-- 點(diǎn)對(duì)點(diǎn)模式-->  <bean  class="org.apache.activemq.command.ActiveMQQueue">    <!--將商品上架所有的商品的id發(fā)送到這個(gè)隊(duì)列中-->    <constructor-arg value="youlexuan_queue_solr_delete"/>  </bean>   </beans>

發(fā)布廣播:

if ("1".equals(status)){  jmsTemplate.send(topicPageAndSolrDestination, new MessageCreator() {    @Override    public Message createMessage(Session session) throws JMSException {      TextMessage textMessage = session.createTextMessage(String.valueOf(id));      return textMessage;    }  });}

監(jiān)聽器1,將當(dāng)前商品存入solr中:操作solr的服務(wù)器配置文件

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:amq="http://activemq.apache.org/schema/core"  xmlns:jms="http://www.springframework.org/schema/jms"  xsi:schemaLocation="http://www.springframework.org/schema/beans      http://www.springframework.org/schema/beans/spring-beans.xsd    http://www.springframework.org/schema/context      http://www.springframework.org/schema/context/spring-context.xsd">   <!--產(chǎn)生Connection-->  <bean  class="org.apache.activemq.ActiveMQConnectionFactory">     <property name="brokerURL" value="tcp://192.168.200.128:61616"/>   </bean>  <!--spring 管理connectionFactory-->  <bean  class="org.springframework.jms.connection.SingleConnectionFactory">      <property name="targetConnectionFactory" ref="targetConnectionFactory"/>   </bean>  <!--發(fā)布訂閱模式  將數(shù)據(jù)導(dǎo)入solr 索引庫-->  <bean  class="org.apache.activemq.command.ActiveMQTopic">     <constructor-arg value="youlexuan_topic_page_solr"/>  </bean>  <!--發(fā)布訂閱模式  消息監(jiān)聽容器 將數(shù)據(jù)導(dǎo)入solr 索引庫-->  <bean class="org.springframework.jms.listener.DefaultMessageListenerContainer">    <property name="connectionFactory" ref="connectionFactory" />    <property name="destination" ref="topicPageAndSolrDestination" />    <property name="messageListener" ref="pageAndSolrListener" />  </bean>#對(duì)應(yīng)的用來監(jiān)聽執(zhí)行往solr中保存庫存的消息  <bean  class="com.ghh.sellergoods.service.listener.ItemSearchListener"></bean>  <!--點(diǎn)對(duì)點(diǎn)的模式 刪除索引庫-->  <bean  class="org.apache.activemq.command.ActiveMQQueue">    <!--指定從這個(gè)隊(duì)列中 接收下架商品的-->    <constructor-arg value="youlexuan_queue_solr_delete"/>  </bean>  <!--點(diǎn)對(duì)點(diǎn)的模式 消息監(jiān)聽器 刪除索引庫-->  <bean class="org.springframework.jms.listener.DefaultMessageListenerContainer">    <property name="connectionFactory" ref="connectionFactory" />    <property name="destination" ref="queueSolrDeleteDestination" />    <property name="messageListener" ref="itemDeleteListener" />  </bean>  <bean  class="com.ghh.sellergoods.service.listener.ItemDeleteListener"></bean></beans>
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 柳江县| 临洮县| 拉萨市| 哈尔滨市| 富宁县| 元氏县| 新郑市| 边坝县| 文安县| 台安县| 易门县| 雷山县| 庆安县| 鄯善县| 孟津县| 东乌珠穆沁旗| 彩票| 苏州市| 深泽县| 依兰县| 温泉县| 祁门县| 金阳县| 历史| 襄垣县| 叶城县| 田阳县| 怀集县| 仙游县| 浮梁县| 剑阁县| 临江市| 小金县| 东源县| 黑水县| 桂阳县| 和林格尔县| 建平县| 五台县| 江西省| 米脂县|