消息中间件ActiveMQ

  1. 它可以在分布式的环境下扩展进程之间的通信
  2. 利用高效可靠的异步消息传递机制集成分布式系统
  • 消息模式
  • 队列模式    特点  客户端包括生产者和消费者   
  • 队列中一个消息只能被一个消费者使用
  • 消费者可以随时取消息 发送端不需要知道接收端是否正在监听,如果没有接收端则会暂时保存在ActiveMQ服务器中
  1. 发布订阅模式  特点
  2. 客户端包括发布者和订阅者
  3. 一个消息可以同时被多个订阅者消费
  4. 订阅者不能订阅之前的消息
  • 消息格式定义:

    StreamMessage:数据流

    MapMessage:名称-值对

    TextMessage:字符串对象

    ObjectMessage:序列化的Java对象

    BytesMessage:字节数据流

  1. Spring整合JMS
  2. src/main/resources下创建spring配置文件applicationContext-jms-producer.xml
  3. 在sping.xml配置文件中配置  jsmTemplate     
  4. 队列模式 应是ActiveMQQueue   发布订阅模式  ActiveMQTopic

运营商后台执行商品审核后向ActiveMQ发送消息  搜索服务从ActiveMQ收到消息并导入到索引库

在运营商controller层   

@Autowired
private Destination destination   点对点模式

@Autowired
private JmsTemplate jmsTemplate

  1. 将商品list集合转化成json字符串  String jsonString=JSON.toJSONString(itemList)
  2. jmsTemplate.send(destination ,new messageCreater(){  return session.createTextMessage (jsonString) })

消费者在搜索服务项目中的xml文件中应配置 监听类的引用

 

  1. 在项目的serviceImpl中  写java类实现 MessageListener
  2. 重写 onMessage接口
  3. String text =message.getText() 获取数据
  4. JSON.parseArray(text,tbItem.class)
  5. 网页静态使用ActiveMQ  发布订阅模式  生产者发送  商品id
  6. 消费者接受id  根据id查询商品信息生成静态化网页
  7.  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值