ActiveMQ发布订阅模式

ActiveMQ Artemis-发布/订阅模式 ActiveMQ Artemis-发布/订阅模式的Java案例。 阅读详情

ActiveMQ的另一种模式就SUB/HUB即发布订阅模式,是SUB/hub就是一拖N的USB分线器的意思。意思就是一个来源分到N个出口。还是上节的例子,当一个订单产生后,后台N个系统需要联动,但有一个前提是都需要收到订单信息,那么我们就需要将一个生产者的消息发布到N个消费者。

生产者:

            try
            {
                //创建连接工厂 
                IConnectionFactory factory = new ConnectionFactory("tcp://localhost:61616/");
                using (IConnection connection = factory.CreateConnection())
                {
                    //创建会话
                    using (ISession session = connection.CreateSession())
                    {
                        //为主题/队列创建生产者  
                        IMessageProducer prod = session.CreateProducer(
                            new Apache.NMS.ActiveMQ.Commands.ActiveMQTopic("testing"));

                        //发送消息
                        int i = 0;

                        while (!Console.KeyAvailable)
                        {
                            ITextMessage msg = prod.CreateTextMessage();
                            msg.Text = i.ToString();
                            Console.WriteLine("Sending: " + i.ToString());
                            prod.Send(msg, Apache.NMS.MsgDeliveryMode.NonPersistent, Apache.NMS.MsgPriority.Normal, TimeSpan.MinValue);

                            System.Threading.Thread.Sleep(5000);
                            i++;
                        }
                    }
                }

                Console.ReadLine();
            }
            catch (System.Exception e)
            {
                Console.WriteLine("{0}", e.Message);
                Console.ReadLine();
            }

假设生产者每5秒发送一次消息:
这里写图片描述

消费者:

        static void Main(string[] args)
        {
            try  
            {  
                 //创建连接工厂
                IConnectionFactory factory = new ConnectionFactory("tcp://localhost:61616/");  

                //创建连接
                using (IConnection connection = factory.CreateConnection())  
                {  
                    connection.ClientId = "testing listener1";  
                    connection.Start();  

                    //创建会话
                    using (ISession session = connection.CreateSession())  
                    {  
                        //创建消费者
                        IMessageConsumer consumer = session.CreateDurableConsumer(new Apache.NMS.ActiveMQ.Commands.ActiveMQTopic("testing"), "testing listener1", null, false);  

                        consumer.Listener += new MessageListener(consumer_Listener);  

                        Console.ReadLine();  
                    }  
                    connection.Stop();  
                    connection.Close();  
                }  
            }  
            catch (System.Exception e)  
            {  
                Console.WriteLine(e.Message);  
            }  
        }  

        static void consumer_Listener(IMessage message)  
        {  
            try  
            {  
                ITextMessage msg = (ITextMessage)message;  
                Console.WriteLine("Receive: " + msg.Text);  
           }  
            catch (System.Exception e)  
            {  
                Console.WriteLine(e.Message);  
            }  
        }

启动一个消费者:
这里写图片描述

我们发现他是从15开始的,而不是像上节一样从头开始,再启动另一个消费者:
这里写图片描述

我们发现就是从启动时开始接受消息的,之前的消息就丢失了。

整体状态如下:
这里写图片描述

我们观察管理界面:

这里写图片描述

产生了一个testing的Topics,而订阅方有2个都订阅的是testing:

这里写图片描述

这样只需要在需要获取消息的地方订阅即可及时获得。

activeMq点对点和发布/订阅模式demo 刚接触activemq时写的一些demo,感兴趣的可以参考一下。。。 立即下载

相关推荐

Keil AC6编译器独立安装与配置指南:不升级Keil MDK也能用上新工具链

本文详细介绍了如何在不升级Keil MDK的情况下独立安装和配置Arm Compiler 6(AC6),帮助嵌入式开发者充分利用AC6的编译速度、代码密度和现代语言支持优势。通过零侵入式解决方案,开发者可以在现有环境中灵活切换编译器版本,提升开发效率。

weixin_30872157的博客 552

ActiveMQ的发布订阅在(基于xml配置)项目中使用

ActiveMQ的发布订阅在(基于xml配置)项目中使用

zgphacker2010的专栏 731

Delta机器人:运动学正反解分析

Delta机器人:运动学正反解分析 一、Delta机构简介 Delta机构是并联机构中的一种典型机构,起原始结构如图1所示。Delta机构由R.Clavel 博士在 1985年发明,是现在并联机器人中使用最多的一种,具备了并联机构所特有的优点,负载能力强、效率高、末端执行器精度高、运动惯性小,可以高速稳定运动等。因此在机器人领域获得了越来越广泛的应用。以实现高速、精准、高效的运动。           &n

花洛兮灬 3万+

ActiveMQ之发布- 订阅消息模式实现

