惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

H
Help Net Security
The GitHub Blog
The GitHub Blog
F
Fortinet All Blogs
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Simon Willison's Weblog
Simon Willison's Weblog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Cisco Talos Blog
Cisco Talos Blog
P
Privacy & Cybersecurity Law Blog
I
Intezer
Y
Y Combinator Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
N
Netflix TechBlog - Medium
The Hacker News
The Hacker News
AWS News Blog
AWS News Blog
aimingoo的专栏
aimingoo的专栏
A
About on SuperTechFans
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Stack Overflow Blog
Stack Overflow Blog
Hacker News: Ask HN
Hacker News: Ask HN
酷 壳 – CoolShell
酷 壳 – CoolShell
量子位
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
B
Blog
T
Tor Project blog
C
Cybersecurity and Infrastructure Security Agency CISA
云风的 BLOG
云风的 BLOG
博客园_首页
V2EX - 技术
V2EX - 技术
T
Threat Research - Cisco Blogs
腾讯CDC
宝玉的分享
宝玉的分享
博客园 - 叶小钗
罗磊的独立博客
S
Securelist
The Last Watchdog
The Last Watchdog
Google Online Security Blog
Google Online Security Blog
Scott Helme
Scott Helme
博客园 - 司徒正美
W
WeLiveSecurity
有赞技术团队
有赞技术团队
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
S
Secure Thoughts
NISL@THU
NISL@THU
N
News and Events Feed by Topic
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
雷峰网
雷峰网
大猫的无限游戏
大猫的无限游戏
K
Kaspersky official blog
IT之家
IT之家

Kafka

请问一下,多节点消费 kafka 如何做到串行消费 Kafka 消息处理冲突问题 - V2EX kafka king 陆续也快有 100 个 star 了,虽然很少,但是也是对我的认可,感谢大家 - V2EX 求助一个 zookeeper 配置 acl, kafka 是否需要做相关修改的问题 - V2EX 2023 年基于 Kafka 做重试队列的最佳实践? - V2EX kakfa 生产者的 ack=all 的参数会受到 broker 的最小同步副本参数的影响吗 - V2EX kafka 的 producer 和 broker 的关系是什么? - V2EX kafka 性能问题: kafka 传递海量小数据的时候,需要合并数据发送吗 - V2EX 有无 kafka 八股文或者书籍推荐 - V2EX 有什么好用的 kafka 桌面客户端? - V2EX kafka Kraft 模式增加投票节点配置后启动报错 - V2EX kafka-console-consumer.sh 同时读取某个 topic 的所有 partition 能实现吗? - V2EX 请教一个使用 HAProxy 代理访问 kafka 集群的问题 - V2EX kafka stream 拓扑的几个疑问 在生产环境中,向 kafka 发送图片消息是否合适 - V2EX kafka 消费者平滑退出一般是怎么做的? 请教 kafka 独立消费者 如果崩溃了如何获取 offset? - V2EX 关于 kafka 丢数据 - V2EX 如何获取 KRaft Kafka 的 controller leader - V2EX 如何从 Kafka 消费的数据中取最大值存储? - V2EX Kafka Stream 拓扑结构可视化 - V2EX Kafka 数据同步 - V2EX 请教一下 kafka group 数量比较大对 kafka 性能影响大吗 - V2EX 为什么很多场景数据先写入 kafka 再写入 elastic,而不是直接写 elastic? - V2EX Golang Kafka Writer 消息被截断 - V2EX kakfa producer 发消息会堵塞么? kakfa 的 producer 阻塞该怎么查 - V2EX 请问一下实际业务中, kafka 的消费者组一般应用于什么场景? - V2EX kafka 多线程消费是否必须手动提交 offset/partion 才能避免竞争 - V2EX 求一个基于 kafka 的消息消费框架 - V2EX kafka 如何实现每 10 秒拉一次数据? - V2EX 蹲一个 Kafka 大神,新增 partition 没有引起消费组的 rebalance,偶现 - V2EX kafka 如何知道生产者的 IP? - V2EX Python 消费 ka-f-a-k 时无限挂起,如何定位原因 - V2EX Python 消费 kafka 时无限挂起,如何定位原因 - V2EX 关于 PHP Rdkafka 消费者性能讨论 - V2EX xshell 无法使用 kafka 命令行发送消息到 topic - V2EX kafka 非常非常非常难用 - V2EX 有什么办法可以让 kafka 消费者走代理么? - V2EX 如何在消息消费者多实例(Cluster)的情况下保证应用级别的精确分发? - V2EX 各位大佬, zookeeper 加了 digest , kafka 要怎么改配置啊? - V2EX Kafka 需不需要设置安全认证 - V2EX springboot 集成 kafka 广播式消费 - V2EX kafka 疑惑,为什么随着 topic 增加,性能会急剧下降 - V2EX 求 kafka 的 docker 镜像? - V2EX 有老哥知道怎么给 kafka 某个 topic 创建消费组 - V2EX 准备写个基于 kafka 的延迟队列, 有感兴趣的吗 - V2EX 问一个消息队列的问题 - V2EX 有同学在生产环境里用过 Apache Kafka 么?能否分享一下你踩过的坑? - V2EX Kafka 内存陡然降低问题 - V2EX
[Kafka] 求助, 同一个服务如何组播消费 kafka 某个 topic 的消息呢? - V2EX
BBCCBB · 2020-08-21 · via Kafka

