001-Kafka实践和基本原理

基本概念

Broker

处理消息的节点

Producer

消息生产者

Consumer

消息消费者

Topic

给消息归类

Partition

一个topic可以分多个Patition,物理上也是分区的,每个partition内部消息是有序的

ConsumerGroup

每个consumer都属于一个Group 消息可以被不同的Group消费,但是一个Group中只有一个Consumer能消费该消息

核心配置

broker.id

节点的标识

listeners

监听的ip和端口

log.dirs

日志目录

zookeeper.connect

zk链接地址

log.retention.hours

日志存储小时数
kafka是不删除数据的 就是把数据存储在log文件中
所以这个log其实是消息持久化的文件
默认168

启动命令

后台启动

bin/kafka-server-start.sh -daemon config/server.properties
启动之后会在zk上注册元数据信息

注册到zk

在这里插入图片描述

创建topic

创建名为topicName 的topic
bin/kafka-topics.sh --create --zookeeper ip:port --replication-factor 1 --partitions 1 --topic topicName
查看下有多少topic
bin/kafka-topics.sh --list --zookeeper ip:port

创建消息

bin/kafka-console-producer.sh --broker-list ip:port --topic topicName
然后直接写消息,回车后就发送了

消费消息

bin/kafka-console-consumer.sh --bootstrap-server ip:port --topic topicName

消费到消费者监听启动之前的消息

添加 --from-beginnig
bin/kafka-console-consumer.sh --bootstrap-server ip:port --from-beginning --topic topicName

消息模式

单播消息

利用Group中只能由一个consumer能消费特点实现

多播消息

利用一个消息可以能被多个Group消费实现

列出所有消费组

为什么能实现单播和多播呢
其实就是偏移量的记录维度是 Group

列出消费偏移量

bin/kafka-consumer-groups.sh --bootstrap-server ip:port --describe --group topicName

偏移量内容

这个偏移量消费者自己维护记录
GROUP : 消费组
Partition :0 分区
CURRENT-OFFSET :当前消费偏移量
LOG-END_OFFSET :消息总量偏移量
LAG : 剩余未消费消息

分区Partition

topic 是逻辑上的概念
Partition是物理上分区文件上
分区挂在topic上
原因:分布存储 提升性能

创建多分区的主题

bin/kafka-topics.sh --create --zookeeper ip:port --replication-factor 1 --partitions 2 --topic topicName
创建2个分区的topicName

分区扩容

只支持扩容不支持缩容

bin/kafka-topics.sh -alter --partitions 3 --zookeeper ip:port --topic topicName

集群

把id改为唯一并且zk的注册地址改成一个就能自动组成集群

具体配置

创建topic

bin/kafka‐topics.sh ‐‐create ‐‐zookeeper ip:prot ‐‐replication‐factor 3 ‐‐partitions 2 ‐‐topic topicName
给topic创建2个分区 每个分区3个副本‐‐replication‐factor 三个副本分散在集群中 有主有从
主节点负责写、如果主节点挂了重新选举
一般分区的主节点一般也会分散在集群中

Java Kafka客户端 key分片

如果指定个分区则使用指定分区
如果没有指定则 计算Hash后根据分区数量取模
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
《深入理解Kafka_核心设计与实践原理》是一本关于Kafka的重要著作,以下是对该书的简要回答。 该书主要通过系统地介绍Kafka的核心设计和实践原理,帮助读者深入理解Kafka的内部机制和工作原理。首先,书中详细介绍了Kafka的基本概念,包括Kafka集群的组成、主题和分区的概念等,为读者建立起对Kafka的基础认识。 接着,该书深入探讨了Kafka消息的存储和传输机制。阐述了Kafka如何将消息持久化到磁盘,并通过基于磁盘的顺序写性能实现高吞吐量的特点。同时,还介绍了Kafka的消息分区和副本机制,解释了如何通过分区和副本分散消息的负载并提供数据的冗余性。 此外,该书还深入研究了Kafka的消息传输过程。对生产者和消费者的工作原理进行了详细解读,包括消息的发送和订阅过程以及Kafka如何保证消息的可靠性传输。同时,介绍了Kafka的消费组和分区再均衡机制,以及与ZooKeeper的整合。 最后,该书还对Kafka的高级特性进行了介绍,包括事务支持、使用Kafka Streams进行流处理、使用Kafka Connect进行数据集成等内容,帮助读者进一步了解和应用Kafka的高级功能。 综上所述,《深入理解Kafka_核心设计与实践原理》是一本全面而深入的Kafka技术指南。通过阅读本书,读者可以深入理解Kafka的核心设计和实践原理,掌握Kafka的基本概念和工作原理,并能够应用Kafka解决实际问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值