Python连接ActiveMQ的操作(当前最新版)

Python连接ActiveMQ的操作

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

1.配置JDK环境,安装ActiveMQ

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

  • 下载
链接:https://pan.baidu.com/s/1tOS9ucdcYwkzzzlTNt9M3Q提取码:z07p

在这里插入图片描述

  • 配置环境变量
    解压到一个文件夹,我的放到d盘了

打开环境变量
Python连接ActiveMQ的操作(当前最新版)_第1张图片
Python连接ActiveMQ的操作(当前最新版)_第2张图片
Python连接ActiveMQ的操作(当前最新版)_第3张图片
Python连接ActiveMQ的操作(当前最新版)_第4张图片
Python连接ActiveMQ的操作(当前最新版)_第5张图片
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,如果没有显示看一下是不是进错文件夹了
Python连接ActiveMQ的操作(当前最新版)_第6张图片
打开链接: http://127.0.0.1:8161/,如果看到这个页面说明activemq已经运行成功了
Python连接ActiveMQ的操作(当前最新版)_第7张图片

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:
        pass



if __name__ == '__main__':
    receive_from_queue()
    conn.disconnect()

在这里插入图片描述
[外链图片转存失败,源站可能有防盗在这里插入!链机制,建描述]议将图片上https://传(imblog.csdnimg.cn/2eELD10331193022387.(https://imgblog.csdnimg.cn/20210331193022387.png)]

message是传输的数据
headers是携带的配置参数,说几个主要参数:
content-length: 数据长度
enpires:到期时间(默认为0)
destination: 指的是网页queue主体下的123456队列
timestamp:时间戳

4.查看网页

本人对网页研究的也不深,我把我知道讲解一下
Python连接ActiveMQ的操作(当前最新版)_第8张图片
Python连接ActiveMQ的操作(当前最新版)_第9张图片
在这里插入图片描述
到这就已经结束了,本人也是今天刚了解的ActiveMQ,把知道的就先展示出来,也方便大家少花点时间

5.参考资料

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

  • ActiveMQ安装和网页使用.
  • 参考代码.
  • 参考代码注释.

你可能感兴趣的:(python,python,activemq,java)