一文了解消息队列MQ(超详细+干货满满)

本文介绍了消息队列MQ的概念,与RPC的差异,包括它们的工作原理、特点、应用场景,如解耦、流量削峰等,并列举了ActiveMQ、RabbitMQ、Kafka、RocketMQ和ZeroMQ等常见消息队列的特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原文章链接:消息队列MQ快速入门(概念、RPC、MQ实质思路、队列介绍、队列对比、应用场景)_zmq rpc-CSDN博客

基本定义:MQ是一种进程间通信或同一进程的不同线程间的通信方式,队列就是一个消息容器,在具体应用中,我们将消息队列称之为中间件,消息队列不存储消息内容本身,只是消息的搬运工

要理解MQ,就需知RPC通信模型,RPC(全程Remote Procedure Call,远程过程调用),是一个可以像调用本地服务一样调用远程服务的计算机通信协议.

从本质上看,RPC一般对于客户端来说是一种同步的远程服务调用技术,而一般来说MQ是异步的远程调用

实体对象:
服务提供者(provider):提供具体的调用方法的系统,根据上图也就是服务端,服务端才是方法真正的提供者
服务消费者(consumer):调用服务的系统,根据模型图,也就是客户端
序列化(Serialization):将对象转换为便于进行网络传输的二进制或文本数据的过程
反序列化(Deserialization):二进制或文本数据再还原为对象的过程

RPC调用步骤:
1.建立通信:消费者要想调用提供者的方法,首先要和提供者建立通信连接,主要是通过客户端和服务器之间建立TCP连接实现的
2.服务寻址:寻址实现的是确定提供者的IP、端口号以及方法的名称
3.网络传输:消费者发起一个RPC调用时,将调用方法和参数的数据进行序列化传输给提供者,再通过网络传输将二进制数据发送回给消费者
4.服务调用:提供者进行本地调用后得到了返回值,提供者将返回值进行序列化操作后,再通过网络传输将二进制数据发送回给消费者
1.MQ的特点:面向数据、生产者与消费者、有缓冲节点、异步、系统级/模块级通信
2.MQ适用场景:
1、消息的发送者和消费者需要解耦(发送者和消费者都不再直接交互,而是通过中间件间接交互,实现了解耦)
2、发送者并不明确谁是消费者(也是因为发送者和消费者不进行直接交互)
3、发送者并不关心谁来消费信息(理由同上)
4、各个消费者可以从不同的角度入手处理消息
5、消费者的处理结果也不返回给发送者
6、消息的发送和处理是异步的
7、消息的关注者不止一个
3.MQ使用总结,也就是计算结果不要求立即返回给消息的发送者时,应该使用MQ,例如日志服务、业务监控服务


1.RPC特点:面向动作、请求响应模式、同步、对象级/函数级通信
2.RPC适用场景
1、客户端必须明确要调用哪个服务器
2、调用需要立即得到返回结果
3、架构简单
3.RPC使用总结,如果服务的调用需要在短期内返回结果时,并且同一个请求的关注者只有一个,这个时候就应该使用RPC

消息队列实质思路一发一存一消费

原始模型的两个关键词:消息和队列
消息:需要传输的数据,可以是最简单的文本字符串,也可以是自定义的复杂格式
队列:一种先进先出的数据结构,在这里是存放消息的容器,入队即发消息的过程,出队即收消息的过程
过程:生产者将消息投递到一个叫做队列的容器中,然后再从容器中取出消息,最后转发给消费者
LVS(Linux Virtual Server)是一种基于 Linux 系统的负载均衡集群技术,它主要用于将网络流量分发到多个服务器上,以提高系统的可靠性、可扩展性和性能。 LVS 集群一般包括四个组件:调度器(LVS 调度器)、前端服务器(负载均衡器)、后端服务器(真实服务器)和存储服务器(用于共享数据)。首先,调度器接收来自客户端的请求,然后根据配置的调度算法(如轮询、加权轮询、最小连接数等)将请求分发到多个前端服务器。前端服务器接收到请求后,通过相应的负载均衡算法将请求转发到后端的真实服务器上进行处理。在整个过程中,存储服务器用于存放共享的数据,以确保所有的真实服务器都能获取到相同的数据,并提供一致的服务。 LVS 集群的优点是能够提高网站的稳定性和可靠性,当某一台服务器出现故障时,调度器会自动将请求分发到其他可用的服务器上,从而保证服务的连续性。同时,LVS 集群还能够通过增加前端服务器和后端服务器的数量来提高系统的性能和吞吐量,以满足不断增长的用户需求。 在实际应用中,LVS 集群需要合理配置,包括选择合适的调度算法、调整每台服务器的权重、选择适当的硬件设备等。此外,还需要及时监控集群的运行状态,及时发现和解决故障,以确保整个系统的正常运行。 总的来说,LVS 负载均衡集群是一种强大而高效的集群技术,能够帮助企业提高系统的可靠性和性能,是现代互联网应用中不可或缺的重要组成部分。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GeekInk失控

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值