消息中间件一般有两种传递模型:点对点模型(PTP)和发布-订阅模型(Pub/Sub)。
1. 点对点模型(PTP)
点对点模型用于消息生产者和消息消费者之间点到点的通信。消息生产者将消息发动到由某个名字标识的特定消费者。这个名字实际上对应于消息服务中的一个队列(Queue),在消息传动给消费者之前它被存储在这个队列中。队列可以是持久的,以保证在消息服务出现故障时仍然能够传递消息。
P2P模式的测试
在jboss中部署下面的 消息驱动bean
import javax.ejb.ActivationConfigProperty;
import javax.ejb.MessageDriven;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.TextMessage;
//默认是无状态的session bean
@MessageDriven(
activationConfig={
@ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue" ),
@ActivationConfigProperty(propertyName = "destination", propertyValue = "queue/myqueue")
}
)
public class QueueMessageBean implements MessageListener {
//1.Text
//2.Map
//3.Object
//4.steam
//5.byte
public void onMessage(Message msg) {
TextMessage txtMsg=(TextMessage)msg;
String s="";
try {
s = txtMsg.getText();
} catch (JMSException e) {
e.printStackTrace();
}
System.out.println("QueueMessageBean接收到了消息:"+s);
}
}
客户端的测试类
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageProducer;
import javax.jms.Queue;
import javax.jms.QueueConnection;
import javax.jms.QueueConnectionFactory;
import javax.jms.QueueSession;
import javax.naming.InitialContext;
import javax.naming.NamingException;
public class Test {
public static void main(String[] args) throws NamingException, JMSException {
InitialContext context;
context = new InitialContext();
//获得QueueConnectionFactory
QueueConnectionFactory factory =(QueueConnectionFactory)context.lookup("QueueConnectionFactory");
//创建QueueConnection
QueueConnection conn=factory.createQueueConnection();
//创建会话
//p1:与事务有关 true:表示最后提交 false:表示自动提交
//p2:表示接收方向消息中间件发送确认通知,我们这里采用自动通知类型
QueueSession session=conn.createQueueSession(false, QueueSession.AUTO_ACKNOWLEDGE);
//取得destination
Queue queue=(Queue)context.lookup("queue/myqueue");
//消息生产者
MessageProducer sender=session.createProducer(queue);
//定义消息
Message msg=session.createTextMessage("消息来了");
//发送消息
sender.send(queue, msg);
session.close();
conn.close();
}
}
分享到:
相关推荐
在描述中提到的"官方最新版 JMS 5.11jar包",可能是指ActiveMQ的一个版本,因为ActiveMQ是Apache软件基金会开发的一个开源JMS实现,它支持JMS 1.1规范,并在5.x系列中提供了对JMS 2.0的初步支持。 "avitvemq"标签...
高层中间件通常涉及多个应用系统的整合,而底层中间件主要服务于特定的应用或问题。 消息中间件是本文重点讨论的内容,它通过消息队列实现进程间的非阻塞通信,提高了系统的性能和可扩展性。发送者将消息发送到消息...
在Linux环境下配置WebLogic...总之,Linux下WebLogic集群的配置涉及多方面的工作,包括网络设置、服务器实例的管理和集群的高级特性配置。理解这些概念和技术细节对于成功部署和管理高可用性的Web应用程序至关重要。
此外,集群还支持Servlet和JSP的负载均衡,以及更高级别的J2EE组件如EJB、JDBC和JMS的集群化。 配置过程中需要注意几个关键点: 1. Linux环境:所有WebLogic服务器都部署在Linux操作系统上。 2. IP组播和UDP:管理...
此外,本文的配置仅展示了Web层(Servlet和JSP)的负载平衡和容错,但WebLogic支持对其他J2EE组件,如EJB、JDBC和JMS等进行集群化,以实现更全面的服务高可用性。 配置WebLogic集群的基本步骤包括: 1. **建立管理...
在Linux环境下配置WebLogic集群是一项关键的任务,它涉及到多个组件的协调工作,以实现高可用性和负载均衡。WebLogic域是管理和监控WebLogic Server实例的核心结构。在这个环境中,管理服务器作为中心控制点,负责...
在ActiveMQ的初步学习阶段,你需要了解如何安装和配置ActiveMQ服务器,以及创建基本的生产者和消费者示例。这通常包括设置服务器环境,编写Java代码来创建连接工厂,发送和接收消息。 **API详细使用** ActiveMQ...
安装ActiveMQ通常涉及下载二进制包,解压后启动服务器。默认配置文件`activemq.xml`位于`conf`目录下,可以根据需要进行定制,如设置端口、内存大小等。 4. **ActiveMQ的核心概念** - **Broker**: 消息中间件,...
ActiveMQ的"Hello World"程序主要涉及以下几个关键知识点: 1. **消息模型**:ActiveMQ支持两种主要的消息传递模式——点对点(P2P)和发布/订阅(Pub/Sub)。在点对点模式中,一个生产者发送消息给一个消费者,每...
它包含了一系列的API和服务,如Servlet、JSP、EJB、JMS、JPA等,用于构建分布式、多层架构的应用程序。 2. **Servlet**:Servlet是JavaEE中的核心组件,负责处理HTTP请求并生成响应。在这个项目中,Servlet可能被...
部署过程通常涉及打包应用为EAR(Enterprise Archive)文件,然后通过管理控制台或者命令行工具将其上传到服务器。 四、J2EE 1.4 支持 WAS 6.1遵循J2EE 1.4规范,提供了EJB 2.1、Servlet 2.4和JSP 1.2的支持。这...
J2EE应用通常需要与数据库进行交互来存储和检索数据,这涉及到SQL(Structured Query Language)知识,以及如何使用JDBC(Java Database Connectivity)API来连接和操作数据库。数据库的设计应当遵循ER(Entity-...
集群配置涉及 JNDI 的跨服务器共享、故障转移和负载均衡策略。 - **集群特性**:了解 JBoss 集群能够提供的服务,如高可用性和可扩展性。 - **集群 JNDI**:掌握如何在集群环境中配置 JNDI 条目,使它们在所有节点...
标题“activemq学习(1)”提示我们即将探讨的是Apache ActiveMQ,一个开源的消息中间件,它在Java消息服务(JMS)规范下运行。在这个初步的学习阶段,我们将主要了解ActiveMQ的基本概念、功能以及如何开始使用它。 ...
- **J2EE架构**:包括EJB(Enterprise JavaBeans)、JSP/Servlet、JMS(Java Message Service)、JDBC(Java Database Connectivity)等组件,用于构建分布式、多层的企业级应用。 - **B2C系统组件**:用户管理、...
- `chapter2`:这部分可能涵盖了Spring的基础知识,包括环境配置、Spring IoC容器的使用、Bean的定义与实例化,以及DI的初步实践。可能还会讲解到Spring的XML配置和基于注解的配置方式。 - `chapter3`:在这一章,...
【描述】提到的"适于与初步接触java的人学习借鉴用"意味着这个项目是一个理想的入门实例,对于初学者来说,可以通过研究和实践这个项目来学习Java编程语言,尤其是Java在开发Web应用程序方面的应用。J2EE平台提供了...
这本书是Alpha草案版本,意味着它可能包含了初步的内容和未完成的章节,旨在提供早期的参考和学习资料。Sun ONE是由Sun Microsystems公司开发的一系列互联网基础架构产品和服务,它涵盖了服务器、应用服务器、目录...
因此,本教程可能还涉及了JPA(Java Persistence API),这是一个ORM(对象关系映射)规范,简化了数据库操作,使得Java对象可以直接与数据库记录进行映射。 6. **JavaEE中的其他技术** 虽然仅列出了前三个章节的...