现象
BI的同事发现某指标数据展示有问题,发现最近入库的数据缺失,然后反馈到DBA. 经DBA排查后发现原始数据缺少.
排查
- 之前笔者在休假,同事初步排查怀疑是消息阻塞导致.经过代码调整发版之后发现还是有情况发生.
- 笔者接手之后,在本地打印指定点位的消息,发现没有丢失消息的情况.(15分钟一条消息)
于是在线上系统中添加了打印指定点位的日志.(发版下班) - 第二天,查看日志发现有缺失情况,本地打印继续开启 发现没有复现
于是查询消费组,收集到一组 host(ip)
@Test
public void showGroupInfo() throws ExecutionException, InterruptedException {
String id = "kafka消费组id";
DescribeConsumerGroupsResult describeConsumerGroupsResult = admin.describeConsumerGroups(Collections.singleton(id));
final KafkaFuture<Map<String, ConsumerGroupDescription>> all = describeConsumerGroupsResult.all();
final Map<String, ConsumerGroupDescription> stringConsumerGroupDescriptionMap = all.get();
final Set<Map.Entry<String, ConsumerGroupDescription>> entries1 = stringConsumerGroupDescriptionMap.entrySet();
for (Map.Entry<String, ConsumerGroupDescription> stringConsumerGroupDescriptionEntry : entries1) {
final ConsumerGroupDescription value = stringConsumerGroupDescriptionEntry.getValue();
final Collection<MemberDescription> members = value.members();
for (MemberDescription member : members) {
String s1 = member.consumerId();
String host = member.host();
String s = member.clientId();
String s2 = member.assignment().toString();
System.out.printf("clientId[%s],memberId[%s],host[%s],assignment[%s]%n", s, s1, host, s2);
}
}
}
- 找运维同事查看ip之后发现了另一个项目,拉取jar反编译之后发现配置文件中kafka 消费者 groupId 配置相同
- 反馈相关项目负责人
疑问
如何统一管理/监控 kafka group 划分 避免此类问题发生?
kafka groupId 是否要按照微服务项目来划分?
声明:本站所发布的一切破解补丁、注册机和注册信息及软件的解密分析文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。