日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ActiveMQ添加商品发送消息

發(fā)布時(shí)間:2025/3/20 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ActiveMQ添加商品发送消息 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

添加商品

需要同步索引庫(kù),同步緩存,生成靜態(tài)頁面等等
很多地方,都需要監(jiān)聽添加商品的事件,所以,這里使用Topic模式

方案選擇

方案一:直接寫業(yè)務(wù)邏輯
在商品服務(wù)模塊,添加商品的業(yè)務(wù)邏輯中,添加同步索引庫(kù)的業(yè)務(wù)邏輯
缺點(diǎn):業(yè)務(wù)邏輯耦合度高,業(yè)務(wù)拆分不明確

方案二:模塊之間服務(wù)調(diào)用
在商品服務(wù)模塊,添加商品業(yè)務(wù)邏輯服務(wù)中,調(diào)用索引服務(wù)模塊,添加索引的服務(wù),業(yè)務(wù)邏輯分開,通過服務(wù)調(diào)用
缺點(diǎn):服務(wù)之間耦合度高,服務(wù)的啟動(dòng)有先后順序

方案三:使用消息隊(duì)列
在商品服務(wù)模塊,添加商品業(yè)務(wù)邏輯中,通過消息中間件發(fā)布消息,然后索引模塊中,通過監(jiān)聽接收消息,并添加索引
消息中間件可以使用ActiveMQ、RabbitMQ、kafka

JMSTemplate

配置信息

<!-- 配置JMSTemplate --> <bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate"><property name="connectionFactory" ref="connectionFactory"/> </bean> <!-- 配置消息的Destination對(duì)象 --> <bean id="test-queue" class="org.apache.activemq.command.ActiveMQQueue"><constructor-arg name="name" value="test-queue"></constructor-arg> </bean> <bean id="itemAddtopic" class="org.apache.activemq.command.ActiveMQTopic"><constructor-arg name="name" value="item-add-topic"></constructor-arg> </bean>

添加商品

向Activemq發(fā)送,商品添加消息

@Service public class ItemServiceImpl implements ItemService {@Autowiredprivate TbItemMapper itemMapper;@Autowiredprivate TbItemDescMapper itemDescMapper;@Autowiredprivate JmsTemplate jmsTemplate;@Resource(name="itemAddtopic")private Destination destination;@Overridepublic TaotaoResult addItem(TbItem item, String desc) {//生成商品idfinal long itemId = IDUtils.genItemId();//補(bǔ)全item的屬性item.setId(itemId);//商品狀態(tài),1-正常,2-下架,3-刪除item.setStatus((byte) 1);item.setCreated(new Date());item.setUpdated(new Date());//向商品表插入數(shù)據(jù)itemMapper.insert(item);//創(chuàng)建一個(gè)商品描述表對(duì)應(yīng)的pojoTbItemDesc itemDesc = new TbItemDesc();//補(bǔ)全pojo的屬性itemDesc.setItemId(itemId);itemDesc.setItemDesc(desc);itemDesc.setUpdated(new Date());itemDesc.setCreated(new Date());//向商品描述表插入數(shù)據(jù)itemDescMapper.insert(itemDesc);//向Activemq發(fā)送商品添加消息jmsTemplate.send(destination, new MessageCreator() {@Overridepublic Message createMessage(Session session) throws JMSException {//發(fā)送商品idTextMessage textMessage = session.createTextMessage(itemId + "");return textMessage;}});//返回結(jié)果return TaotaoResult.ok();}}

總結(jié)

以上是生活随笔為你收集整理的ActiveMQ添加商品发送消息的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。