目录
1, JMS消息协议规范
2, Python集成ActiveMQ
3, 封装服务mq_service.py
4, 接收处理消息mq_listener.py
5, 启动消息监听服务mq.py
6, 单元测试test_mq_serivce.py
7, 发送消息功能调用
8, 常见问题和解决方法
ActiveMQ是一个非常流行的消息队列服务中间件,实现JMS规范,基于STOMP协议(端口为61613)支持Python访问。
STOMP:Simple(or Streaming) Text Orientated Messaging Protocol,简单(流)文本定向消息协议
JMS:Java Message Service
一, JMS消息协议规范
JMS规范定义了2类消息发送接收模型:点对点queue,发布订阅topic,区别是能够重复消费和是否保存。
1, 点对点queue:不可重复消费,消息被消费前一直保存。
生产者发送消息到queue,一个消费者取出并消费消息。
消息被消费后,queue中不再保存,所以只有一个消费者能够取到消息。
queue支持多个消费者存在,但是一个消息只有一个消费者可以消费。
当前没有消费者时,消息一直保存,直到被消费者消费。
2, 发布订阅topic:可重复消费,发布给所有订阅者。
生产者发布消息到topic中,多个订阅者收到并消费消息。
和queue不同,发布到topic中的消息会被所有订阅者消费。
当生产者发布消息时,不管是否有订阅者,都不保存消息。
JMS规范定义的2类消息传输模型queue和topic比较: