您当前的位置: 首页 >  搜索

56分布式电商项目 - ActiveMQ 实现运营商后台与搜索服务的零耦合(一)

杨林伟 发布时间:2019-07-16 14:09:35 ,浏览量:3

运用消息中间件ActiveMQ实现运营商后台与搜索服务的零耦合。运营商执行商品审后,向 ActiveMQ 发送消息(SKU 列表),搜索服务从 ActiveMQ 接收到消息并导入到 solr 索引库。

消息生产者(运营商后台)

1)pinyougou-manager-web 的 pom.xml,引入依赖:

 
	org.apache.activemq 
	activemq-client 
	5.13.4

2)pinyougou-sellergoods-service 工程添加 spring-activemq.xml内容如下: 在这里插入图片描述 在这里插入图片描述 3)代码实现:

@Autowired
private Destination queueSolrDestination;//用于发送 solr 导入的消息

@Autowired
private JmsTemplate jmsTemplate;

@RequestMapping("/updateStatus")
public Result updateStatus(Long[] ids,String status){
	try {
		goodsService.updateStatus(ids, status);
		//按照 SPU ID 查询 SKU 列表(状态为 1)
		if(status.equals("1")){
		//审核通过List 
		itemList = goodsService.findItemListByGoodsIdandStatus(ids, status);//调用搜索接口实现数据批量导入
		if(itemList.size()>0){
		final String jsonString = JSON.toJSONString(itemList);
		jmsTemplate.send(queueSolrDestination, new MessageCreator() {
		@Override
		public Message createMessage(Session session) throws JMSException {
		return session.createTextMessage(jsonString);
		}
		});
		}else{
		System.out.println("没有明细数据");
		}
		 }return new Result(true, "修改状态成功"); 
		 } catch (Exception e) {
		 e.printStackTrace();return new Result(false, "修改状态失败");
		 }
		  }
消息消费者(搜索服务)

1)修改 pinyougou-search-service ,在 pom.xml 中添加 activemq 依赖

 
	org.apache.activemq 
	activemq-client 
	5.13.4

2)添加 spring 配置文件 applicationContext-jms-consumer.xml

 
 
	


 
	  
  
   
   
  	
  
 

	  
	  		            
关注
打赏
1688896170
查看更多评论
0.0765s