jms定义了,java程序创建,发送,接收,读取消息系统中消息的标准接口。
什么是消息系统中的消息?这里的消息是有特定含义的,这些消息是被企业应用所消费的,不是人们日常生活中所消费的消息,有异步请求,报告,事件。
符合jms规范的消息系统有很多,比如有Sun MQ,IBM MQ,BEA MQ,Apache ActiveMQ,它们的底层实现技术各不相同,如此说来,写的每一个jms客户端只能对应一个消息系统?但是,别忘了java是跨平台性的,在jms里,我们也应该有办法,让jms客户端跨平台,这可以由被jms消息系统提供的被管理对象来实习。有了被管理对象,就实现了消息系统具体实现对jms客户端的透明,jms不直接与消息系统通信,而是通过被管理的对象与消息系统通信,两个主要被管理对象ConnectionFactory 和 Destination,ConnectionFactory 用来控制jms客户端与jms消息系统的连接,Destination 用来控制客户端把消息发送到系统的具体位置,以及客户端从系统取消息的具体位置。这两个对象由系统管理员通过jndi的方式存储。
这是一个生产-消费的时代,在jms消息系统里也有消息生产者和消息消费者的概念,消息生产者应该只关注消息的合法生产,消费者只关注消息的合法消费,对于消息的具体管理应该由系统负责。消息生产者发出一条消息,这条消息是发给某一个应用还是被所有应用所共享?这就要具体问题具体分析,有两种主要的消息模式,P2P模式,PUB/SUB模式,P2P模式中,一条消息只能被一个应用所消费,消费被放在queue中,P/S模式中,一条消息能被N条应用所共享。P2P和P/S模式又可称之为消息域,每个消息域又定了自己的一套概念接口。
消息的数据结构可分为,消息头,消息体,消息体即消息的主题内容,jms提供五种类型的消息体。消息的可控性由消息头决定,消息头包含消息头字段和消息属性。消息头字段和消息属性使得客户端通过消息选择器可以有效的过滤筛选所需要的消息。任何一JMSX开头的属性名都是JMS定义属性名,任何以JMS_开头的属性名都是JMS提供者定义属性名,其他为应用指定属性名。
分享到:
相关推荐
jms学习笔记jms学习笔记jms学习笔记
JMS学习笔记,详解,实例,安装软件精心总结
NULL 博文链接:https://yuxisanren.iteye.com/blog/1912587
NULL 博文链接:https://kingwolf543.iteye.com/blog/965679
JavaEE5学习笔记03-JMS介绍与使用..
JMS教程,学习笔记,基于XML和JMS的异构数据交换集成
NULL 博文链接:https://yingzhuo.iteye.com/blog/1566635
自己辛苦整理的网上的JBoss ESB学习笔记 ,非常详细,代码操作都有截图; 希望大家多支持! 学习笔记PDF的目录如下: 1——搭建ESB开发环境 2 2——第一个ESB代码Hello World 12 3——第二个ESB代码Hello World ...
Java分布式应用学习笔记09JMX-MBean的介绍
Java分布式应用学习笔记08JMX规范与各种监控场景
JPA学习笔记-EJB-06JPA+Spring使用经验。
简单介绍了springdata的知识,包含了springdata 的环境搭建,注解开发等,还有一系列相关的代码供参考。
activeMQ学习笔记,JMS有两种传递消息的方式。标记为NON_PERSISTENT的消息最多投递一次,而标记为PERSISTENT的消息将使用暂存后再转送的机理投递。如果一个JMS服务离线,那么持久性消息不会丢失但是得等到这个服务...
EJB之消息驱动Bean的总结。ejb 消息驱动Bean j2ee jms java
讲解了camel、jms、activeMQ的使用方法,讲解了JBI的原理!
6.2:JMS 172 6.3:Socket 182 6.4:WebService 189 6.5:集群分布式应用(以JBOSS为例) 190 6.6:JNLP原理及应用: 190 6.7:Log4原理及应用: 191 6.8:JFreeChat原理及应用: 191 6.9:几种常用协议 192 7.0:SOA原理 200 8...
现在java家族已经十分强大,每个分支都成为一门学问了,例如web前台开发用的applet,后台要用的servlet;做企业系统,EJB;消息中间件JMS;手机j2me开发手机、数字家电,这也是当初设计java的。
内容: Spring资源管理 Spring表达式语言 定时调度 AOP切面编程-代理功能的加强...Spring与JMS消息组件 Spring与WebService Spring与Redis数据库 JDBC操作模板 Spring事务管理 SpringDataJPA SpringMVC SpringSecurity