`

JMS消息类型模型

    博客分类:
  • java
阅读更多
/*
*作者:andyao,email:andyaoy@gmail.com
*http://andyao.iteye.com/blog/153173
/


JMS,Java Message Service,是JavaEE平台最重要的规范之一, 也是企业开发中经常使用到的异步技术。JMS规范目前支持两种消息模型:点对点(point to point, queue)和发布/订阅(publish/subscribe,topic)。

点对点:

消息生产者生产消息发送到queue中,然后消息消费者从queue中取出并且消费消息。这里要注意:

  • 消息被消费以后,queue中不再有存储,所以消息消费者不可能消费到已经被消费的消息。
  • Queue支持存在多个消费者,但是对一个消息而言,只会有一个消费者可以消费。

发布/订阅

消息生产者(发布)将消息发布到topic中,同时有多个消息消费者(订阅)消费该消息。和点对点方式不同,发布到topic的消息会被所有订阅者消费。

 

在使用JMS服务是,可以通过需求来确定是使用queue还是topic。

 

 
分享到:
评论
3 楼 fengfujie 2013-09-17  
[flash=200,200][/flash]
[tr][th]ni ma bi
引用
[/th][/tr]
[url][/url][img][/img]
2 楼 fengfujie 2013-09-17  
1 楼 skcmm 2013-06-25  
最近想搭建一个短信平台的服务,这种情况下 是否适用 ? 另外对于上述中的那种应用场景能否举例说明。谢谢了

相关推荐

    Spring 实现远程访问详解——jms和activemq

    JMS 支持两种消息传递模型: 点对点(point-to-point,简称 PTP) 发布/订阅(publish/subscribe,简称 pub/sub)。 这两种消息传递模型非常相似,但有以下区别: PTP 消息传递模型规定了一条消息只能传递给一个接收...

    java书城商店源码-messaging-with-jms-queues:消息传递与jms队列

    这种消息传递类型建立在消息队列、发送方和接收方的概念之上。 每条消息都被寻址到一个特定的队列,接收客户端从为保存它们的消息而建立的队列中提取消息。 在点对点模型中,每条消息都保证由一个消费者以异步方式...

    java8集合源码分析-Project:工程目录

    什么是Java消息服务、JMS消息传送模型 JMX java.lang.management.*、 javax.management.* 泛型 泛型与继承、类型擦除、泛型中K T V E ? 、泛型各种用法 限定通配符和非限定通配符、上下界限定符extends 和 super ...

    经典JAVA.EE企业应用实战.基于WEBLOGIC_JBOSS的JSF_EJB3_JPA整合开发.pdf

    6.4.1 JMS消息类型 253 6.4.2 JMS消息头和消息属性 253 6.4.3 重用消息对象 254 6.4.4 JMS传递方式和有效时间 255 6.4.5 设置消息的优先级 256 6.4.6 消息的确认方式 256 6.4.7 消息选择器 257 6.4.8 消息的临时目的...

    java版商城源码下载-RabbitMQ:兔MQ

    AMQP是高级消息队列协议,提供5种消息模型(direct/fanout/topic/headers/system),仅支持byte[]类型信息,几种消息队列都是基于AMQP来实现的。 协议模型 核心概念 server:又称broker,接受客户端的连接,实现AMQP...

    java开发oa系统源码下载-Spring-rabbitMQ:Spring整合消息队列RabbitMQ

    如下图,发布订阅模型,添加两个队列,分别各用一个消费者监听,设置一个交换机,类型为广播(fanout),交换机会将收到的消息广播给所有相连的队列: direct直连交换机通信模型,包括一个direct交换机,三个binding...

    EJB2.0 Entity bean(PDF) .zip_EJB2 enti_EJB2.0 P_ejb_ejb2 CMP sup

    关于EJB2.0的相关资料,具体的有新的CMP组件模型,新的支持JMS的bean类型

    Java常见面试问题.docx

    5.Jms两种消息机制? 点对点、发布订阅 6.Rbac? 用户角色权限设计 7.Shiro用到了那些功能及原理? Shiro缓存用户权限了解一下 8.Svn和git的区别? https://blog.csdn.net/walle167/article/details/84235823 9....

    ofbiz综合技术文档

    一、JMS消息服务引擎 58 1、JMS消息服务引擎 58 2、消息服务引擎配置和使用 58 二、时间服务(job) 59 1、JobScheduler 60 三、利用OFBiz实现SingleSignOn单点登录 60 1、SSO简介 60 2、利用OFBiz建立简单有效的SSO...

    Spring中文帮助文档

    2.4.4. 异步的JMS 2.4.5. JDBC 2.5. Web层 2.5.1. Spring MVC合理的默认值 2.5.2. Portlet 框架 2.5.3. 基于Annotation的控制器 2.5.4. Spring MVC的表单标签库 2.5.5. 对Tiles 2 支持 2.5.6. 对JSF 1.2支持...

    Spring API

    2.4.4. 异步的JMS 2.4.5. JDBC 2.5. Web层 2.5.1. Spring MVC合理的默认值 2.5.2. Portlet 框架 2.5.3. 基于Annotation的控制器 2.5.4. Spring MVC的表单标签库 2.5.5. 对Tiles 2 支持 2.5.6. 对JSF 1.2支持...

    neowal1:my_first_github_project

    Apache Camel使用URI,以便可以轻松地直接与任何类型的传输或消息传递模型一起使用,例如HTTP,ActiveMQ,JMS,JBI,SCA,MINA或CXF,以及可插拔数据格式选项。 Apache Camel是一个小型库,具有最小的依赖关系,可...

    ca源码java-camel:ApacheCamel是一个开源集成框架,可让您快速轻松地集成使用或生成数据的各种系统

    Camel使用URI来简化与所有传输或消息传递模型(包括HTTP,ActiveMQ,JMS,JBI,SCA,MINA或CXF)的集成,并使用可插拔数据格式选项。 Apache Camel是一个小型库,具有最小的依赖关系,可轻松嵌入任何Java应用程序中...

    Fourinone分布式计算框架

    但是FourInOne不实现JMS的规范,不提供JMS的消息确认和消息过滤等特殊功能,不过开发者可以基于FourInOne自己去扩充这些功能,包括mq集群,利用一个独立的domain/node建立队列或者主题的key隐射,再仿照上面分布式...

    JBPM4工作流应用开始指南.rar

    209 10.3 如何在活动中调用EJB方法 214 10.4 使用jms活动 215 10.4.1 模拟JMS服务 217 10.4.2 JMS文本消息 219 10.4.3 JMS Object消息 220 10.4.4 JMS Map消息 222 10.5 历史会话监听链 223 10.6 自定义Web任务表单 ...

    “桂林高新杯”软件设计大赛.doc

    " " "2、C#.NET程序结构与数据类型、流程控制、方法的参数传递、程 " " "序调试与异常处理和面向对象编程; " " "3、集合框架、线程和网络编程; " " "4、常用数组操作; " " "5、部署WEB应用、WEB应用的配置和安全...

    Spring-Reference_zh_CN(Spring中文参考手册)

    2.4.3. 异步的JMS 2.4.4. JDBC 2.5. Web层 2.5.1. Spring MVC的表单标签库 2.5.2. Spring MVC合理的默认值 2.5.3. Portlet 框架 2.6. 其他特性 2.6.1. 动态语言支持 2.6.2. JMX 2.6 .3. 任务规划 2.6.4. 对Java 5...

    超级有影响力霸气的Java面试题大全文档

     多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。 5、String是最基本的数据类型...

    J2EE应用开发详解

    199 11.5.1 JMS 200 11.5.2 消息驱动Bean的生命周期 202 11.5.3 创建消息驱动Bean 202 11.6 实体Bean 203 11.6.1 实体Bean的特性 204 11.6.2 实体Bean的分类及组成 204 11.6.3 EJB 3.0中的实体Bean 206 11.7 EJB事务...

Global site tag (gtag.js) - Google Analytics