1 中间件
中间件是介于操作系统和应用软件之间,为应用软件提供服务功能的软件,有消息中间件,交易中间件,应用服务器等。由于介于两种软件之间,所以,称为中间件。
2 消息中间件和消息队列
消息队列已经逐渐成为企业IT系统内部通信的核心手段。它具有低耦合、可靠投递、广播、流量控制、最终一致性等一系列功能,成为异步RPC的主要手段之一。当今市面上有很多主流的消息中间件,如老牌的ActiveMQ、RabbitMQ,炙手可热的Kafka,阿里巴巴自主开发RocketMQ等。
目前比较常用的一般是RabbitMQ和ActiveMA,RocketMQ
2.1 消息中间件的组成
- Broker作为server提供消息核心服务
- Producer消息生产者,业务的发起方,负责生产消息传输给broker,
- Consumer消息消费者,业务的处理方,负责从broker获取消息并进行业务逻辑处理
- Topic主题,发布订阅模式下的消息统一汇集地,不同生产者向topic发送消息,由MQ服务器分发到不同的订阅者,实现消息的广播
- Queue 队列,PTP模式下,特定生产者向特定queue发送消息,消费者订阅特定的queue完成指定消息的接收
- Message 消息体,根据不同通信协议定义的固定格式进行编码的数据包,来封装业务数据,实现消息的传输
MESSAGE+QUEUE = 消息队列
3消息中间件模式分类
3.1 点对点
PTP点对点:使用queue作为通信载体
3.2 发布/订阅
Pub/Sub发布订阅(广播):使用topic作为通信载体
推荐RabbitMQ