本文介绍了发布者/订阅者消息模型的概念及基于ActiveMQ的实现案例。该模型中,发布者和订阅者通过消息主题匿名通信,支持多消费者接收消息,存在时间依赖性要求订阅者保持活动状态或建立持久订阅。代码示例展示了Java环境下使用ActiveMQ实现该模式的完整流程:1)消息生产者创建连接并发布消息到指定主题;2)两个消息消费者通过监听器异步接收消息。测试时需先启动订阅者注册监听,后启动发布者发送消息,管理界面可查看订阅状态。这种模式适用于解耦的分布式系统通信场景。(149字)

ywl470812087的博客 12万+

【IT小趣闻】免费的DeepSeek是如何赚钱的?

导语:目前很多的通用人工智能也就是所谓的AGI例如文心一言、豆包、通义千问和最近大火的DeepSeek都是免费给普通用户使用的,对开源商业模式不太熟悉的普通人可不太了解这免费背后的商业套路,下面我们就一起来揭秘。开源模式能降低用户信任成本、加速技术普及,而商业化服务则针对企业级需求。DeepSeek 可通过组合上述策略,在服务开发者社区的同时,满足企业客户的深度需求,实现可持续发展。你也看出来了,上边是DeepSeek生成的,讲的还是挺明白的。

SunMy的博客 1762

【SEW-伺服电机-Profinet-io通讯控制——伺服配置】

SEW-伺服电机-Profinet-io通讯控制——伺服配置一、本次使用配置说明编写经历受国际形式与疫情影响相关资料查询阅读测试验证不易二、伺服配置流程1.基本准备条件2.硬件-电路连接3.设备在线连接4.软件-参数配置5.手动运行测试6.PN-IO自动控制配置8.PLC1200硬件组态9.PLC软件编程10.调试故障分析三、总结四、参考 一、本次使用配置说明编写经历 受国际形式与疫情影响 由于近期受国际形式影响以及全球疫情影响,Siemens等常用产品供货期与供货量严重受限,项目上不得不采取选用其它替代产

qq_39024187的博客 1万+

ActiveMQ发布-订阅消息模式

ActiveMQ发布-订阅消息模式一、订阅杂志二、 发布-订阅消息模式 一、订阅杂志 我们很多人都订过杂志,其过程很简单。只要告诉邮局我们所要订的杂志名、投递的地址,付了钱就OK。出版社定期会将出版的杂志交给邮局,邮局会根据订阅的列表,将杂志送达消费者手中。这样我们就可以看到每一期精彩的杂志了。 仔细思考一下订杂志的过程,我们会发现这样几个特点: 1、消费者订杂志不需要直接找出版社; 2、出版社只需要把杂志交给邮局; 3、邮局将杂志送达消费者。 邮局在整个过程中扮演了非常重要的中转作用,在出版社和消费者相

Ufridy的博客 1582

开箱即用的Platform IO开发平台(包括Arduino,ESP8266,ESP32,STM32)

开箱即用的 Platform IO 离线开发环境,包含(ESP32,ESP32S2,ESP8266,Arduino,STM32)

qq_19703307的博客 755

ActiveMQ 发布订阅(publish-subscribe)

publish-subscribe      发布订阅模式有点类似于我们日常生活中订阅报纸。每年到年尾的时候,邮局就会发一本报纸集合让我们来选择订阅哪一个。在这个表里头列了所有出版发行的报纸,那么对于我们每一个订阅者来说,我们可以选择一份或者多份报纸。比如北京日报、潇湘晨报等。那么这些个我们订阅的报纸,就相当于发布订阅模式里的topic。有很多个人订阅报纸,也有人可能和我订阅了相同的报纸。那

芒果哥的专栏 1万+

【Windows Server 2019】Active Directory Certificate Services 证书颁发机构的安装,配置和管理Ⅰ——AD CS的安装和配置

博文主要介绍了Windows Server 2019的证书颁发机构的安装和配置方法。

VMware, Windows, Linux, Cisco, Container, Kubernetes, Kali 4832

innovus:NRDB-2276 special net route layer与NanoRouteMode route layer冲突问题解决方法

NanoRouteMode中设置绕线层次2-6,但是被动到的special net有8-11的preferred route layer,这个层次可能是create_route_type+set_ccopt_property -net_type 定义的。二者绕线层次范围有冲突,导致在调整过这条net后再绕线就会提示失败。然后再下route_design 等route命令去绕别的net。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?

m0_61544122的博客 1099

ActiveMQ的发布订阅模式

1、ActivaMQ的发布订阅模式的简介       发布订阅模式有点类似于我们日常生活中订阅报纸。每年到年尾的时候,邮局就会发一本报纸集合让我们来选择订阅哪一个。在这个表里头列了所有出版发行的报纸,那么对于我们每一个订阅者来说,我们可以选择一份或者多份报纸。比如北京日报、潇湘晨报等。那么这些个我们订阅的报纸,就相当于发布订阅模式里的topic。有很多个人订阅报纸,也有人可能和我订阅了相同的报纸

Learning 9039

基于Simulink与MATLAB的七轴OpenArm机械臂逆运动学仿真与轨迹规划完整指南

