JavaDriver JavaDriver
首页
  • 基础
  • 并发
  • JVM
  • 设计模式
  • 计算机网络
  • 操作系统
  • 数据结构
  • 算法
  • MYSQL
  • REDIS
  • Netty
  • Kafka
系统设计
非技术
关于
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

YoungAnn

西二旗Java老司机一枚 致力于社会主义添砖Java
首页
  • 基础
  • 并发
  • JVM
  • 设计模式
  • 计算机网络
  • 操作系统
  • 数据结构
  • 算法
  • MYSQL
  • REDIS
  • Netty
  • Kafka
系统设计
非技术
关于
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • Netty

  • Kafka

    • Kafka
    • 生产者
    • 消费者
    • 集群下的Kafka要考虑哪些事情
    • 如何保证Kafka的可靠性
  • 中间件
  • Kafka
YoungAnn
2020-05-21

Kafka

# 主题和分区

kafka通过主题对消息分类。 kafka通过分区实现数据冗余和伸缩性。 一个主题包含多个分区,所以在topic内消息可能是无需的,但是在单个partition内部是有序的。

# 生产者和消费者

生产者创建消息,发布到一个特定的主题上,消息会均衡在所有分区上。 消费者订阅一个或者多个主题,按照生产顺序消费消息。 偏移量是一种元数据,是一个不断递增的整数值,消费者通过偏移量来区分已经消费的消息。每个分区有唯一的偏移量,消费者把最后消费的消息的偏移量发送到broker或者zookeeper保存。 消费者群组多个消费者共同读取一个主题,有唯一的groupId,群组保证,每个分区只能被一个消费者使用。

# broker和集群

broker是一个独立的kafka 服务器。负责接收生产者的消息,为消息设置偏移量,提交消息到磁盘保存。是集群的组成部分。 集群控制器是集群中的一个broker。负责分区分配和broker监控。 分区首领。一个分区会分配给多个broker,这种复制机制是为了提供消息冗余。在这多个broker中需要有一个分区首领,消费者只消费分区首领的消息,分区首领负责把消费的offset同步到冗余分区中。

编辑 (opens new window)
上次更新: 2022/05/22, 00:01:01
Java NIO了解吗?
生产者

← Java NIO了解吗? 生产者→

最近更新
01
电商-商品系统设计
12-17
02
关于如何写OKR
12-09
03
对事不对人 vs 对人不对事
12-09
更多文章>
0 comments
Anonymous
Error: Not Found.
Markdown is supported

Be the first person to leave a comment!

Theme by Vdoing | Copyright © 2022-2025 YoungAnnn | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式