【kafka】Kafka的Topic

打印 上一主题 下一主题

主题 1869|帖子 1869|积分 5607

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
1.基本概念

1.1 界说



  • 1.Topic是Apache Kafka中的一个核心概念,是消息发布和订阅的基本单位。
  • 2.可以将其类比为一个文件夹,生产者将消息发布到特定的Topic中,消费者从该Topic中订阅并读取消息。
  • 3.Topic是Kafka中用于分类存储消息的逻辑概念。
  • 4.每个Topic可以被分别为一个或多个Partition(分区),消息以追加的方式写入Partition。
1.2 作用



  • 1.提供了一种将消息按主题分类的机制。
  • 2.支持多生产者发布消息和多消费者订阅消息。
2.组成布局

2.1 Partition(分区)



  • 1.每个Topic由一个或多个Partition组成。
  • 2.Partition是Kafka中并行处理惩罚的基本单位,每个Partition可以存储在不同的Broker上。
  • 3.Partition内的消息是有序的,但不同Partition之间的消息顺序不保证。
2.2 Segment(段)



  • 1.每个Partition进一步分别为多个Segment,用于存储实际的消息数据。
  • 2.Segment由日志文件(.log)和索引文件(.index)组成,便于消息的快速检索和删除。
2.3 Replica(副本)



  • 1.为了进步容错性,每个Partition可以有多个Replica。
  • 2.其中一个是Leader Replica,负责处理惩罚读写哀求;其他的是Follower Replica,用于数据备份。
3.核心特性



  • 1.高吞吐量:通过Partition的并行处理惩罚和批量写入,Kafka能够实现高吞吐量的消息通报。
  • 2.可扩展性:可以根据必要增加Partition的数量,以支持更多的消息量和更高的并发度。
  • 3.长期性:消息被长期化存储在磁盘上,支持消息的重复读取和长时间存储。
  • 4.容错性:通过Replica机制,确保在部分Broker故障时,消息仍然可用。
4.创建与管理

4.1 创建Topic



  • 1.可以使用Kafka提供的下令行工具kafka-topics.sh创建Topic。
  • 2.示例下令:
  1. kafka-topics.sh --create --topic my-topic --bootstrap-server localhost:9092 --partitions 3 --replication-factor 2
  2. --topic:指定Topic名称。
  3. --partitions:指定Partition数量。
  4. --replication-factor:指定Replica数量。
复制代码


  • 3.查看Topic列表示例:
  1. kafka-topics.sh --list --bootstrap-server localhost:9092
复制代码


  • 4.描述Topic详情示例:
  1. kafka-topics.sh --describe --topic my-topic --bootstrap-server localhost:9092
复制代码


  • 5.删除Topic示例:
  1. kafka-topics.sh --delete --topic my-topic --bootstrap-server localhost:9092
复制代码
5.配置参数

5.1 Retention(保存策略):



  • 1.retention.ms:消息保存的时间(毫秒)。
  • 2.retention.bytes:Topic可以存储的最大数据量(字节)。
5.2 Cleanup Policy(清理策略):



  • 1.delete:根据保存策略删除旧消息。
  • 2.compact:对消息进行压缩,保存每个Key的最新Value。
5.3 其他参数



  • 1.num.partitions:Partition数量(创建后不可更改)。
  • 2.replication.factor:Replica数量。
6.使用场景



  • 1.日志网络:将不同来源的日志消息发布到不同的Topic中,便于后续的处理惩罚和分析。
  • 2.实时数据流处理惩罚:作为数据源,供流处理惩罚框架(如Apache Flink、Apache Spark Streaming)消费。
  • 3.事件驱动架构在微服务架构中,使用Topic实现服务间的异步通信。
  • 4.消息队列:作为分布式消息队列,解耦生产者和消费者。
7.计划建议



  • 1.合理设置Partition数量:
    根据预期的吞吐量和并发度,合理设置Partition数量。
    过多的Partition会增加管理开销,过少的Partition可能限定性能。

  • 2.选择合适的Replica数量:
    在保证容错性的前提下,避免过多的Replica导致性能下降。

  • 3.考虑消息的保存策略:
    根据业务需求,选择合适的保存时间和清理策略。

  • 4.命名规范:
    使用故意义的Topic名称,便于管理和维护。

8.与Partition的关系



  • 1.并行处理惩罚:Partition是实现并行处理惩罚的关键,不同的Partition可以并行地处理惩罚消息。
  • 2.消息顺序:同一个Partition内的消息是有序的,但不同Partition之间的消息顺序不保证。
  • 3.负载平衡:生产者可以将消息发布到不同的Partition,消费者组中的消费者可以订阅不同的Partition,实现负载平衡。
9 监控与管理



  • 1.监控指标:消息流入和流出速率。
    Partition的Leader和Follower状态。
    消息的滞后情况(Consumer Lag)。

  • 2.管理工具:
    Kafka自带的下令行工具。
    第三方监控工具,如Prometheus、Grafana、Confluent Control Center等。


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

怀念夏天

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表