九张图带你掌握Kafka

如上图所述,Message Queue是一个在两个系统之间传输和存储消息的中间件。 其外观具有以下优点:

  • 去耦:只要您确保双方遵守相同的接口约束,就可以独立扩展或修改双方的处理。
  • 冗余:消息队列将数据保留到完成处理为止,从而避免了数据丢失的风险。 在许多消息队列采用的"插入-获取-删除"范式中,从队列中删除消息之前,您的处理系统需要清楚地表明该消息已被处理,以确保您的数据安全保存。 完成使用它。
  • 可伸缩性:由于消息队列使您的处理脱钩,因此,只要添加其他处理,就很容易增加消息入队和处理的频率。
  • 灵活性和高峰处理能力:在流量急剧增加的情况下,应用程序仍然需要继续发挥作用,但是这种突发流量并不是标准的。 毫无疑问,以能够处理高峰访问为标准来投资资源是巨大的浪费。 消息队列的使用可使关键组件承受突然的访问压力,而不会由于意外的过载请求而完全崩溃。
  • 可恢复性:当系统的某些部分发生故障时,它不会影响整个系统。 消息队列减少了进程之间的耦合,因此,即使处理消息的进程挂断了,恢复系统后仍可以处理添加到队列中的消息。
  • 顺序保证:在大多数使用情况下,数据处理的顺序至关重要。 大多数消息队列最初都是经过排序的,可以保证数据将按特定顺序进行处理。 (Kafka保证分区中消息的顺序)
  • 缓冲:有助于控制和优化通过系统的数据流速度,并解决生产消息和消耗消息的不一致处理速度。
  • 异步通信:很多时候,用户不希望也不需要立即处理消息。 消息队列提供了一种异步处理机制,该机制允许用户将消息放入队列,但不能快速处理。 将所需数量的消息放入队列,然后在需要时进行处理。

同时,我认为最大的缺点是复杂性,其优点完全可以忽略不计。

Kafka如何运作?

对于Kafka而言,从独立的角度来看,其中包括生产者,消费者和经纪人。

  • 生产者负责将消息发送到代理固定主题
  • 代理维护一组主题并管理该主题中的分区
  • 消费者,负责从经纪人的相应主题中提取消息
【声明】:芜湖站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

相关文章