ActiveMQ:使用Python访问ActiveMQ的方法


Posted in Python onJanuary 30, 2019

Windows 10家庭中文版,Python 3.6.4,stomp.py 4.1.21

ActiveMQ支持Python访问,提供了基于STOMP协议(端口为61613)的库。

ActiveMQ的官文Cross Language Clients中给出了更详细的介绍,并附有示例代码,如下图:

第一行为常规Python访问,第二行为使用Jython访问的方式,四个操作。

ActiveMQ:使用Python访问ActiveMQ的方法

Python访问ActiveMQ需要使用stomp.py,见其官网。

下载官网的代码,解压,命令行进入其目录,使用pyhthon setup.py install即可安装好,然后就可以使用stomp.py了。

官方示例代码:给队列test发送一个消息,也可以把第7行的destination的“/queue/”去掉,只剩test。

import stomp

conn = stomp.Connection()
conn.set_listener('', MyListener())
conn.start()
conn.connect('admin', 'password', wait=True)
conn.send(body=' '.join(sys.argv[1:]), destination='/queue/test')
conn.disconnect()

测试结果:test队列接收到消息数量增加了

ActiveMQ:使用Python访问ActiveMQ的方法

stomp.Connection()默认是connect.StompConnection11(协议1.1),还可以可以选择1.0、1.2。

ActiveMQ:使用Python访问ActiveMQ的方法

在官方代码中,stomp.Connection()的参数为空,实际上可以有很多参数,比如,设置Broker的IP地址和端口,如下:其中的host_and_ports就是设置IP和端口的。

ActiveMQ:使用Python访问ActiveMQ的方法

IP和端口设置示例:

c = stomp.Connection([('127.0.0.1', 62613)])

这里我犯错了,端口我协程了8161(ActiveMQ的Web访问的端口),经查询(百度搜索到stackoverflow.com)才知,STOMP协议用的是61613(ActiveMQ的配置文件中):

ActiveMQ:使用Python访问ActiveMQ的方法

ActiveMQ官网的四个测试:

发送消息到队列Queue属于 点对点模式,不可以重复消费;

发送消息到主题Topic属于 发布/订阅模式,可以重复消费;

# Send a Message to an Apache ActiveMQ Queue 
import stomp
 
conn = stomp.Connection10()
 
conn.start()
 
conn.connect()
 
conn.send('SampleQueue', 'Simples Assim')
 
conn.disconnect()

# Receive a Message from an Apache ActiveMQ Queue
import stomp
import time
 
class SampleListener(object):
 def on_message(self, headers, msg):
 print(msg)
 
conn = stomp.Connection10()
 
conn.set_listener('SampleListener', SampleListener())
 
conn.start()
 
conn.connect()
 
conn.subscribe('SampleQueue')
 
time.sleep(1) # secs
 
conn.disconnect()

# Send a Message to an Apache ActiveMQ Topic 
import stomp
 
conn = stomp.Connection10()
 
conn.start()
 
conn.connect()
 
conn.send('/topic/SampleTopic', 'Simples Assim')
 
conn.disconnect()

# Receive a Message from an Apache ActiveMQ Topic (1)
import stomp
import time
 
class SampleListener(object):
 def on_message(self, headers, msg):
 print(msg)
 
conn = stomp.Connection10()
 
conn.set_listener('SampleListener', SampleListener())
 
conn.start()
 
conn.connect()
 
conn.subscribe('/topic/SampleTopic')
 
time.sleep(1) # secs
 
conn.disconnect()

# Receive a Message from an Apache ActiveMQ Topic (2)
import stomp
import time
 
class SampleListener(object):
 def on_message(self, headers, msg):
 print(msg)
 
conn = stomp.Connection10()
 
conn.set_listener('SampleListener', SampleListener())
 
conn.start()
 
conn.connect(headers={'client-id':'SampleClient'})
 
conn.subscribe(destination='/topic/SampleTopic', headers={'activemq.subscriptionName':'SampleSubscription'})
 
time.sleep(1) # secs
 
conn.disconnect()

