服务端定义了两个消费者
@MessageDriven(activationConfig={
@ActivationConfigProperty(propertyName="destinationType",propertyValue="javax.jms.Topic"),
@ActivationConfigProperty(propertyName="destination",propertyValue="topic/myTopic")
}
)
public class TopicMessageBean01 implements MessageListener {
public void onMessage(Message msg) {
TextMessage txtMsg=(TextMessage)msg;
String s="";
try {
s = txtMsg.getText();
} catch (JMSException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("TopicMessageBean01接收消息:"+s);
}
}
import javax.ejb.ActivationConfigProperty;
import javax.ejb.MessageDriven;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.TextMessage;
@MessageDriven(activationConfig={
@ActivationConfigProperty(propertyName="destinationType",propertyValue="javax.jms.Topic"),
@ActivationConfigProperty(propertyName="destination",propertyValue="topic/myTopic")
}
)
public class TopicMessageBean02 implements MessageListener {
public void onMessage(Message msg) {
TextMessage txtMsg=(TextMessage)msg;
String s="";
try {
s = txtMsg.getText();
} catch (JMSException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("TopicMessageBean02接收消息:"+s);
}
}
客户端的发布者代码
import javax.jms.Message;
import javax.jms.MessageProducer;
import javax.jms.Topic;
import javax.jms.TopicConnection;
import javax.jms.TopicConnectionFactory;
import javax.jms.TopicSession;
import javax.naming.InitialContext;
public class Test {
public static void main(String[] args) throws Exception {
InitialContext context=new InitialContext();
//获得QueueConnectionFactory
TopicConnectionFactory factory =(TopicConnectionFactory)context.lookup("TopicConnectionFactory");
//创建QueueConnection
TopicConnection conn=factory.createTopicConnection();
//创建会话
//p1:与事务有关 true:表示最后提交 false:表示自动提交
//p2:表示接收方向消息中间件发送确认通知,我们这里采用自动通知类型
TopicSession session=conn.createTopicSession(false, TopicSession.AUTO_ACKNOWLEDGE);
//取得destination
Topic topic=(Topic)context.lookup("topic/myTopic");
//消息生产者
MessageProducer publisher=session.createProducer(topic);
//定义消息
Message msg=session.createTextMessage("消息来了");
//发送消息
publisher.send(topic, msg);
session.close();
conn.close();
}
}
分享到:
相关推荐
在ActiveMQ中,有两种主要的消息处理模式:点对点(Point-to-Point,简称PTP)和发布/订阅(Publish/Subscribe,简称PUB/SUB)。本文将深入探讨这两种模式及其在SpringBoot应用中的实现。 首先,点对点(PTP)模式...
在"JMS sub/pub实现聊天系统"中,我们主要探讨的是如何利用JMS的发布/订阅(Publish/Subscribe)模型来构建一个聊天系统。 在JMS中,有两种消息传递模型:点对点(Point-to-Point)和发布/订阅(Publish/Subscribe...
SpringBoot集成ActiveMQ,ActiveMQ支持队列和主题两种消息发送方式,选择发送方式可以在SpringBoot的配置文件中通过参数spring.jms.pub-sub-domain来控制,值为false表示是队列,值为true表示是主题。
Pub/Sub模式使用Topic,消息可以被多个订阅者接收。 - **管理对象**:通过JNDI(Java Naming and Directory Interface)查找,包括Connection Factory和Destination,确保与供应商的无关性,便于代码移植。 3. **...
3. **JMS Domains**:JMS有两种主要的消息模型,即点对点(Point-to-Point, PTP)和发布/订阅(Publish/Subscribe, Pub/Sub)模式。 - **Point-to-Point (PTP)模式**:在这种模型中,消息从一个生产者发送到一个...
2. **发布/订阅(Pub/Sub)**:此模式中,消息被发送到主题(topic),所有订阅该主题的消费者都将收到消息副本。 - **主题(Topic)**:作为消息广播的通道,主题支持广播式的消息传递。 #### 三、JMS应用的组成 一个...
2. **消息模型**:JMS支持两种消息模型——点对点(Point-to-Point, PTP)和发布/订阅(Publish/Subscribe, Pub/Sub)。在点对点模型中,消息从一个队列(Queue)中发送到另一个队列,每个消息仅被一个消费者接收。...
JMS支持两种消息模型:点对点(Point-to-Point, PTP)和发布/订阅(Publish/Subscribe, Pub/Sub)。 **Websphere MQ** IBM Websphere MQ,通常简称为MQ,是一个功能强大的消息中间件,它允许不同系统之间的应用程序...
2. **消息模型**:JMS支持两种消息传递模型:点对点(Point-to-Point,P2P)和发布/订阅(Publish/Subscribe,Pub/Sub)。在P2P模型中,每个消息仅由一个消费者接收,通常通过队列实现;在Pub/Sub模型中,消息可以被...
2. **消息模式**:主要有两种,点对点(Point-to-Point, P2P)和发布/订阅(Publish/Subscribe, Pub/Sub)。 - **P2P**模式中,消息通过队列(Queue)进行传递,每个消息有一个特定的消费者(Receiver)。消息在...
2. **消息确认模式**:JMS支持多种确认模式,决定何时确认消息已被正确处理。例如: - AUTO_ACKNOWLEDGE:自动确认,消息处理完成后自动确认。 - CLIENT_ACKNOWLEDGE:客户端确认,需要应用程序显式调用...
1. **消息模型**:JMS支持两种主要的消息模型——点对点(Point-to-Point,P2P)和发布/订阅(Publish/Subscribe,Pub/Sub)。在P2P模型中,消息被发送到一个队列,由消费者从队列中获取消息;而Pub/Sub模型下,消息...
JMS提供了两种消息传递模式:点对点(PTP)和发布/订阅(Pub/Sub)。PTP模式中,消息被放入队列中,然后队列中的消息由一个或多个消费者轮流处理。而在Pub/Sub模式中,消息被发布到主题中,任何订阅了该主题的消费者...
1. JMS模型:JMS定义了两种基本的消息模式——点对点(Point-to-Point,P2P)和发布/订阅(Publish/Subscribe,Pub/Sub)。点对点模式下,消息由一个生产者发送到一个队列,然后由一个消费者接收;发布/订阅模式中,...
Java消息服务支持两种消息模型:Point-to-Point消息(P2P)和发布订阅消息(Publish Subscribe messaging,简称Pub/Sub)。JMS规范并不要求供应商同时支持这两种消息模型,但开发者应该熟悉这两种消息模型的优势与缺点...
2. **消息队列与主题**:JMS提供两种消息传递模型——点对点(Point-to-Point,P2P)和发布/订阅(Publish/Subscribe,Pub/Sub)。在P2P模型中,消息被发送到一个队列,每个消息仅被一个消费者接收。而在Pub/Sub模型...
- **消息模型**:JMS 支持两种主要的消息模型 —— 点对点(Point-to-Point, PTP)和发布/订阅(Publish/Subscribe, Pub/Sub)。 - **可靠消息传输**:确保消息能够准确无误地送达目标。 - **事务支持**:提供了...
JMS主要包含两种消息模型:点对点(Point-to-Point,P2P)和发布/订阅(Publish/Subscribe, Pub/Sub)。在点对点模型中,消息从一个生产者发送到一个队列,然后由一个或多个消费者接收,每个消息只被一个消费者处理...
P2P模式下,每个消息只有一个消费者,而Pub/Sub模式下,一个消息可以被多个消费者接收。 4. **事务与持久性**:讲解了如何在JMS中使用事务保证消息传递的可靠性,以及如何设置消息的持久性以确保消息在系统故障后仍...
JMS Pub/Sub编程** 编程模式与P2P类似,但使用TopicConnection和TopicSession,创建TopicPublisher发送消息,TopicSubscriber接收消息。 **5. 二阶段提交的事务** JMS支持JTA(Java Transaction API)的二阶段提交...