这是一个创建于 2124 天前的主题,其中的信息可能已经有所发展或是发生改变。

我现在用的是启动的时候动态生成 groupId, 比如 name + uuid 的方式

但是这样重启后就会导致原来的 consumerGroup 对应的实例都被销毁了.但 kafka 里依然存在原来的 consumerGroup, 监控上看已经被销毁的 consumerGroup 也会发现堆积越来越严重, 有谁知道正确的使用姿势吗??

不胜感激

😢

useben

1

useben      2020 年 8 月 21 日

生成唯一 groupId, 存到文件, 启动时读文件, 有就用原来的, 没有再生成写到文件...

BBCCBB

2

BBCCBB      2020 年 8 月 21 日

@useben 这个在固定机器上是可以的, 但我们这里 docker 镜像每次都不知道到哪个机器上了. 😢

SingeeKing

3

SingeeKing      2020 年 8 月 21 日 via iPhone

环境变量?

hustmisa

4

hustmisa      2020 年 8 月 21 日

首先 consumer 的使用业务需求是什么,新启动的 groupId 对启动期间的数据是否可以丢弃?
如果可以丢弃 kafka 配置 retention 很短就可以了,这样不会堆积;如果不能丢弃,配置 retention 长一些这样重启换 groupId 也能续接数据(大概是你现在的方式),但是就不要频繁换 groupId 了啊。我是这么理解的不知道对不对

BBCCBB

5

BBCCBB      2020 年 8 月 21 日

@SingeeKing 都是同一个服务, 不同实例,这个不方便给每个实例加环境变量, 哈哈

@hustmisa 可以丢弃, 因为应用上有 ack 超时重试机制, 要命的是重启后老的 groupId 不会自动心跳超时消失, 会在监控上看到消息不断堆积. 其实我想实现的就是 rocketmq 的广播的功能.. 但我们使用 kafka.

mosesyou

6

mosesyou      2020 年 8 月 21 日

为什么用唯一或者固定的 groupId 不行

zardly666

8

zardly666      2020 年 8 月 21 日

用 redis 做一个类似选 ID 的东西,服务启动份数等于 ID 份数。

for (int i = 0; i < 启动份数; i++) {
if (redisUtil.setnx( + i, “lockthing”,time )) {
bucketConfig.setConsumeZsetBucketNum(i);
log.info("此实例的消费者为" + i);
break;
}
}

服务启动的时候,第一个服务拿到 consumerId+1 ;
第二个服务拿到 consumerId+2 ;
这样,就复用几个了吧。

zardly666

9

zardly666      2020 年 8 月 21 日

代码没删干净,大概意思就是服务启动动态去拿自己所属的 consumer

wisej

10

wisej      2020 年 8 月 21 日 via Android

另一种思路,服务同一个 groupid,分发由服务自己来做(拿到服务其它实例的 ip )

另外旧 cg 堆积会有什么负面影响么?除了消息会冗余地保存,直到 retention 设置的时间被清除

