什么是JMS:
JMS即Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。Java消息服务是一个与具体平台无关的API,绝大多数MOM提供商都对JMS提供支持。
体系结构(JMS由以下元素组成:
JMS提供者:连接面向消息中间件的,JMS接口的一个实现。提供者可以是Java平台的JMS实现,也可以是非Java平台的面向消息中间件的适配器。
JMS客户:生产或消费基于消息的Java的应用程序或对象。
JMS生产者:创建并发送消息的JMS客户。
JMS消费者:接收消息的JMS客户。
JMS消息:包括可以在JMS客户之间传递的数据的对象
JMS队列:一个容纳那些被发送的等待阅读的消息的区域。与队列名字所暗示的意思不同,消息的接受顺序并不一定要与消息的发送顺序相同。一旦一个消息被阅读,该消息将被从队列中移走。
JMS主题:一种支持发送消息给多个订阅者的机制。
JMS的作用:在soa分布式架构系统中或者企业中多个项目中进行多个系统的异步传输
使用的场景:
使用消息服务器当做大的队列使用,先进先出来处理高并发写入操作;
使用消息服务器可以将业务系统的串行执行改为并行执行,处理效率高。
同类技术:
ActiveMQ 是apache 比较老牌的消息中间件,比较均衡,既不是最安全的,也不是最快
RabbitMQ 阿里巴巴的消息中间件,适合金融项目,保证不丢失数据
ZeroMQ 历史上最快的消息队列系统
Kafka 是apache的一个子项目,高吞吐,完全的分布式系统,适合存储海量的数据
JMS支持的消息类型:
· StreamMessage -- Java原始值的数据流
· MapMessage--一套名称-值对
· TextMessage--一个字符串对象
· ObjectMessage--一个序列化的 Java对象
· BytesMessage--一个未解释字节的数据流
对象模型(JMS对象模型包含如下几个要素:
1)连接工厂。连接工厂(ConnectionFactory)是