当前位置: 首页 > news >正文

学习小记-Kafka相较于其他MQ有啥优势?

Kafka 相比于 RocketMQ 有以下几个优势:

1. 高吞吐量和低延迟
   Kafka 以其出色的 I/O 性能和分布式架构设计,能够实现极高的吞吐量,每秒数百万的消息处理能力,适合大规模数据流处理。同时,Kafka 设计为低延迟系统,适合实时数据处理。

2. 水平扩展性
   Kafka 通过分区机制,可以轻松扩展,支持大规模分布式部署。每个主题可以有多个分区,分区分布在不同的 Broker 上,用于存储主题的消息,这使 Kafka 可以在多台机器上处理、存储消息,提供了并行的消息处理能力和横向扩容能力。

3. 持久化存储
   Kafka 将所有的消息持久化存储在磁盘上,确保数据不会丢失。它采用多副本机制,使得数据可以在集群中的多个节点间进行复制,提供故障容忍和高可用性。

4. 容错性
   Kafka 具备高度的容错性,即使在节点故障的情况下仍能保持数据的可靠传输。当集群中的某个节点失效时,生产者和消费者可以自动重定向到其他可用节点,确保消息的连续性。

5. 多语言支持
   Kafka 提供了丰富的客户端 API,支持多种编程语言,如 Java、Python、Go 和 Scala 等,使得开发者能够轻松地将 Kafka 集成到他们的应用程序中。

6. 异步处理
   Kafka 支持异步处理模式,允许生产者和消费者之间以异步方式进行通信。这使得后端的业务流程可以并行执行,提高处理效率。

7. 流量削峰
   Kafka 可以作为流量削峰的工具,通过缓冲大量实时数据,防止后端系统过载。

8. 消息压缩特性
   Kafka 支持消息的压缩存储,能够有效地减少存储成本和网络带宽使用,特别是在处理大量日志数据时,这一特性尤为有用。

9. 社区支持与生态
   Kafka 有一个非常活跃的社区,提供了大量的文档、教程和示例代码,同时还有丰富的第三方插件和工具,这些都大大降低了学习和使用 Kafka 的难度。

10. 事务消息支持
    Kafka 的事务消息支持经过多次优化,现在已经相当成熟,主要特点是精确一次语义(Exactly Once Semantics),这意味着在生产和消费过程中,每条消息都只会被处理一次,从而避免了重复消费和消息丢失的问题。

11. 部署和运维
    Kafka 的部署和运维相对简单,其分布式架构使得它能够轻松扩展集群规模。同时,Kafka 提供了丰富的监控和诊断工具,方便进行系统运维和管理。

这些优势使得 Kafka 在处理大规模数据流、实时数据处理和构建数据管道等方面表现出色。
 

Kafka为啥这么快?

kafka在消息的每个阶段都有其快速的特点

消息发送阶段快,是因为上面介绍的1、2、6、8特性。

在消息存储阶段快,是因为它使用了

  1. 零拷贝技术:mmap+write、DMA等
  2. 磁盘顺序写入:减少磁头寻道时间
  3. 页缓存:先将消息加载到操作系统的页缓存中,并在缓存页中保留一份副本
  4. 稀疏索引、分区和副本

在消费消息阶段:使用它一下三大措施:

消费者群组、并行消费、批量拉取。

http://www.lryc.cn/news/403943.html

相关文章:

  • 技能 | postman接口测试工具安装及使用
  • 移动UI:任务中心的作用,该如何设计更合理?
  • pytorch学习(十)优化函数
  • Ubuntu22.04:安装Samba
  • Powershell 使用介绍
  • 【Langchain大语言模型开发教程】记忆
  • 最新Qt6的下载与成功安装详细介绍
  • LeetCode 热题 HOT 100 (001/100)【宇宙最简单版】
  • Ubantu 使用 docker 配置 + 远程部署 + 远程开发
  • 应用层自定义协议与序列化
  • Python学习笔记—100页Opencv详细讲解教程
  • C语言·分支和循环语句(超详细系列·全面总结)
  • Gateway源码分析:路由Route、断言Predicate、Filter
  • ARM体系结构和接口技术(十)按键中断实验①
  • PostgreSQL使用(二)——插入、更新、删除数据
  • 有关css的题目
  • 【开源库】libodb库编译及使用
  • 电力需求预测挑战赛笔记 Task3 #Datawhale AI 夏令营
  • Promise 详解(原理篇)
  • 动态内存经典笔试题分析
  • JS设计模式(一)单例模式
  • uniapp动态计算并设置元素高度
  • 直播架构如何设计核心节点和边缘节点
  • 自动驾驶-预测概览
  • 基于PSO算法优化PID参数的一些问题
  • 什么是决策树?
  • ASP 快速参考
  • (二)原生js案例之数码时钟计时
  • [CSS] 浮动布局的深入理解与应用
  • Linux云计算 |【第一阶段】ENGINEER-DAY2