Kafka

Apache Kafka 是一个分布式的流处理平台,主要用于实时数据流的发布、订阅、存储和处理。它具有高吞吐量、低延迟和分布式架构的特点,广泛应用于日志处理、消息队列、事件流处理等场景。

核心概念

  1. Broker
Kafka的运行实例,负责存储和处理消息。一个Kafka集群由多个Broker组成,每个Broker用唯一的broker.id标识。
  1. Topic
消息的分类或逻辑通道,数据按Topic存储
  • Partition:每个Topic被分为多个分区,提供并行处理能力
  • Replica:分区的副本,用于实现容错
  1. Producer
发送消息的客户端,可以将数据发布到指定的Topic和分区。
  1. Consumer
订阅Topic并消费信息的客户端,通过消费组(Consumer Group)协调并行消费。
  1. Zookeeper(或KRaft)
Kafka使用Zookeeper存储元数据和协调集群操作

工作流程

  • 生产消息
Producer 将消息写入指定的 Topic,Kafka 会根据分区策略选择分区存储。
  • 消息存储
Kafka 按分区顺序存储消息,同时通过配置保留策略(时间或大小)来管理历史数据。
  • 消息消费
Consumer 从 Topic 的分区中拉取数据。消费组内的消费者分配分区以确保每个分区仅被一个消费者读取。

特性

  • 高吞吐量和低延时
采用顺序写磁盘和页面缓存技术,提供高性能。
  • 持久化和容错
数据持久化到磁盘,通过副本机制实现高可用
  • 可扩展性
增加Broker或分区可以扩展集群容量和性能。
  • 灵活的消息消费模式
支持点对点和发布订阅模式。
  • 分布式架构
数据分布在多个分区和Broker中,支持分布式处理。

典型应用场景

  1. 日志采集与处理:收集各系统的日志并统一存储和处理
  2. 实时流数据处理:用于事件流或传感器数据的实时处理
  3. 消息队列:替代传统的消息队列(如:RabbitMQ、ActiveMQ),用于异步通信和解耦系统
  4. 数据管道:在多个系统间传输和同步数据

配置和部署建议

  • Broker配置
    • 增加num.partitionslog.retention.hours来平衡性能和存储需求
    • 配置副本数量replication.factor保证容错能力
  • Producer配置
    • 优化批量发送数据的参数,如batch.sizelinger.ms
  • Consumer配置
    • 设置合适的max.poll.records和session.timeout.ms,以适应消费速率
  • 集群监控
    • 使用Kafka提供的JMX指标,结合工具如Prometheus和Grafana,监控Broker、Topic和Consumer状态

常用命令

https://cloud.tencent.com/developer/article/1844234
 
posted @   枯藤老樹昏鴉  阅读(7)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示