投放优惠券调试问题

来源:6-37 用户应用子系统 - Kafka 消费优惠券写入 HBase 服务逻辑校验

weixin_慕慕2501778

2020-03-10

在投放测试过程中我发现了一个问题,就是我投放的时候消息进入KAFKA后,发现HBASE没数据.。后来发现是因为passbook的工程没有启动,然而我启动passbook工程想看看kafka的消费情况,于是我在那打了个断点调试运行,发现了个奇怪的事情,同一条消息被触发了2次消费,多次试验都是这个情况。但是如果passbook工程先跑起来就没事。这个是什么情况呢?现实环境中,passbook可能宕机而其他部分是正常的情况也是可能的,那这样的话传递过来的消息数量不就出现了问题吗?

写回答

1回答

张勤一

2020-03-10

同学你好:

    Kafka 中投放的消息是按顺序投递到 Consumer 的,passbook 服务即使中断,但是消费的 offset 在 Kafka 中是有保存的(当然,会有重复消费的情况发生,这是由于 Consumer 消费之后,没有提交到 Kafka Broker 导致的)。我看你这里的情况是没有启动 passbook,所以,我感觉是代码或者配置本身的问题导致的。


    欢迎来 QQ 群随时交流、讨论,也非常感谢同学的支持!

1
1
weixin_慕慕2501778
代码就是和老师上课教的一样,这块比较困惑,我确实只发送了一条消息,但是如果passbook不提前启动而是在消息发出后启动的话ConsumePassTemplate的receive()就会触发多次这条消息,提前启动的话确实只触发一次。还有就是生产中如何保证同一条消息不会被重复消费的呢?
2020-03-10
共1条回复

Java分布式后台开发 Spring Boot+Kafka+HBase

从零到一完整搭建企业级架构的通用卡包工程,让你迈到百度T4+ 。

886 学习 · 221 问题

查看课程