Kafka篇——消息队列基本知识,涵盖消息队列优势、消息队列的流派以及

为什么要使用消息队列

使用消息队列的原因有很多。以下是其中几个常见的原因:

  1. 解耦:通过使用消息队列,可以将应用程序之间的耦合降低到最低限度。发送方只需将消息发送到消息队列中,而不需要直接将消息发送给特定的接收方。接收方可以根据需要从消息队列中获取消息。

  2. 异步通信:消息队列允许发送方和接收方在不同的时间和速率下进行通信。发送方可以将消息发送到队列中,而不需要等待接收方处理该消息。接收方可以在适当的时间从队列中获取并处理消息。

  3. 缓冲和削峰填谷:当发送方和接收方的处理能力不匹配时,消息队列可以充当缓冲区。发送方可以将消息发送到队列中,而不需要等待接收方的处理。接收方可以按照自己的处理能力进行处理。

  4. 可靠性和持久化:消息队列通常具有高度可靠性和持久性。消息在发送到队列之前通常会被持久化,以确保消息不会丢失。此外,由于消息队列是分布式系统,因此即使其中一个节点出现故障,消息也能够被保留和处理。

  5. 扩展性:通过使用消息队列,可以很容易地扩展应用程序的吞吐量。通过增加消息队列的节点数量,可以平均分配负载和处理能力。

总之,使用消息队列可以提高系统的可扩展性、可靠性和灵活性,同时降低系统之间的耦合度。

一、使用同步的方式完成多个服务间的通信

二、使用异步的通信方式(消息队列的优势)
保证多个服务的任务都能够成功执行,也就是保证最终一致性,需要用到分布式事务

总结:
针对同步的通信方式来说,异步的方式,可以让上游快速成功,极大的提高了系统的吞吐量,而且在分布式系统中,通过下游
多个服务的分布式事务的保障,也能保障业务执行之后的最终一致性
最后再强调下,消息队列解决的具体的问题就是——通信问题

消息队列的流派

一、理解和认识MQ
MQ全称为Message Queue,即消息队列,是一种应用程序对应用程序的通信方法。它是一种中间件,用于在分布式系统中传递消息,使不同组件之间能够进行松散耦合的通信。其核心思想是生产者将消息发送到队列,而消费者从队列中接收并处理消息。
在MQ中,应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们。这种通信方式使得程序间的通信更加灵活和高效,因为消息可以在任何时间被发送和接收,而不需要等待对方程序的响应。
此外,MQ中的队列允许消息按照一定的顺序进行处理,从而确保了消息的有序性和可靠性。同时,队列的使用也消除了接收和发送应用程序同时执行的要求,使得系统更加稳定和可扩展。
市场上现在常用的消息队列有RabbitMQ、RocketMQ、Kafka、ActiveMQ等。这些消息队列产品在功能和性能上各有特点,可以根据具体需求进行选择和使用。

二、有Broker的MQ
这个流派通常有一台服务器作为Broker,所有的消息都通过他它中转,生产者把消息发送给它就结束了自己的任务,Broker则把消息主动推送给消费者(或者消费者主动轮询)

1、重Topic
Kafka、ActiveMQ就属于这个流派,生产者会发送key和数据到Broker,由Broker比较key之后决定给哪个消费者。这种模式是最常见的模式。topic某种意义上就是queue,生产者发送key相当于说:“hi,把数据放到key的队列中”。

2、轻Topic
topic只是其中一种中转方式

三、无Broker的MQ

至此,关于Kafka前请知识已经介绍完毕,后续还会持续更新关于Kafka相关技术点,敬请期待~~~

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Be explorer

若认可笔者文章,手头富裕望支持

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

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

打赏作者

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

抵扣说明:

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

余额充值