消息中间件简介及JMS的概念

什么是消息中间件?

消息中间件可以理解成就是一个服务软件,保存信息的容器。我们把数据放到消息中间件当中, 然后通知对应的服务进行获取。消息中间件是在消息的传输过程中保存信息的容器。它具有低耦合、可靠投递、广播、流量控制、最终一致性等一系列功能,成为异步RPC的主要手段之一。

作用

在SOA分布式架构系统中,或者企业中的多个项目中,进行多个系统异步传递消息

优点

1.使用消息服务器当做大的队列使用,先进先出,来处理高并发写入操作

2.使用消息服务器可以将业务系统的串行执行改为并行执行,处理效率高,更合理的榨取服务器的性能。

3.交互系统之间没有直接的调用关系,只是通过消息传输,故系统侵入性不强,耦合度低。

4.提高系统响应时间,对于需要立刻响应的业务放到调用方法中,不需要立刻响应的则可以通过消息队列,放到MQ队列中,供消费者处理。

5.通过消息作为整合,大数据的背景下,消息队列还与实时处理架构整合,为数据处理提供性能支持

缺点

1.消息中间件实时性不高,因为发送方将消息发送给消息服务器后,消息服务器末必能够立即处理。

2.主要看消息服务器是否繁忙,队列中先进先出,如果数据量大,要排队等待执行。

消息中间的组成

1.Broker:消息服务器,作为server提供消息核心服务。

2.Producer:消息生产者,业务消息的发送方,负责生产消息传输给Broker。

3.Consumer:消息消费者,业务消息的接收方,负责从Broker获取消息并进行业务逻辑处理

4.Topic:主题,发布订阅模式下的消息统一汇集地,不同生产者向Topic发送消息,由MQ服务器分发到不同的订阅者,实现消息的广播

5.Queue:队列,点对点模式下特定生产者向特定Queue发送消息,消费者订阅特定的Queue完成指定消息的接收。

6.Message:消息体,根据不同通信协议定义的固定格式进行编码的数据包,来封装业务数据,实现消息的传输。

同步技术

Dubbo是一种同步技术, 实时性高, controller层调用service层, 调用就执行。如果service层中的代码没有执行完, controller里面的代码一致等待结果.。

异步技术

MQ消息中间件技术是一种异步技术, 消息发送方, 将消息发送给消息服务器。消息服务器未必立即处理,什么时候去处理,主要看消息服务器是否繁忙,。消息进入服务器后会进入队列中, 先进先出.实时性不高

 

什么是JMS?

JSM的全称叫做Java message service (Java消息服务),是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。Java消息服务是一个与具体平台无关的API,绝大多数MOM(消息中间件)提供商都对JMS提供支持。

JMS消息服务器同类型技术

ActiveMQ:是Apache的一个比较老牌的消息中间件, 它比较均衡, 既不是最安全的, 也不是最快的。

RabbitMQ:RabbitMQ于2007年发布,是一个在AMQP(高级消息队列协议)基础上完成的,可复用的企业消息系统,是当前最主流的消息中间件之一。

RocketMQ:RocketMQ出自阿里的开源产品,用Java语言实现,在设计时参考了Kafka,并做出了自己的一些改进,消息可靠性上比Kafka更好。RocketMQ在阿里内部被广泛应用在订单,交易,充值,流计算,消息推送,日志流式处理,binglog分发等场景。

Kafka:Apache下的一个子项目。特点:高吞吐,在一台普通的服务器上既可以达到10W/s的吞吐速率;适合处理海量数据

JMS中支持的消息类型

①TextMessage:一个字符串对象

②MapMessage:key-value的Map对象

③ObjectMessage:一个序列化的 Java 对象

④BytesMessage:一个字节的数据流

⑤StreamMessage:Java 原始值的数据流

JMS中的两种发送模式

①点对点模式

一个发送方, 一个接收方。 也可以多个发送方,一个接收方,主要是接收方必须是一个。消息生产者生产消息发送到Queue中,然后消息消费者从Queue中取出并且消费消息。 消息被消费以后,Queue中不再存储,所以消息消费者不可能消费到已经被消费的消息。Queue支持存在多个消费者,但是对一个消息而言,只会有一个消费者可以消费。

②订阅发布模式

一个发送方,多个接收方, 发送方也可以是多个,主要看接收方,接收方必须是多个。发布一个消息,所有订阅这个Topic的服务都能得到这个消息,所以从1到N个订阅者都能得到一个消息的拷贝。

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值