`
y806839048
  • 浏览: 1120484 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

activeMq多个监听配置

 
阅读更多

activeMq多个监听配置:

集群或者zookeeper分布式集群分发处理只能到一个节点,即active的多个订阅端不会因此产生,除非一个系统配置了对个监听,监听一个发送通道(toptip)

在只有一个监听配置的时候,toptip就相当于queuen

配置多个监听客户端和配置一个一样只是clientId不同即可,当用的是下面的topic时有几个监听端就有会调用几次接收方法,(发送永远只发送一次)

当topic改为org.apache.activemq.command.ActiveMQQueue,(其他不需要动),不管有几个监听端,那个先消费就是谁,即只调用一次接受方法

 对于分布式系统,一般采用topic的方式,监听对应需要的发送者,不会出现同一个子系统,对同一个发送者的同一个队列监听两次(否则造成监听多次重复调用)

一个浏览器同一个系统只能登录一个账户,否则session会覆盖掉

 

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"

xmlns:context="http://www.springframework.org/schema/context"

xmlns:jms="http://www.springframework.org/schema/jms" xmlns:amq="http://activemq.apache.org/schema/core"

xmlns:aop="http://www.springframework.org/schema/aop"

xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/jms http://www.springframework.org/schema/jms/spring-jms-3.0.xsd http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core-5.5.0.xsd">

 

<bean id="topicSendConnectionFactory" class="org.apache.activemq.spring.ActiveMQConnectionFactory">

<!-- <property name="brokerURL" value="udp://localhost:8123" /> -->

<!-- UDP传输方式 -->

<property name="brokerURL" value="tcp://10.0.1.126:61616" />

<!-- TCP传输方式 -->

<property name="useAsyncSend" value="true" />

</bean>

 

<bean id="topicListenConnectionFactory" class="org.apache.activemq.spring.ActiveMQConnectionFactory">

<!-- <property name="brokerURL" value="udp://localhost:8123" /> -->

<!-- UDP传输方式需要在activemq上面做配置 -->

<property name="brokerURL" value="tcp://10.0.1.126:61616" />

<!-- TCP传输方式 -->

</bean>

<!-- 定义主题 -->

<bean id="myTopic" class="org.apache.activemq.command.ActiveMQTopic">

<constructor-arg value="esteelChat-mq" />

</bean>

 

<bean id="messageConvertForSys" class="com.esteel.chat.mq.MessageConvertForSys" />

 

<!-- TOPIC send jms模板 -->

<bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">

<property name="connectionFactory" ref="topicSendConnectionFactory" />

<property name="defaultDestination" ref="myTopic" />

<property name="messageConverter" ref="messageConvertForSys" />

<!-- 发送模式 DeliveryMode.NON_PERSISTENT=1:非持久 ; DeliveryMode.PERSISTENT=2:持久 -->

<property name="deliveryMode" value="1" />

<property name="pubSubDomain" value="true" />

<!-- 开启订阅模式 -->

</bean>

<!-- 消息发送方 -->

<bean id="topicSender" class="com.esteel.chat.mq.MessageSender">

<property name="jmsTemplate" ref="jmsTemplate" />

</bean>

 

<!-- <bean id="springContextUtil" class="com.esteel.common.SpringContextUtil" /> -->

    

 

<!-- 消息接收方 -->

<bean id="topicReceiver" class="com.esteel.chat.mq.MessageReceiver" />

<!-- 主题消息监听容器,一经注册,自动监听 -->

<bean id="listenerContainer"

class="org.springframework.jms.listener.DefaultMessageListenerContainer">

<property name="connectionFactory" ref="topicListenConnectionFactory" />

<property name="pubSubDomain" value="true" />

<!-- true 订阅模式 -->

<property name="destination" ref="myTopic" />

<!-- 目的地 myTopic -->

<property name="subscriptionDurable" value="true" />

<!-- -这里是设置接收客户端的ID,在持久化时,但这个客户端不在线时,消息就存在数据库里,直到被这个ID的客户端消费掉 -->

<property name="clientId" value="clientId_esteelChat_1" />///////////////////配置对个客户端的时候只要这个不同即可

<property name="messageListener" ref="topicReceiver" />

</bean>

<!-- 主题消息监听容器,一经注册,自动监听 -->

<bean id="listenerContainer2"

class="org.springframework.jms.listener.DefaultMessageListenerContainer">

<property name="connectionFactory" ref="topicListenConnectionFactory" />

<property name="pubSubDomain" value="true" />

<!-- true 订阅模式 -->

<property name="destination" ref="myTopic" />

<!-- 目的地 myTopic -->

<property name="subscriptionDurable" value="true" />

<!-- -这里是设置接收客户端的ID,在持久化时,但这个客户端不在线时,消息就存在数据库里,直到被这个ID的客户端消费掉 -->

<property name="clientId" value="clientId_esteelChat_2" />

<property name="messageListener" ref="topicReceiver" />

</bean>

 

<bean id="listenerContainer3"

class="org.springframework.jms.listener.DefaultMessageListenerContainer">

<property name="connectionFactory" ref="topicListenConnectionFactory" />

<property name="pubSubDomain" value="true" />

<!-- true 订阅模式 -->

<property name="destination" ref="myTopic" />

<!-- 目的地 myTopic -->

<property name="subscriptionDurable" value="true" />

<!-- -这里是设置接收客户端的ID,在持久化时,但这个客户端不在线时,消息就存在数据库里,直到被这个ID的客户端消费掉 -->

<property name="clientId" value="clientId_esteelChat_3" />

<property name="messageListener" ref="topicReceiver" />

</bean>

<!-- Servlet -->

<!-- <bean id="ControlServlet1" class="com.esteel.servlet.ControlServlet1"> 

<property name="topicSender" ref="topicSender" /> </bean> -->

</beans>  

 

分享到:
评论

相关推荐

    ActiveMQ的activemq.xml详细配置讲解

    - 每个`&lt;transportConnector&gt;`元素代表一个监听端口,例如`uri="tcp://0.0.0.0:61616"`表示监听所有网络接口的61616端口。 3. **Policies** - `&lt;policyEntries&gt;`用于定义基于主题或队列的策略,如大小限制、死信...

    Activemq同时支持多个Topic类型通信,并且配置添加到服务里面方便管理

    本篇文章将深入探讨如何在ActiveMQ中配置并管理多个Topic类型通信。 Topic是一种发布/订阅模式的消息传递方式,允许多个消费者订阅同一个Topic,当生产者发布一条消息时,所有订阅了该Topic的消费者都会收到这条...

    activemq spring 客户端配置

    标题中的“activemq spring 客户端配置”指的是如何在Spring框架中设置Apache ActiveMQ作为消息中间件的客户端。ActiveMQ是Apache软件基金会开发的一个开源消息代理,它实现了多种消息协议,如JMS(Java Message ...

    activemq5配置文档

    - **用户认证与授权**:ActiveMQ允许通过Jaas配置用户身份验证和权限控制,你可以定义多个用户角色并分配不同的访问权限。 - **虚拟主题(Virtual Topics)**:虚拟主题提供了安全隔离,使得不同用户组可以订阅...

    ActiveMQ整合Spring(多消费者)

    监听器容器可以配置多个消费者,实现多线程并发消费;基于注解的方式更简洁,只需在方法上添加`@JmsListener`,指定目的地即可。 5. **多消费者模式**: 标题提到的“多消费者”意味着同一个消息可能被多个消费者...

    自己实现的 ActiveMQ 多线程客户端 包含生产消息客户端和消费者消息客户端

    - **生产者多线程**:Amq_Producer_mt.cpp 文件可能包含了多个线程同时发送消息的实现,提高了消息发送的并发能力。 - **消费者线程**:Amq_Consumer.cpp 可能设计了一个线程来监听并处理来自消息队列的事件,确保...

    activeMQ_spring简单案例(含XML配置)

    在本文中,我们将深入探讨如何将ActiveMQ与Spring框架整合,构建一个简单的消息传递系统。ActiveMQ是Apache软件基金会开发的...在实际项目中,可以根据需求调整配置,创建多个队列或主题,以满足不同的消息传递场景。

    tomcat下activemq之http配置

    总的来说,配置Tomcat下的ActiveMQ HTTP连接涉及到多个方面,包括XML配置文件的修改、Web控制台的部署、安全性的设置以及Stomp协议的使用。理解这些知识点,能帮助你在实际开发中有效利用ActiveMQ实现可靠的消息传递...

    ActiveMQ与spring集成实例之使用消息监听器

    为了接收消息,我们需要实现`MessageListener`接口,并在Spring配置文件中定义一个监听容器: ```xml &lt;!-- 实现MessageListener接口 --&gt; ``` 在`MessageListener`中,你需要实现`onMessage(Message ...

    activemq的简单配置

    - **监控指标**:在管理界面上可以查看多个监控指标,例如: - **Number of pending messages**:未处理的消息总数。 - **Number of consumers**:当前消费者的数量。 - **Messages enqueued**:已发送到队列的...

    Spring集成ActiveMQ配置

    2. **配置ActiveMQ服务器**:通常,我们会在本地或远程部署一个ActiveMQ服务器,并配置相应的连接工厂。在Spring的配置文件中,定义一个JMS连接工厂: ```xml &lt;bean id="jmsConnectionFactory" class="org.apache....

    activemq 配置说明与activemq入门讲解

    发布/订阅模式中,消息被多个订阅者接收。 5. **消息类型**:ActiveMQ支持TextMessage、ObjectMessage、BytesMessage和MapMessage四种基本消息类型。 6. **消息持久化**:通过设置Message的持久化属性,可以在...

    消息队列介绍和SpringBoot2.x整合RockketMQ、ActiveMQ

    2. **配置ActiveMQ**:在`application.properties`或`application.yml`中配置ActiveMQ服务器的URL和其他相关参数。 3. **创建消息模板**:SpringBoot提供了`JmsTemplate`,用于发送和接收消息。 4. **编写消息监听器...

    SpringBoot+ActiveMq+MQTT实现消息的发送和接收

    4. 定义消息消费者:创建一个监听特定主题的MessageListener。当有消息到达时,这个监听器会被触发并处理消息。 5. 编写消息发送接口:为了将消息发送逻辑封装起来,可以创建一个服务类,提供发送消息的方法,这些...

    ActiveMQ的队列、topic模式

    如果多个消费者同时连接到同一个队列,只有一个能接收到消息。这种模式适用于确保消息的顺序处理和至少一次交付,因为如果消费者未能正确处理消息,消息仍然在队列中,可以由其他消费者处理。 2. **主题(Topic)...

    activemq activeMq笔记

    - **发布/订阅模型**:不同于点对点模型,发布/订阅模型允许多个订阅者接收同一个消息。当一个消息被发布时,所有订阅了该主题的消费者都会收到该消息。 ### 安装与配置 #### 安装ActiveMQ 1. **下载与安装**:...

    自己写的ActiveMQ的Demo例子

    5. **主题(Topic)**:主题支持多播,即多个消费者可以订阅同一个主题,接收到相同的消息。 **持久化机制** ActiveMQ 提供了两种主要的持久化机制:持久化到文件和持久化到数据库。 1. **持久化到文件**:这是 ...

    实验三 消息中间件应用开发:ActiveMQ实现单线程多队列

    这通常涉及到修改ActiveMQ的配置文件,如`activemq.xml`,设置监听端口、网络连接参数等。同时,我们还需要熟悉ActiveMQ的管理控制台,通过Web界面来监控和管理消息队列。 然后,我们将创建并使用单线程来处理多个...

    springboot整合activemq案例

    而Topic则遵循发布/订阅模型,一个消息可以被多个消费者接收。 首先,我们需要在项目中添加ActiveMQ的相关依赖。在`pom.xml`文件中,添加以下Maven依赖: ```xml &lt;groupId&gt;org.springframework.boot ...

Global site tag (gtag.js) - Google Analytics