本文详细介绍了七自由度OpenArm机械臂在MATLAB/Simulink环境下的运动学仿真与轨迹规划实现方法。首先建立了机械臂的DH参数模型,验证了正运动学计算;随后提出了两种逆运动学求解算法(数值迭代法和臂型角参数化解析法)的MATLAB实现方案;最后在Simulink中搭建了完整的轨迹规划与控制系统。研究解决了七自由度冗余机械臂特有的多解性、奇异性和关节限位约束等核心问题,为OpenArm机械臂的运动控制提供了完整的技术方案和可运行代码实现。

AI的内部世界的博客 678

ActiveMQ发布订阅模式(topic模式)

文章目录ActiveMQ发布订阅模式(topic模式)生产者消费者测试运行截图后台查看项目打包 ActiveMQ发布订阅模式(topic模式) 生产者生产一条消息,可以被多个消费者接收一次。 生产者 topic模式,1对多。 package com.cjw.activemq; import javax.jms.DeliveryMode; import javax.jms.JMSExc...

qq_32640013的博客 2130

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

ActiveMQ发布订阅Topic模式

点对点消息传输 即一个生产者发送的一条消息只能被一个消费者消费,然后就移除了。 采用队列Queue,一个生产者对一个消费者。 发布订阅模式 发布订阅模式一条消息可以被多个消费者订阅。 采用Topic模式,可以一个或者多个生产者发布一条消息被多个消费者订阅。 生产者 public class MQTopicPublisher { public static void main(String[...

qq_37432174的博客 647

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Springboot集成activemq(发布订阅模式topic)

Springboot集成activemq(发布订阅模式topic) 一、docker安装activemq 1、查询镜像 docker search activemq 2、拉取镜像 docker pull webcenter/activemq 3、查询是否拉取成功 docker images 4、运行activemq镜像 docker run -d --name my...

SmileTimLi的博客 3114

ActiveMq 点对点模式、发布订阅模式、jms监听

详细介绍参见博客:https://www.cnblogs.com/yanfei1819/p/10615605.html 本文介绍springboot 中使用ActiveMq ,典例体现点对点模式、发布订阅模式 一:点对点模式 点对点模型,采用的是队列(Queue)作为消息载体。在该模式中,一条消息只能被一个消费者消费,没有被消费的,只能留在队列中,等待被消费,或者超时。举个例子,如果队列中有10...

qq_44261638的博客 490

activemq 发布订阅模式

发布订阅模式:就是一台服务器向多台订阅了的客户端发送信息,常用的场景有邮箱,杂志订阅等 开发流程 创建ConnectionFactory 对象 创建Connection对象 创建消息队列Destination 根据需要创建生产者或者消费者MessageProducer/MessageConsumer session创建的是topic而不是queue 发送消息sendMessage(sessi

ooiuy450的专栏 527

ActiveMQ发布订阅模式(转)

ActiveMQ的另一种模式就SUB/HUB即发布订阅模式,是SUB/hub就是一拖N的USB分线器的意思。意思就是一个来源分到N个出口。还是上节的例子,当一个订单产生后,后台N个系统需要联动,但有一个前提是都需要收到订单信息,那么我们就需要将一个生产者的消息发布到N个消费者。 生产者: try { //Create t...

dianlum5843的博客 190

JFET共源放大电路设计:从静态工作点到SPICE仿真与实物调试

在高阻抗信号源场景中,放大器输入阻抗匹配往往决定着信号是否被有效传输。JFET作为电压控制器件,栅极输入阻抗天然可达10^8Ω以上,相比BJT更适合驻极体麦克风、压电传感器等前置放大。理解JFET的平方律特性和自偏压原理,是正确设计静态工作点的关键。通过SPICE仿真,可以精确验证直流工作点、增益与频响,但模型参数换算(如BETA与IDSS、VTO的关系)常成为新手陷阱。从通用电路概念到工程实践,本文梳理了JFET共源放大器的选型依据、偏置电阻计算、仿真建模及实物调试中的参数离散性应对方法,为高输入阻抗前置

weixin_33857230的博客 317

activemq发布订阅者模式createTopic

一个发布者,多个订阅者 1.发布者JMSProducer package com.java1234.activemq2; import javax.jms.Connection; import javax.jms.ConnectionFactory; import javax.jms.Destination; import javax.jms.JMSException; import ...

bigwatermel的博客 912

ActiveMQ发布订阅模式及Spring整合

Topic主题发布和订阅消息 前面讲的案例都是点对点的消息,即一个生产者发送的一条消息只能被一个消费者消费,然后就移除了。 而topic模式一条消息可以被多个消费者订阅,关系如下: 定义生产者 package com.sxt.demo; import java.net.URI; import java.util.Date; import javax.jms.Connection; impo...

qq_30984561的博客 713
上一篇: solr命令
下一篇: Tornado官方文档(一)【快速开始】
.NET跨平台
博客等级 码龄15年 6066粉丝 738原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值