Python连接ActiveMQ的操作

最近工作需要用到多台主机数据传输,考虑过用socket,数据库,队列,最后决定还是用队列,但是发现网上关于ActiveMQ的代码要么是很早以前的了,要么是解释不够清楚,最后找了很多资料把他们合在一起

1.配置JDK环境,安装ActiveMQ

ActiveMQ 由于是基于Java开发的,所以必须先配置JDK环境,这里我分享一下我的,直接下载就行了

链接:https://pan.baidu.com/s/1tOS9ucdcYwkzzzlTNt9M3Q提取码:z07p
  • 配置环境变量
    解压到一个文件夹,我的放到d盘了

打开环境变量
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
1.点击新建
2.输入参数(这个是用来启动java程序的)
3.点击确定
4.双击path变量,点击新建
5.输入参数(%MAVEN_HOME%\bin)
6.保存退出就行了

JAVA_HOME
D:\development\java\jdk1.8.0_121(填自己的文件夹路径,可以看到bin文件夹)
%MAVEN_HOME%\bin  # path里面的参数

2.运行环境

在命令行中输入 java -version,如果显示下图效果,说明配置正确
在这里插入图片描述
cd 进入apache-activemq-5.15.2下的bin文件夹,输入activemq start,如果没有显示看一下是不是进错文件夹了
在这里插入图片描述
打开链接:
http://127.0.0.1:8161/,如果看到这个页面说明activemq已经运行成功了
在这里插入图片描述

3.代码展示

输入如下命令安装stomp
pip install stomp.py
# -*-coding:utf-8-*-
import stomp
import time
# 队列名(接收方可以根据管道名来选择接受那个队列数据)
location_queue = "123456"
# 服务器ip,端口固定用这个
conn = stomp.Connection([('127.0.0.1', 61613)])
# 账号密码
conn.connect(username='admin', passcode='admin', wait=True)
def send_to_queue(msg):
    print('---------消息发送--------------')
    # body=数据, destination=根据队列名传输数据,如果队列不存在,就创建一个
    conn.send(body=str(msg), destination=location_queue)
    print(msg)
if __name__ == '__main__':
    send_to_queue('len 123')
    # receive_from_queue()
    conn.disconnect()
# -*-coding:utf-8-*-
import stomp
# 队列名
location_queue = "123456"
conn = stomp.Connection([('127.0.0.1', 61613)])
conn.connect(username='admin', passcode='admin', wait=True)
class SampleListener(object):
    def on_message(self, headers, message):
        print('headers: %s' % headers)
        print('message: %s' % message)
def receive_from_queue():
    # 如果接受数据,就调用这个类,里面的参数是类名和类,名称必须一致
    conn.set_listener('SampleListener', SampleListener())
    # 从选择的管道中区数据,管道名,id(随便写一个数字就行)
    conn.subscribe(location_queue, 12)
    # 不能让程序停止,负责每传一次数据都得接收一次
    while True:
if __name__ == '__main__':
    receive_from_queue()
    conn.disconnect()
message是传输的数据
headers是携带的配置参数,说几个主要参数:
content-length: 数据长度
enpires:到期时间(默认为0)
destination: 指的是网页queue主体下的123456队列
timestamp:时间戳

4.查看网页

本人对网页研究的也不深,我把我知道讲解一下
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
到这就已经结束了,本人也是今天刚了解的ActiveMQ,把知道的就先展示出来,也方便大家少花点时间

5.参考资料

这里感谢三位大佬的分享,这是他们链接,如果还有什么不懂的可以看一下,至于为什么是参考代码注释,是因为模块版本原因代码无法使用,但是讲解的还是挺好的,在这里感谢大家的支持.

Python连接ActiveMQ的操作最近工作需要用到多台主机数据传输,考虑过用socket,数据库,队列,最后决定还是用队列,但是发现网上关于ActiveMQ的代码要么是很早以前的了,要么是解释不够清楚,最后找了很多资料把他们合在一起1.配置JDK环境,安装ActiveMQActiveMQ 由于是基于Java开发的,所以必须先配置JDK环境,这里我分享一下我的,直接下载就行了下载链接:https://pan.baidu.com/s/1tOS9ucdcYwkzzzlTNt9M3Q提取码:z07 activeMQ是一款消息队列,关于消息队列是什么这里就不再介绍了,这里只介绍如何使用python连接activemq进行消息的发送和接收。既然都用python连接了,那么对于消息队列是什么也就无需在此介绍了 python连接activemq,可以使用stomp这个模块,直接pip install stomp.py即可,注意结尾的.py。 发送数据到队列 import...
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了。 官方示例代码:给
发布/订阅消息传递域的特点如下:(1)生产者将消息发布到topic中,每个消息可以有多个消费者,属于1:N关系(2)生产者和消费者之间有时间上的相关性,订阅某一个主题的消费者只能消费自它订阅之后发布的消息(3)生产者生产时,topic不保存消息它是无状态的不落地,假如无人订阅就去生产,那就是一条废消息,所以,一般先启动消费者再启动生产者JMS规范允许客户创建持久订阅,这在一定程度上放松了时间上的相关性要求。持久订阅允许消费者消费它在未处于激活状态时发送的消息。启动ActiveMQ之后访问http://localhost:8161/admin/topics.jsp,此时的Topic中什么也没有先
二、安装启动 http://activemq.apache.org/version-5-getting-started.html activemq依赖java环境,如果没有请先安装 yum -y install java-1.8.0-openjdk bin/activemq start bin/activemq stop 三、访问管理界面 http://192.168.243.10 1、python需要安装stomp,stomp包的安装比较麻烦,建议在网上直接下载.whl文件,然后本地安装 2、本机需要安装acitvemq,安装过程参考https://blog.csdn.net/weixin_41806489/article/details/104997519. 操作过程 1、生产方 prublishi.py import time import sys import... queue_name = '/queue/SampleQueue' topic_name = '/topic/SampleTopic' listener_name = 'SampleListener' class...
Windows 10家庭中文版,Python 3.6.4,stomp.py 4.1.21 ActiveMQ支持Python访问,提供了基于STOMP协议(端口为61613)的库。 ActiveMQ的官文Cross Language Clients中给出了更详细的介绍,并附有示例代码,如下图: 第一行为常规Python访问,第二行为使用Jython访问的方式,四个操作
activeMQ官方文档:Using the API — Stomp 7.0.0 documentation ActiveMQ支持Python访问,提供了基于STOMP协议(端口为61613)的库。 ActiveMQ的官文Cross Language Clients中给出了更详细的介绍,并附有示例代码,如下图: 第一行为常规Python访问,第二行为使用Jython访问的方式,四个操作。 安装命令: pip installsetup.py 发送消息到队列中: import stomp
可以使用 Python 的 stomp 库来连接 ActiveMQ,具体步骤如下: 1. 安装 stomp 库:在命令行中输入 pip install stomp 即可安装。 2. 导入 stomp 库:在 Python 代码中导入 stomp 库,例如 import stomp。 3. 创建连接:使用 stomp.Connection() 方法创建连接,指定 ActiveMQ 的 IP 地址和端口号。 4. 连接认证:如果 ActiveMQ 配置了用户名和密码,需要使用 connect() 方法进行认证。 5. 发送消息:使用 send() 方法发送消息,可以将图片转换为二进制流,作为消息的内容。 6. 关闭连接:使用 disconnect() 方法关闭连接。 注意:在发送消息时,需要指定消息的目的地(destination),可以是队列(queue)或主题(topic)。 以上是连接 ActiveMQ 传输图片的基本步骤,具体实现需要根据具体情况进行调整。