前面三章描述了Java通信中的JNDI通过两个小例子说明怎样远程调用对象。这篇文件介绍一下JMS的概念
快速链接:
01_Java通信_JNDI_概念
03_Java通信_JNDI_demo2远程调用weblogic的数据源
正式进入JMS
message queue:消息队列
MQ一般都做为企业级IT应用的中间件存在,有很多企业是作为标准IT基础结构存在的。在市面上常见的MQ中间件有IBM websphere message queue service,Oracle Advanced Queuing,Microsoft Message Queue(MSMQ),Apache ActiveMQ等,其中apache ActiveMQ是基于apache协议的,和tomcat一样,你可以在项目中免费使用,MSMQ是Windows的组件,默认是不被安装的,可以在“添加/删除组件”中安装MSMQ(不同版本的Windows对应的MSMQ版本是不同的,XP/2003是3.0,Vista是4.0)。
在Java中,使用主要使用JMS(Java Message Service)来实现MQ,可以选择的厂商Apache ActiveMQ。
后面将会介绍两个简单的小demo。在demo中使用的就是Apache ActiveMQ。
JMS:(Java Message Service,Java消息服务)可以理解为在两个应用程序中进行的消息来往。例如:一个大公司中可能两个项目用了不同的技术:A应用程序是用Java写的,B应用程序可能用C++写的。如果A和B需要数据交换,这是就可以使用JMS——异构集成。
应用程序到应用程序(application to application)类型的信息传递系统,在用于业务系统中,称为企业消息传递系统,或者称为面向消息的中间件(message oriented Middleware MOM)。
JMS和JDBC类似,Java提供接口,厂商提供实现
JMS优点:
异构集成
缓解系统瓶颈
提高可伸缩性
提高最终用户生产率
体系结构灵活性和敏捷性
PS:以上是摘自《Java消息服务》
企业消息传递:
客户端:消息传递系统由消息传送客户端和几种消息传送中间件服务器所组成。客户端向消息传送服务器发送消息,该服务器随后再将那些消息分发给其他客户端。客户端是使用消息传送API的一个业务应用程序或者构件,在这里可以指JMS
JMS消息模型
点对点(1:1)
发布者(生产者)发布一条消息,这条消息进入Topic,所有订阅这个Topic的订阅者(消费者)都会收到消息的副本
基于发布/订阅(1:N)
发布者(生产者)发送一条消息,消息进入队列,只会有一个接收者接收这个消息
JMS API
公共API | 点对点API | 发布/订阅API |
ConnectionFactory |
QueueConnectionFactory | TopicConnectionFactory |
Destination | Queue | Topic |
Connection | QueueConnection | TopicConnection |
Session | QueueSession | TopicSession |
Message | Message | Message |
MessageProducer | QueueSender | TopicPublisher |
MessageConsumer | QueueReceiver | TopicSubscriber |
下一节实现一个发布/订阅消息模型的demo这样理解起来会更加简单
相关推荐
一、JMS基本概念 1.1 P2P通信 1.2 Pub/Sub通信 二、JMS消息 三、JMS P2P编程 3.1 使用JMS QueueConnection对象 3.2 处理回退事件 3.3 关闭JMS对象 3.4 接收消息 3.5 消息驱动的Bean...
java 网络高级编程(PDF) 介绍了网络进程通信的主要技术,Java有关的Web技术,异步消息服务技术JMS和Java Mail技术,Java安全体系结构、密钥、消息摘要、数字签名等技术 Java 极限编程(PDG) 简短介绍极限编程文法及...
7、JMS(Java Message Service)提供企业消息服务,如可靠的消息队列、发布和订阅通信、以及有关推拉(Push/Pull)技术的各个方面。 8、JTS(Java transaction Service)提供存取事务处理资源的开放标准,这些事务...
J2EE通信 通信概述 JMS的详细情况 消息驱动EJB 小结 第24章 Java数据对象(JDO) 概述 JDO对象模型 JDO API JDO实例的生命周期 JDO和EJB 开发可持久类 范例应用程序 配置FFJ...
面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。 4. 多态性: 多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多...
75、socket通信(tcp/udp区别及JAVA的实现方式) 18 76、什么是java序列化,如何实现java序列化? 18 77、简述synchronized和java.util.concurrent.locks.Lock的异同 ? 18 78、abstract class Name { private ...
Servlets 和JSP、EJB 技术、数据库访问、分布式通信技术(Java RMI、Java IDL、 JNDI、JMS)、安全等;本文试图给出J2EE 平台技术概念理解上的一个较为清晰 的完整的思路,帮助大家掌握各技术间的相互关系和重要的...
Servlets 和JSP、EJB 技术、数据库访问、分布式通信技术(Java RMI、Java IDL、 JNDI、JMS)、安全等;本文试图给出J2EE 平台技术概念理解上的一个较为清晰 的完整的思路,帮助大家掌握各技术间的相互关系和重要的...
面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。 4. 多态性: 多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化...
这些技术涵盖了组件技术、 Servlets 和JSP、EJB 技术、数据库访问、分布式通信技术(Java RMI、Java IDL、 JNDI、JMS)、安全等;本文试图给出J2EE 平台技术概念理解上的一个较为清晰 的完整的思路,帮助...
RabbitMQ是一个开源的AMQP实现,服务器端用Erlang语言编写,支持多种客户端,如:Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP等,支持AJAX。用于在分布式系统中存储转发消息,在易用性、扩展...
API,这些技术涵盖了组件技术、 Servlets和JSP、EJB技术、数据库访问、分布式通信技术(Java RMI、Java IDL、 JNDI、JMS)、安全等;本文试图给出 J2EE 平台技术概念理解上的一个较为清晰的完整的思路,帮助...
加密类注册 56 第七章 扩展 57 第八章 JMS及大文件传输模式 59 1信息交换平台异步通信解决方案 59 1.1信息交换平台现状及存在的问题 59 1.2需求分析 59 1.3 JMS简介 60 1.3 JMS Client消息交互图 62 1.5解决方案 62...
75、socket通信(tcp/udp区别及JAVA的实现方式) 18 76、什么是java序列化,如何实现java序列化? 18 77、简述synchronized和java.util.concurrent.locks.Lock的异同 ? 18 78、abstract class Name { private ...
RabbitMQ是一个开源的AMQP实现,服务器端用Erlang语言编写,支持多种客户端,如:Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP等,支持AJAX。用于在分布式系统中存储转发消息,在易用性、扩展...
4.2 系统间接口通信机制的多样性问题.......................................38 4.3 流程的自动化问题.....................................................39 5 结论.............................................
第 1 章 概念与原理........................................................................................................ 16 1.1 简介...................................................................