activemq消息中间件--JMS概述(1)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wu2374633583/article/details/82949364

1 JMS概述

目前现在很多的RPC中间件技术都有如下问题:
(1)同步通信,客户端发出调用请求,必须等待服务端处理完成以后返回结果才能继续执行。
(2)客户和服务对象的生命周期紧密耦合,客户进程和服务进程都必须正常进行,如果由于服务对象的崩溃和网络故障导致客户请求不可达,客户收到异常。
(3)点对点通信,客户的一次调用只发送给某个单独的目标对象。

面向消息的中间件可以解决上述问题。发送者将消息发送给消息服务器,消息服务器将消息存放在若干队列,在合适的时候将消息转发给接收者。这种模式下,发送和接收是异步的,发送者无需等待,二者的生命周期未必相同,发送消息的时候接收者不一定运行,接收消息的时候发送者未必运行;一对多通信,对于一个消息可以有多个接收者。

java消息服务(JMS)定义了java中访问消息中间件的接口。

2 JMS术语

Provider 生产者
consumer 消费者
PTP 点对点的消息模型
Pub/Sub 发布/订阅的消息模型
Queue 队列目标
Topic 主题目标
ConnectionFactory 连接工厂,JMS用它创建连接
Connection JMS客户端到JMS Provider的连接
Destination 消息的目的地
Session 会话 一个发送或者接收消息的线程

3 消息格式定义

StreamMessage java原始值的数据流
MapMessage 一套名称-值对
TextMessage 一个字符串对象
ObjectMessage 一个序列化的java对象
BytesMessage 一个未解释字节的数据流

4 几种消息中间件

1 rocketMq(商用)
2 kafka
优点:性能和吞吐量非常高,它是采用空中接力不落地设计原则,也就是说将消息放在内存中,kafka并不采用持久化方式(数据落地方式,刷盘方式)来保证数据的可靠性,也就是说数据有可能会丢失。
但是kafka采用分布式,主从多副本保证数据的可靠性。
适合于大数据的数据分析和数据挖掘。
3 activeMq
4 rabbitMQ

猜你喜欢

转载自blog.csdn.net/wu2374633583/article/details/82949364
今日推荐