从零开始学activemq(ActiveMQ:使用Python访问ActiveMQ的方法)
从零开始学activemq
ActiveMQ:使用Python访问ActiveMQ的方法windows 10家庭中文版,python 3.6.4,stomp.py 4.1.21
activemq支持python访问,提供了基于stomp协议(端口为61613)的库。
activemq的官文cross language clients中给出了更详细的介绍,并附有示例代码,如下图:
第一行为常规python访问,第二行为使用jython访问的方式,四个操作。
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队列接收到消息数量增加了
stomp.connection()默认是connect.stompconnection11(协议1.1),还可以可以选择1.0、1.2。
在官方代码中,stomp.connection()的参数为空,实际上可以有很多参数,比如,设置broker的ip地址和端口,如下:其中的host_and_ports就是设置ip和端口的。
ip和端口设置示例:
c = stomp.connection([('127.0.0.1', 62613)])
这里我犯错了,端口我协程了8161(activemq的web访问的端口),经查询(百度搜索到stackoverflow.com)才知,stomp协议用的是61613(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的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持开心学习网。
原文链接:https://www.cnblogs.com/luo630/p/9188107.html
- flask项目微信小程序(Python Flask 搭建微信小程序后台详解)
- 正则表达式在python的中的应用(Python中正则表达式的用法总结)
- python多线程超时设置(解决python线程卡死的问题)
- python微信消息模拟请求(python实现微信机器人: 登录微信、消息接收、自动回复功能)
- python编写pygame游戏怎么打包(python使用pygame模块实现坦克大战游戏)
- python贪吃蛇项目介绍(python简单贪吃蛇开发)
- python操作json格式(详解python 3.6 安装json 模块simplejson)
- python中random库的用法(Python minidom模块用法示例DOM写入和解析XML)
- python turtle简易绘图(详解Python使用Plotly绘图工具,绘制甘特图)
- python类中的数据封装(基于python生成器封装的协程类)
- python创建文件夹(python批量创建指定名称的文件夹)
- pythonmath库引入方法(python使用thrift教程的方法示例)
- python操作json库(Python将json文件写入ES数据库的方法)
- pyqt5怎么在pycharm中安装(pycharm+PyQt5+python最新开发环境配置踩坑)
- python函数使用方法高级用法(Python骚操作之动态定义函数)
- python定时任务详解(使用Python做定时任务及时了解互联网动态)
- 以前全椒人是怎么过冬的 满满都是回忆(以前全椒人是怎么过冬的)
- NVIDIA显卡份额冲上88 A饭发愁 游戏优化恐没A卡份了(NVIDIA显卡份额冲上88A饭发愁)
- AMD YES A卡还是N卡 A卡和N卡的区别(AMDYESA卡还是N卡)
- 以后显卡多了一个新选择,N卡和A卡外又多了个I卡(以后显卡多了一个新选择)
- 读卖乐园的彩灯(读卖乐园的彩灯)
- 新疆80后在淘宝卖干果 以前是 不务正业 如今帮乡亲致富(新疆80后在淘宝卖干果)
热门推荐
- dedecms栏目页更改(dedecms系统列表页调用tag标签同时带上链接)
- scrapy框架爬取小说的正文内容(Scrapy框架爬取Boss直聘网Python职位信息的源码)
- django菜单动态生成(django富文本编辑器的实现示例)
- linux怎么恢复删除的数据(Linux利用lsof/extundelete工具恢复误删除的文件或目录)
- vue通过什么获取dom(vue异步更新dom的实现浅析)
- mysql行级锁使用教程(浅析MySQL的lru链表)
- vue引入axios(vue封装axios的几种方法)
- 微信小程序贪吃蛇大作战(微信小程序实现贪吃蛇游戏)
- vue插槽实例(Vue中插槽slot的使用方法与应用场景详析)
- HTTP状态码的意思
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9