JMS介绍 JMS是什么?
JMS的全称Java Message Service,既Java消息服务。
JMS是SUN提供的旨在统一各种MOM(Message-Oriented Middleware)系统接口的规范,它包含点对点(Point to Point,PTP)和发布/订阅(Publish/Subscribe,pub/sub)两种消息模型,提供可靠消息传输、事务和消息过滤等机制。
ActiveMQ是Apache出品的开源项目,他是JMS规范的一个实现。
MOM是什么?MOM(Message-Oriented Middleware):面向消息的中间件,使用消息中间件来协调消息传输操作。
MOM需要提供API和管理工具
客户端调用API,把消息发送到消息中间件指定的目的地。在消息发送之后,客户端会继续执行其他的工作。
接收方收到这个消息确认之前,消息中间件一直保留该消息。
JMS的作用是什么?在不同应用之间进行通信或者从一个系统传输数据到另外一个系统。两个应用程序之间,或分布式系统中发送消息,进行异步通信,程序或应用之间解耦。
它主要用于在生产者和消费者之间进行消息传递,生产者负责产生消息,而消费者负责接收消息。把它应用到实际的业务需求中的话我们可以在特定的时候利用生产者生成-消息,并进行发送,对应的消费者在接收到对应的消息后去完成对应的业务逻辑。
JMS的应用场景主要可以应用于规模和复杂度较高的分布式系统:
异步通信:客户发出调用后,不用等待服务对象完成处理并返回结果后就能继续执行;
客户和服务对象的生命周期解耦合:客户进行和服务对象进行不需要都正常运行;如果由于服务对象崩溃或网络故障导致客户的请求不可达,不会影响客户端正常响应;
一对一或一对多通信:客户的一次调用可以发送给一个或多个目标对象;
JMS中的角色三种角色:生产者(Java应用程序)、消费者(Java应用程序)、消息中间件(MQ)
JMS消息模型 点对点模型(基于队列)消息的生产者和消费者之间没有时间上的相关性。
生产者把消息发送到队列中(Queue),可以有多个发送者,但只能被一个消费者消费。一个消息只能被一个消费者消费一次。
消费者无需订阅,当消费者未消费到消息时就会处于阻塞状态
发布者/订阅者模型(基于主题的)生产者和消费者之间有时间上的相关性,订阅一个主题的消费者只能消费自它订阅之后发布的消息
生产者将消息发送到主题上(Topic)
消费者必须先订阅,JMS规范允许提供客户端创建持久订阅
JMS消息组成 消息头 消息正文JMS定义了五种不同的消息正文格式,以及调用的消息类型,允许你发送并接收一些不同形式的数据,提供现有消息格式的一些级别的兼容性。
StreamMessage --Java原始值得数据流
MapMessage --一套名称-值对
TextMessage --一个字符串对象
ObjectMessage --一个序列化的Java对象
BytesMessage --一个字节的数据流
消息属性 总结1、JMS是什么?是指定消息发送和接收的一套标准
2、JMS的角色:生产者、消费者、MOM消息中间件
3、JMS消息模型:点对点、发布订阅模型
4、JMS消息正文:Stream、Map、Text、Byte、Object
ActiveMQ介绍 什么是ActiveMQMQ,既Message Queue,就是消息队列的意思。
ActiveMQ是Apache出品,最流行,能力强劲的开源消息总线。ActiveMQ是一个完全支持JMS1.1和J2EE 1.4规范的JMS Provider实现,尽管JMS规范出台已经是很久的事情了,但是JMS在当今的J2EE应用中间仍然扮演着特殊地位。
ActiveMQ主要特点多种语言和协议编写客户端,语言:C、C++、C#、Delphi、Erlang、Adobe Flash、Haskell、Java、、Perl、PHP、Pike、Python和Ruby
支持Java消息服务(JMS) 1.1 版本
对Srping的支持,ActiveMQ可以很容易内嵌到使用Spring的系统里面去,而且也支持Spring2.0的特性
协议支持包括:OpenWire、REST、STOMP、WS-Notification、MQTT、XMPP以及AMQP
集群
ActiveMQ下载安装 下载