廉颇老矣,尚能饭否

java:从技术到管理

常用链接

统计

最新评论

Java技术回顾之JMS:JMS概念和模型【转载】

一、JMS相关概念

1、企业消息系统:
也称消息中间件(MOM,Message-Oriented Middleware),它允许应用程序之间通过消息的方式进行通信,它具有两个显著的特点:
应用程序之间通过虚拟的通道Destination来交换消息,发送者和接收者不必了解对方,只需知道对方的Destination和消息格式即可通信。
消息是异步传送的,每个消息都是一个自包含的单元,发送者无需等待接收者接收和处理消息。

2、JMS:
JMS(Java Message Service)是Java程序与企业消息系统进行交互的规范,它提供了一组API用于创建、发送、接收和读取消息。JMS定义了一组通用的消息概念和功能,旨在降低开发者访问企业消息系统的难度,同时最大化应用程序的可移植性。

3、JMS应用的几种角色:
JMS客户端(JMS Clients):利用JMS API访问消息服务的Java程序。
非JMS客户端(Non-JMS Clients):利用特定消息系统的专有API访问消息服务的程序。
消息(Messages):JMS应用之间发送和接收的数据实体。
JMS提供者(JMS Provider):实现JMS规范的企业消息系统。
管理对象(Administered Objects):企业消息系统中管理员预先配置供客户端调用的与具体实现无关的JMS对象。

4、管理对象:
JMS提供者内部实现各有不同,为了使JMS客户端不和特定的JMS提供者耦合,JMS通过管理对象来隔离JMS提供者的内部实现。主要有两种类型的管理对象:
ConnectionFactory:用于创建到JMS提供者的连接的工厂对象。
Destination:用来表示发送消息的目的地和接收到的消息的来源的对象。
消息系统的管理员将管理对象配置到指定的JNDI命名空间上。JMS客户端通过标准JNDI接口就可以访问这些管理对象。

二、JMS消息模型

1、Pub/Sub模型:
一对多广播消息模式。在Pub/Sub模型中,消息发送方称为Publisher,消息接收方称为Subscriber。主题Topic充当Publisher和Subscriber之间的中介,对某个Topic感兴趣的Subscriber在Topic上注册,Publisher将消息发送到指定的Topic,Topic上的消息将递送给所有注册的Subscriber。
Pub/Sub模型的主要特点:
对Topic上的一个消息,注册的每个Subscriber均得到该消息的一个拷贝。
Topic上的消息是自动递送给Subscriber的,不需要Subscriber去主动获取新消息,这种方式也称为推模式(Push Model)。
Publisher和Subscriber可以在运行时刻动态添加和删除。
在使用Active MQ ,Tomcat和Spring架构的javaEE项目环境下。问题如下
1.Topic上的消息有没有顺序
2.如果有,Topic上的消息是按什么顺序自动递送给Subscriber的
3.需要设置吗,如果需要,有哪些设置方式,如何设置

2、P2P模型:
一对一消息模式。在P2P模型中,消息发送方称为Sender,消息接收方称为Receiver。队列Queue充当Sender和Receiver之间的中介,Sender将消息发送到指定的Queue,Receiver从指定的Queue上获取消息。
P2P模型的主要特点:
对Queue上的每个消息,即使有多个Receiver请求该消息,有且只有一个Receiver接收到该消息。即每个消息只能被一个Receiver消费,消费之后消息就从Queue上删除了。
Receiver需要到Queue上请求消息,而不是自动递给它的,这种方式也称为拉模式(Pull Model)。
Queue上的消息是有顺序的,消息按照它发送到Queue上的顺序被Receiver取走。

JMS提供了两组API来支持上面两组模型的应用。 



柳德才
13691193654
18942949207
QQ:422157370
liudecai_zan@126.com
湖北-武汉-江夏-庙山

posted on 2009-04-08 21:35 liudecai_zan@126.com 阅读(422) 评论(0)  编辑  收藏 所属分类: 程序人生


只有注册用户登录后才能发表评论。


网站导航:
博客园   IT新闻   Chat2DB   C++博客   博问