作者:王聪明2011 | 来源:互联网 | 2023-08-04 14:08
1.中间件
首先说明消息中间件。 什么是中间件?
我的理解是,APP应用程序可以帮助其他APP应用程序、硬件、操作系统、网络、交互或通信的软件。
目的是将业务与底层逻辑分开。
属于中间件的领域还很广泛,如Redis、Zookeeper和Memcached。 实际上,对于体系结构体系内的中间件,他既没有涉及具体的业务逻辑,也没有涉及底层的硬件逻辑,而是用于用户数据的交换和管理。 和找房子/租房找中介一样,起着中介的作用。
那么为什么要使用中间件呢? 不是只要APP和服务之间直接调用就可以了吗? 也不费事
其实不然:其实不仅仅是中间件,所有的东西的出现都是为了能够在特定的领域解决问题,不同的中间件解决不同领域的问题。 例如,数据库中间件在库划分表、主从分离、web中间件在收到效果请求的过程中做额外的事情。
中间件主要是用于将业务逻辑与非业务逻辑解耦。
2.消息队列(MQ-Message Queue)
是包含创建时间、通道/主体信息的数据传输单位。
队列是高级线性规划体系(FIFO )的存储结构,它包括:
1 .顺序存储:从末尾插入数据,从开头提取数据。 数组后缀为0的一端为头,退出队伍时所有数据向前移动。 这样就有可能发生假溢出。 这有后面的循环队列。
2 .循环储存
使用队列的最常见场景是生产者/消费者模型。 生产者将消息排队,消费者从队列中接收消息。
消息队列(MQ )实现了生产者到消费者的单向通信模型,而RabbitMQ、RocketMQ、Kafka等常见MQ是实现该模型的消息中间件。
这将解决三个问题。
1 .去耦:减少服务间的耦合,由中间件负责中介。
2 )异步)用户下单时,系统需要订单生成、库存计算、发货计算等服务,但所有服务运行后返回用户信息会导致用户体验极差。 此时,可以让他异步执行发货服务,系统响应时间降低,用户体验提高。
3 .截峰:如果用户在某个时间点等访问量较大,直接添加服务器是不太现实的。 尽管如此,因为添加硬件很贵,所以此时可以将未处理的请求排队慢慢处理。 运行会慢一点,但保证系统不会崩溃。
3.消息代理
3358 www.Sina.com/message代理是一种用于验证、转换和路由消息的体系结构模型,大多数实施了中介。 实际上,它是消息中间件服务器,是中间件的核心。
消息队列遥测传输协议(mqtt )是在publish/subscribe模式硬件性能下降的远程设备和网络状况较差时设计的
4.MQTT
低功耗低带宽即时消息轻量级简单开放优点
医疗器械小型化设备智能家居通信物联网
总结:由于消息队列是一种消息中间件,所以mq大多是实现消息代理(中介)的生产者消费者单向通信模式的中间件。 消息队列主要用于缓解高并发性,其次是异步。