网站流量消耗计算,商标设计一个,产品推广方案怎么写,软件或网站是怎么做的目录 CMAK 各个功能的作用解释#xff08;主题#xff09;★ 主题★ 分区★ 创建主题#xff1a;★ 列出和查看主题 CMAK 各个功能的作用解释#xff08;主题#xff09; ★ 主题
Kafka 主题虽然也叫 topic#xff0c;但它和 Pub-Sub 消息模型中 topic 主题及 AMQP 的 t… 目录 CMAK 各个功能的作用解释主题★ 主题★ 分区★ 创建主题★ 列出和查看主题 CMAK 各个功能的作用解释主题 ★ 主题
Kafka 主题虽然也叫 topic但它和 Pub-Sub 消息模型中 topic 主题及 AMQP 的 topic 都不同AMQP 的 topic 只是 Exchange 的类型。
Kafka 的主题只是盛装消息的逻辑容器注意是逻辑容器主题之下会分为若干个分区分区才是盛装消息的物理容器。
▲ 消息组织方式实际上是三级结构主题 → 分区 → 消息。
▲ 主题只是消息的逻辑分类它只是发布消息的类别或消费源的名称。
发布消息时面向主题发布消息 消费消息时也面向主题消费 但实际会由 Kafka 将消息存储到分区中从分区中消费消息。
就是消息是存在分区中的但是发布和消费消息是面向主题来的。 ★ 分区
▲ 分区才是真正存储消息的地方分区在物理存储层面就是一个一个的日志文件就是数据文件这些日志文件保存在 server.properties文件下的 log.dirs属性 指定目录下。
▲ 分区文件都是一个有序的记录序列序列的数据项可通过下标访问下标从0开始如图所示 ▲ 分区文件的结构有点类似于 List 集合只不过 List 集合存储在内存中而分区文件则持久化地、存储在磁盘上。
消息被消费完成之后是不会自动从分区中移除的只能通过设置比如过某一段时间之后再从分区中移除。 ★ 创建主题
【备注】 Kafka 的 Broker 之间的地位是平等没有所谓谁是主Broker谁是副Broker的概念。
Kafka的主、从是体现在分区上的 分区可分为领导者分区主、追随者分区副。
领导者分区其实就是主分区对外提供服务。 追随者分区就是所谓副分区作用是作为主分区的后备。
kafka-topics.bat.sh命令可用于操作主题包括创建主题、删除主题及列出主题、查看主题等。 例如如下命令即可创建一个主题
^ 这个符号表示命令还没有写完要换一行
kafka-topics.bat --create ^ –bootstrap-server localhost:9092 ^ –replication-factor 2 ^ –partitions 3 ^ –topic test1
上面命令指定了如下几个选项
–create指定创建主题。
–bootstrap-server指定Kafka Broker的地址。
–replication-factor指定复制因子。此处指定的复制因子为2表明每个分区都有两个副本一个领导者副本一个追随者副本。
–partions指定该主题包含的分区数。此处指定的分区数为3表明该主题由3个分区组成。 –partions选项指定该主题由3个分区组成而–replication-factor指定每个分区有2个副本因此实际上该分区包含63 * 2个分区其中3个领导者分区3个追随者分区。
–topic指定主题名。 用命令行创建 topic 创建出来了如图 主题信息
因为分区是3复制因子是2所以一共有6个分区 因为我们弄了3个broker节点。 如图每个broker节点分配了两个分区 CMAK 界面创建topic 创建出来的主题 细看主题的分区之类的 因为分区是4复制因子是3所以一共有12个分区 因为我们弄了3个broker节点。 如图每个broker节点分配了4分区
分区的存放位置详解 ★ 列出和查看主题
▲ 可在CMAK列出和查看主题
▲ 也可使用 kafka-topics.bat 的 --list 选项来查看主题列表
kafka-topics.bat --list --bootstrap-server localhost:9092
Kafka 的 Broker 之间的地位是平等没有所谓谁是主Broker谁是副Broker的概念。所以这里就随便写其中一个broker的端口号来查看主题 如图跟 CMAK 显示的一样是3个主题。
▲ 可使用 kafka-topics.bat 的 --describe 选项来查看指定主题的详细信息。
kafka-topics.bat --describe --bootstrap-server localhost:9092 --topic 主题名
kafka-topics.bat --describe --bootstrap-server localhost:9092 --topic test2 不知道怎么查看不知道有哪些命令的时候可以直接输kafka-topics 这个命令来看。