采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师您好,消费者的关闭可以通过consumer.close();方法来关闭,但是在消费者一直运行的情况下,怎么从外部再获取到该consumer对象执行其close方法将其关闭呢?或者是用别的什么关闭方法?
最简单的肯定是提供个接口了, 不过这个问题的目标是什么呢
大致就是有个按钮,希望用户点击按钮就可以关闭kafka消费者,终于是获取到了消费者对象,可是执行其close的方法时,会报错,提示的意思是说消费者不允许从其他的线程去关闭它,哪个线程启动的,就必须哪个线程关闭,然后又查了一下,使用wakeup去关闭,但看了下官方api对wakeup的说明,其中明确提到不要使用该方法来关闭消费者?
没有特别理解你的场景, 不过我们目前是单个线程创建Consumer, 消费完成消息以后就直接关闭了。 为什么会出现其他线程关闭另一个线程的Consumer的情况呢
嗯谢谢老师,我们做的是一个ETL工具,所以系统比较复杂,现在这个关闭的问题已经解决了,我不直接调用它的close方法,而是将while(true)中的判断条件换成了一个flag,要关闭的时候把flag设为false,自然就会退出循环了,这时候就可以再执行到close方法将其关闭了
登录后可查看更多问答,登录/注册
系统讲解Kafka,实战结合,让你成为使用Kafka的高手
1.5k 2
1.3k 13
1.4k 10
2.7k 10
2.3k 8
购课补贴联系客服咨询优惠详情
慕课网APP您的移动学习伙伴
扫描二维码关注慕课网微信公众号