sonice

11

sonice      2020 年 8 月 21 日

想多了,consumerGroup 堆积能有多少,起停一次多一个,也不会有很多啊。这也不会导致 zk 性能降低啊

amwyyyy

12

amwyyyy      2020 年 8 月 21 日

原来 consumerGroup 的堆积只是个数字,消息数据只有一份,不管你有几个 consumerGroup 。过期的 consumerGroup 会被清理掉。

kifile

13

kifile      2020 年 8 月 21 日

我的理解,题主的意思是因为 ConsumerGroup 的 GroupId 每次重启会重新生成一个新的,导致监控面板上出现了废弃的 groupId 的 Lag 不断增大的现象。

如果重启时 Consumer 的 offset 没有什么意义,那就在重启新应用前,删除老的 ConsumerGroup,做一个这种策略不就好了?

BBCCBB

14

BBCCBB      2020 年 8 月 21 日

@zardly666 这个倒是可以做, 类似 snowflake 算法 workid 的生成. 但相对较麻烦, 老哥但还有没有简单点的解决办法啊 😿
@wisej consumergroup 堆积就是监控上看着有点慌. 磁盘会占用.
@sonice 额, 我们多个实例发布的时候重启, 那就会一次性有多个 old consumerGroup, 监控上看着蛇皮的很, 比较难搞.
@kifile 是, 这是一种方案, 但开发没有 KafkaAdmin 的权限, 所以代码里删除不掉, 只能手动了.... 哈哈

谢谢各位, 期待更好的方案 🐶

mosesyou

15

mosesyou      2020 年 8 月 21 日

纯 docker 么,如果是 k8s 的话,用 statefulset,可以实现每个实例有固定递增编码 0,1,2....

BBCCBB

16

BBCCBB      2020 年 8 月 21 日

@mosesyou 我们将 docker 镜像上传到云上, 然后后续的流程我得研究一下, 问一下我们负责这一块的同事, 如果可行的话这得确是一个好办法. 多谢.

yangbonis

17

yangbonis      2020 年 8 月 21 日 via iPhone

mq 不是本来就组播工作的?所有订阅都会收到。

j2gg0s

19

j2gg0s      2020 年 8 月 21 日

@BBCCBB 瞎逼设计,每个实例根据消息在自己的内存里面做些什么工作吗?不能搞个 redis 或者 db ?

然后,kafka 的监控看到堆积是没有什么大影响的,因为消息只存一份。
如果你觉得不爽,可以在实例 shutdown 的时候了,把 consumergroup 注销掉?

BBCCBB

23

BBCCBB      2020 年 8 月 21 日

im 推消息, 量小, 所以还不想做路由中心. 所以采用广播.

rockyou12

25

rockyou12      2020 年 8 月 21 日

我觉得最好用其它 mq,kafka 本来就不适合这种场景,你这业务看起来也不需要持久化,redis 的 sub/pub 可能都够了

lwldcr

26

lwldcr      2020 年 8 月 21 日

你这个问题 加一个预处理步骤就可以了吧。

比如你一组应用有 10 个实例,那你提前分配好 groupId 名字,如 cg_1, cg_2,..., 然后存到一个地方:DB 、Redis 等

然后每个应用实例启动时 去存储的地方请求分配一个 groupId,用这个 groupId 启动 kafka 消费服务不就完事了

JKeita

27

JKeita      2020 年 8 月 21 日

固定 group id 每次启动清除 offset 怎样?

yty2012g

28

yty2012g      2020 年 8 月 21 日

固定 group id,每次设置 offset 到最新应该就可以满足

IamNotShady

29

IamNotShady      2020 年 8 月 21 日 via iPhone

redis 的 pub/sub 不香吗?

timonwong

31

timonwong      2020 年 8 月 21 日

原理是手动维护 offset,如果程序不死 retry 的时候保持 offset,程序死了从最新的来,可以按照自己的需求来调整。

不过有一点要注意的真的是 IM 的话,因为 kafka 的 partition reblance IO 相当大,可能造成非常大的 E2E 的 latency,这点要注意(虽然可以通过配置限制 IO 来绕过)。 总的来说,其实不适合 IM 这个场景