当前位置: 首页 > news >正文

Jython调用openwire库连接activemq转发topic订阅消息到另一个activemq 服务器上 完整代码

以下是一个示例代码,演示如何在Jython中使用OpenWire库连接ActiveMQ,将一个主题(topic)上的订阅消息转发到另一个ActiveMQ服务器上:

from org.apache.activemq import *
from org.apache.activemq.transport import *# 创建连接工厂
factory = ConnectionFactory()
factory.setBrokerURL("tcp://localhost:61616")# 创建连接
connection = factory.createConnection()
connection.start()# 创建生产者
producer = connection.createProducer(ActiveMQDestination("MY_QUEUE"))# 创建消息转换器,将BytesMessage转换为String
transformer = Transformers.transformers().addTransformer(BytesMessageToStringTransformer())# 创建目标连接工厂和连接
targetFactory = ConnectionFactory()
targetFactory.setBrokerURL("tcp://target_server:61616")
targetConnection = targetFactory.createConnection()
targetConnection.start()
targetDestination = ActiveMQDestination("TARGET_TOPIC")
targetProducer = targetConnection.createProducer(targetDestination)# 订阅主题并转发消息
consumer = connection.createConsumer(ActiveMQDestination("MY_TOPIC"))
consumer.setMessageListener(new MessageListener() {public void onMessage(Message message) {try {# 将接收到的BytesMessage转换为Stringtransformer.transform(message);String messageText = message.toString();System.out.println("Received message: " + messageText);# 创建新的消息并发送到目标服务器Message newMessage = connection.createMessage();newMessage.setStringProperty("text", messageText);targetProducer.send(newMessage)} catch (JMSException e) {e.printStackTrace();}}
});

请注意,上述代码中的MY_QUEUEMY_TOPICTARGET_TOPICtarget_server需要替换为你自己的实际值。此外,你可能需要根据你的具体需求进行适当的调整和错误处理。

http://www.lryc.cn/news/289889.html

相关文章:

  • 面试经典题---30.串联所有单词的子串
  • 字符串随机生成工具(开源)-Kimen(奇门)
  • UE4 CustomDepthMobile流程小记
  • Docker 基础篇
  • Idea上操作Git回退本地版本,怎么样保留已修改的文件,回退本地版本的四种方式代表什么?
  • vue3封装el-pagination分页组件
  • 负载均衡下Webshell连接思路及难点
  • 基于链表实现贪吃蛇游戏
  • Python网络爬虫实战——实验6:Python实现js逆向与加解密
  • 【python】使用aiohttp库编写一个简单的异步服务器
  • 新手使用代理IP接入代码教程
  • JVM问题排查手册
  • 前端canvas项目实战——简历制作网站(三)——右侧属性栏(线条宽度样式)
  • 字节跳动二面经典题目
  • 微搭低代码从入门到精通01应用介绍
  • 论文阅读《thanking frequency fordeepfake detection》
  • ArcgisForJs快速入门
  • 【解决方法】git pull报错ssh: connect to host github.com port 22: Connection timed out
  • 30天精通Nodejs--第三十天:项目实战-物联网应用
  • java 社区资源管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目
  • 网络编程套接字(Socket)
  • C语言第十一弹---函数(下)
  • Unity读书系列《Unity3D游戏开发》——拓展编辑器(一)
  • 【Git】项目管理笔记
  • 中文词性标注工具pkuseg例子(运行结果,不太好)
  • 获取URL参数:split方法、URLSearchParams方法示例
  • SparkSql---用户自定义函数UDFUDAF
  • 系统架构15 - 软件工程(3)
  • 两个近期的计算机领域国际学术会议(软件工程、计算机安全):欢迎投稿
  • (二十一)Flask之上下文管理第二篇(细细扣一遍源码)