kafka初认识

集群配置

修改配置文件server.properties(在两台或多台上做同样的处理 broker.id 分别配0 1 2 三台 )

broker.id =0 当前机器序号0
num.io.threads=2
若log.dir有多个目录,那么该配置数应大于目录数,性能好一些
log.dir
消息持久化的目录,多个目录可用逗号隔开
持久化的时候,看哪个目录分区数最少,就放哪个
socket.send.buffer.bytes
发送缓存区大小
socket.receive.buffer.bytes
接收缓存区大小
socket.request.max.bytes
向kafka请求消息/发送消息 请求的最大数,不能超过java的堆栈大小
num.partitions
2 默认一个topic两个分区
log.retention.hours
消息在kafka上的有效期 默认168 7天

新增的几个配置:
message.max.byte
消息的大小
replica.fetch.max.bytes
消息的大小
default.replication.factor
副本的数量 2 两个副本

log.segment.bytes
消息持久化文件的最大大小

log.retention.check.interval.ms
每隔多长时间检查一下 是否有失效的消息

log.clear.eable
false 是否启用log压缩 这个配置很傻 一般不用

zookeeper.connect
zk集群的地址

启动

这里写图片描述

测试

根据官方文档验证 集群是否搭建成功
这里写图片描述

日志

这里写图片描述

kafka集群中controller的日志
server.log kafka的运行日志
state-change.log 状态切换日志,当zk的master有变更时

查看zk的目录

使用zk客户端连接zk
这里写图片描述
上面除了zookeeper目录,其他的都是kafka的目录,查看:
这里写图片描述
这里写图片描述

重要配置

这里写图片描述
consumer.properties
这里写图片描述
producer.properties
这里写图片描述
1. metadata 默认读server.properties的配置
2. producer.type
一般量小不用改
3. compression.codec
是否压缩
4. 序列化的类
可自己重写

### Kafka 手动提交偏移量时遇到的错误解决方案 在Flink中连接Kafka时,如果选择了手动提交偏移量的方式但仍遇到了提交失败的情况,这通常意味着存在一些底层问题需要排查。具体来说,当看到类似于“Auto-commit of offsets failed for group”的错误信息时,表明尽管是手动控制,但在尝试提交过程中依然出现了异常情况[^1]。 #### 诊断与修复措施 为了有效解决问题,建议按照如下几个方面来进行: - **确认网络状况良好**:确保客户端与Kafka集群之间的通信顺畅无阻塞,任何间歇性的断开都可能导致操作超时或失败。 - **验证Kafka集群健康度**:检查Broker节点的状态以及磁盘空间是否充足等硬件资源因素,这些都会影响到服务端能否及时响应来自消费者的请求。 - **审查消费者应用程序逻辑**:特别是关注负责执行`commitSync()` 或 `commitAsync()` 方法的具体实现部分。对于异步提交而言,应该始终准备好处理潜在发生的异常;而对于同步方式,则需留意其默认的行为是在发生不可恢复性错误时不抛出异常而是返回false值。 ```java // 使用 commitSync() 进行同步提交 try { consumer.commitSync(); } catch (CommitFailedException e) { // 处理提交失败的情形... } ``` - **调整配置参数优化性能表现** - 设置合理的`max.poll.interval.ms` 和 `session.timeout.ms` 参数以适应实际业务需求下的最大拉取间隔和会话存活周期; - 如果频繁遭遇再平衡事件干扰正常的消费流程,考虑适当增加`heartbeat.interval.ms` 的数值减少不必要的中断频率; - 对于高并发场景下可能出现的竞争条件所引发的数据不一致风险,可通过启用幂等性和事务特性加以规避[^2]。 - **针对特定版本Bug进行补丁更新**:有时某些已知缺陷仅存在于特定发行版之中,因此保持软件栈处于最新稳定状态有助于避免此类隐患带来的麻烦。 最后值得注意的是,在设计基于Kafka的应用架构之便应当充分认识到平台本身更侧重于追求极致吞吐能力而非绝对精确一次性语义的事实。这意味着即便采取了上述所有预防手段之后仍然无法完全杜绝偶尔出现的消息重复读取现象的发生概率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值