您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码:  验证码,看不清楚?请点击刷新验证码 必填



  求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Model Center   Code  
会员   
   
 
     
   
 订阅
  捐助
ActiveMQ 项目实战
 
作者:韩大帅666
   次浏览      
 2020-7-24 
 
编辑推荐:
本文主要介绍了ActiveMQ 项目实战:添加商品同步到索引库、发送消息、接收消息等相关内容。
来自于csdn,,由火龙果软件Anna编辑、推荐。

1.添加商品同步到索引库

2.发送消息

manager-server工程中发送消息:当商品添加完成后发送一个TextMessage,包含一个商品id。

@Override
public e3Result addItem (TbItemitem,Stringdesc){
//1、生成商品id
final long itemId= IDUtils.genItemId();
//2、补全TbItem对象的属性
item.setId(itemId);
//商品状态,1-正常,2-下架,3-删除
item.setStatus((byte)1);
Date date = new Date();
item.setCreated(date);
item.setUpdated(date);
//3、向商品表插入数据
itemMapper.insert(item);
//4、创建一个TbItemDesc对象
TbItemDesc itemDesc= new TbItemDesc();
//5、补全TbItemDesc的属性
itemDesc.setItemId(itemId);
itemDesc.setItemDesc(desc);
itemDesc.setCreated(date);
itemDesc.setUpdated(date);
//6、向商品描述表插入数据
itemDescMapper.insert(itemDesc);
//发送一个商品添加消息
imsTemplate.send (topicDestination, new MessageCreator(){
@Override
public Message createMessage (Session session) throws JMSException {
TextMessagetextMessage = session.createTextMessage (itemId +"");
return textMessage;
}
});
//7、e3Result.ok()
return e3Result.ok();
}
 

3.接收消息

(1) 功能分析:

① 接收消息。需要创建MessageListener接口的实现类。

② 取消息,取商品id。

③ 根据商品id查询数据库。

④ 创建一SolrInputDocument对象。

⑤ 使用SolrServer对象写入索引库。

⑥ 返回成功,返回e3Result。

(2) Dao层

① 根据商品id查询商品信息。

② 映射文件:

<select id= "getItemById" parameterType="long" resultType="cn.e3mall.common.pojo.SearchItem">
SELECT
a.id,
a.title,
a.sell_point,
a.price,
a.image,
b.NAME category_name,
c.item_desc
FROM
tb_item a
JOIN tb_item_cat b ON a.cid = b.id
JOIN tb_item_desc c ON a.id=c.item_id
WHERE a.status =1
AND a.id=#{itemId}
lt;/select>

(3) Service层

参数:商品ID

业务逻辑:

① 根据商品id查询商品信息。

② 创建一SolrInputDocument对象。

③ 使用SolrServer对象写入索引库。

④ 返回成功,返回e3Result。

返回值:e3Result

public e3Result  addDocument(long itemId)  throws Exception {
// 1、根据商品id查询商品信息。
SearchItem searchItem =  searchItemMapper.getItemById(itemId);
// 2、创建一SolrInputDocument对象。
SolrInputDocument document  = new SolrInputDocument();
// 3、使用SolrServer对象写入索引库。
document.addField ("id", searchItem.getId());
document.addField ("item_title",  searchItem.getTitle());
document.addField ("item_sell_point",  searchItem.getSell_point());
document.addField ("item_price",  searchItem.getPrice());
document.addField ("item_image",  searchItem.getImage());
document.addField ("item_category_name",  searchItem.getCategory_name());
document.addField ("item_desc",  searchItem.getItem_desc());
// 5、向索引库中添加文档。
solrServer.add(document);
solrServer.commit();
// 4、返回成功,返回e3Result。
return e3Result.ok();
}


   

(4) Listener


public class ItemChangeListener  implements MessageListener {


@Autowired
private SearchItemServiceImpl  searchItemServiceImpl;
@Override


public void onMessage (Message message) {
try {


TextMessage textMessage = null;
Long itemId = null;
//取商品id
if (message instanceof TextMessage)  {  textMessage = (TextMessage) message;  itemId = Long. parseLong(textMessage.getText());
}
//向索引库添加文档
searchItemServiceImpl.addDocument(itemId);
} catch(Exception e){
e.printStackTrace();
}
}
}

   

(5) Spring配置监听

 

   
次浏览       
相关文章

企业架构、TOGAF与ArchiMate概览
架构师之路-如何做好业务建模?
大型网站电商网站架构案例和技术架构的示例
完整的Archimate视点指南(包括示例)
相关文档

数据中台技术架构方法论与实践
适用ArchiMate、EA 和 iSpace进行企业架构建模
Zachman企业架构框架简介
企业架构让SOA落地
相关课程

云平台与微服务架构设计
中台战略、中台建设与数字商业
亿级用户高并发、高可用系统架构
高可用分布式架构设计与实践
最新活动计划
LLM大模型应用与项目构建 12-26[特惠]
QT应用开发 11-21[线上]
C++高级编程 11-27[北京]
业务建模&领域驱动设计 11-15[北京]
用户研究与用户建模 11-21[北京]
SysML和EA进行系统设计建模 11-28[北京]
 
最新文章
架构设计-谈谈架构
实现SaaS(软件及服务)架构三大技术挑战
到底什么是数据中台?
响应式架构简介
业务架构、应用架构与云基础架构
最新课程
软件架构设计方法、案例与实践
从大型电商架构演进看互联网高可用架构设计
大型互联网高可用架构设计实践
企业架构师 (TOGAF官方认证)
嵌入式软件架构设计—高级实践
更多...   
成功案例
某新能源电力企业 软件架构设计方法、案例与实践
中航工业某研究所 嵌入式软件开发指南
某轨道交通行业 嵌入式软件高级设计实践
北京 航天科工某子公司 软件测试架构师
北京某领先数字地图 架构师(设计案例)
更多...