中间件相关概述

参考学习慕课网教程记录笔记
https://www.imooc.com/learn/856

为很么使用中间件

通过服务调用让其他系统感知事件发生

一个用户登录会触发很多事件

这里写图片描述

服务调用会一直增加,会调用外部的系统,

通过消息中间件解耦服务调用

利用消息中间件,用户登录后 发起消息给消息中间件,之后中间件异步发送给
其他服务

这里写图片描述

返回登录结果不必等待其他服务完成了。

消息中间件带来的好处:

解耦

异步

横向扩展

安全可靠

顺序保证

消息中间件概述

什么是中间件:
非底层操作系统软件,非业务应用软件,不是直接给最终用户使用的,
不能直接给客户带来价值的软件统称为中间件

这里写图片描述

什么是JMS

java消息服务,是一个java平台中关于面向消息中间件的API,用于在两个
应用程序之间,或分布式系统中发送消息,进行异步通信

什么是 AMQP

是一个提供统一消息服务的应用层标准协议,基于此协议的客户端与消息
中间件可传递消息,并不受客户端/中间件不同产品,不同开发语言等条件的限制

这里写图片描述

ActiveMQ

ActiveMQ是 Apache出品,最流行的,能力强劲的开源消息总线。
ActiveMQ是一个完全支持 JMS1.1和J2EE1.4规范的JMS Provider实现,
尽管JMS规范出台已经是很久的事情了,但是JMS在当今的J2EE应用中
仍然扮演着特殊的地位

特性:

多种语言和协议编写客户端。

语言:java,c,c++,c#,ruby,perl,python,php

应用协议: OPenWire,Stomp,REST,WS Notifcation,XMPP,AMQP

完全支持 JMS1.1和 J2EE1.4规范(自救花,XA消息,事务)

虚拟主题,组合目的,镜像队列

RabbitMQ

是一个开源的AMQP实现,服务端用 Erlang语言编写,用于在分布式系统中
存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。

这里写图片描述

Kafka

这里写图片描述

特性:
这里写图片描述

综合:

这里写图片描述

中小企业:ActiveMQ

稳定性要求高的:RabbitMQ

应用在大数据日志或实时的:Kafka

JMS规范

提供者: 实现 JMS规范的消息中间件服务器

客户端: 发送或接收消息的应用程序

生产者/发布者:创建并发送消息的客户端

消费者/订阅者:接收并处理消息的客户端

消息:应用程序之间传递的数据内容

消息模式:在客户端之间传递消息的方式,JMS中定义了主题和队列的两种模式

队列模型

客户端包括生产者和消费者

队列中的消息只能被一个消费者消费

消费者可以随时消费队列中的消息

这里写图片描述

主题模式:

客户端包括发布者和订阅者

主题中的消息被所有订阅者消费

消费者不能消费订阅之前就发送到主题中的消息

这里写图片描述

JMS编码接口

ConnectionFactory 用于创建连接到消息中间件的连接工厂

Connectio 代表应用程序和消息服务器之间的通信链路

Destination 指消息发布和接收的地点,包括队列或主题

Session 表示一个单线程的上下文,用于发送和接收消息

NessageConsummer 由会话创建,用于接收发送到目标的消息

MessageProducer 由会话创建,用户发送消息到目标

Message 是在消费者和生产者之间传递的对象,消息头,一组消息属性,一个消息体

这里写图片描述

猜你喜欢

转载自blog.csdn.net/qq_28295425/article/details/79932322