以上这篇ActiveMQ:使用Python访问ActiveMQ的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python操作摄像头截图实现远程监控的例子
Mar 25 Python
python使用百度翻译进行中翻英示例
Apr 14 Python
python求pi的方法
Oct 08 Python
python自然语言编码转换模块codecs介绍
Apr 08 Python
基于wxpython开发的简单gui计算器实例
May 30 Python
python正则表达式的使用
Jun 12 Python
Python多版本开发环境管理工具介绍
Jul 03 Python
python使用百度文字识别功能方法详解
Jul 23 Python
python实现回旋矩阵方式(旋转矩阵)
Dec 04 Python
python-docx文件定位读取过程(尝试替换)
Feb 13 Python
Python使用QQ邮箱发送邮件实例与QQ邮箱设置详解
Feb 18 Python
Python startswith()和endswith() 方法原理解析
Apr 28 Python
python 发送和接收ActiveMQ消息的实例
Jan 30 #Python
Python批量生成特定尺寸图片及图画任意文字的实例
Jan 30 #Python
理想高通滤波实现Python opencv示例
Jan 30 #Python
对DataFrame数据中的重复行,利用groupby累加合并的方法详解
Jan 30 #Python
WIn10+Anaconda环境下安装PyTorch(避坑指南)
Jan 30 #Python
对dataframe数据之间求补集的实例详解
Jan 30 #Python
如何在Django中添加没有微秒的 DateTimeField 属性详解
Jan 30 #Python
You might like
PHP使用数组实现队列
2012/02/05 PHP
phpmail类发送邮件函数代码
2012/02/20 PHP
php生成局部唯一识别码LUID的代码
2012/10/06 PHP
thinkphp的静态缓存用法分析
2014/11/29 PHP
PHP中的类型约束介绍
2015/05/11 PHP
php 指定范围内多个随机数代码实例
2016/07/18 PHP
PHP SESSION机制的理解与实例
2019/03/22 PHP
PHP pthreads v3下worker和pool的使用方法示例
2020/02/21 PHP
JavaScript 使用技巧精萃(.net html
2009/04/25 Javascript
javascript 动态table添加colspan\rowspan 参数的方法
2009/07/25 Javascript
jquery 简短几句代码实现给元素动态添加及获取提示信息
2011/09/01 Javascript
JavaScript的漂亮的代码片段
2013/06/05 Javascript
js实现汉字排序的方法
2015/07/23 Javascript
WordPress 单页面上一页下一页的实现方法【附代码】
2016/03/10 Javascript
JS简单获取及显示当前时间的方法
2016/08/03 Javascript
javascript 实现动态侧边栏实例详解
2016/11/11 Javascript
Vuejs开发环境搭建及热更新【推荐】
2018/09/07 Javascript
ionic+html5+API实现双击返回键退出应用
2019/09/17 Javascript
解决ant design vue 表格a-table二次封装,slots渲染的问题
2020/10/28 Javascript
探究Python中isalnum()方法的使用
2015/05/18 Python
详解Python的Django框架中的模版继承
2015/07/16 Python
python获取当前运行函数名称的方法实例代码
2017/04/06 Python
解决Scrapy安装错误:Microsoft Visual C++ 14.0 is required...
2017/10/01 Python
浅析Python装饰器以及装饰器模式
2018/05/28 Python
Python爬虫包BeautifulSoup学习实例(五)
2018/06/17 Python
一文解决django 2.2与mysql兼容性问题
2020/07/15 Python
基于python实现坦克大战游戏
2020/10/27 Python
地理科学专业毕业生求职信
2013/10/15 职场文书
阳光体育活动方案
2014/02/16 职场文书
县委班子四风对照检查材料思想汇报
2014/09/29 职场文书
高校教师个人工作总结2014
2014/12/17 职场文书
二年级上册数学教学计划
2015/01/20 职场文书
个人合作协议范本
2015/08/06 职场文书
小学数学继续教育研修日志
2015/11/13 职场文书
2016小学新学期寄语
2015/12/04 职场文书
浅谈python中的多态
2021/06/15 Python