storm 0.10.0 kafkaSpout 总是读取旧消息 offset丢失问题

Storm开发免不了本地测试,storm 0.9.6的版本一切正常,升级到0.10.0本地localCluster运行出现了问题。
kafkaSpout每次启动读取消息都是from-beginning。
经过各种测试,普通的kafka消费者没有这个错误,而且提交到集群也没问题。

网上大量查找解决办法,终于找到了

原文地址:http://www.bubuko.com/infodetail-672915.html

KafkaSpout的配置中有两个地方可以用到Zookeeper

用Zookeeper来记录KafkaSpout的处理进度,在topology重新提交或者task重启后继续之前的处理进度。在SpoutConfig中的zkServers,
zkPort和zkRoot与此相关。如果zkServer和zkPort没有设置,那么KafkaSpout会使用Storm集群所用的Zookeeper记录这些信息。

问题就出在上面这一段,没有配置zkServer和zkPort,尽管这些数据zkHosts里面都包含了,但是这两个字段还是要配置。

ZkHosts zkHosts = new ZkHosts("192.168.3.3:2181");
        String zkRoot = "/kafka";
        String zkSpoutId = "kafka";
        SpoutConfig kafkaConfig = new SpoutConfig(zkHosts, topic, zkRoot, zkSpoutId);
        KafkaSpout ks = new KafkaSpout(kafkaConfig);

        kafkaConfig.zkPort = 2181;
        List<String> servers = new ArrayList<>();
        servers.add("192.168.3.3");
        kafkaConfig.zkServers = servers;

        logger.info("KafkaSpout Create Success.");

记录下来,引以为戒。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值