pulsar使用过程中的坎坷

其实pulsar的安装算是比较简单的。主要分为两部分bookie和broker,而我们只需要将配置文件修改好,环境准备好基本都能安装运行了。

安装步骤我就不说了,有不知道的小伙伴可以去看看楼主其他博客,有步骤的讲解。

现在说一下安装时碰到的一个小问题,花费了楼主一下午的时间,才发现不是自己的问题。

1. 安装篇,配置

extraServerComponents=org.apache.bookkeeper.stream.server.StreamStorageLifecycleComponent

如果你配置了这个的话。当然坑不在此,楼主安装软件之后喜欢看启动的日志。也就是这个步骤发现了pulsar的一个小坑。

配置了extraServerComponents这个选项,会造成bookie.out启动日志中打印一条异常日志,当时楼主是第一次安装pulsar,发现日志感觉很奇怪,对比pulsar的安装文档仔细研读了一遍(后来又重新操作了一遍),发现自己操作的完全没错误。那是因为什么呢,看官网上有测试例子,使用了一下发现pulsar可以正常使用,使用客户端写好代码后发现生产消费都是正常的,但是这个异常因为什么呢???百思不得其解。后来经过询问pulsar官方人员才知道,是一个bug,2.2版本不支持这个功能,2.3版本的不清楚,直接在2.2上升级,此功能也没有开启。

2. 使用篇

- 游标功能:

前面写了一个博客专门讲解了游标的使用和回滚测试。现在说一下感受和坑吧。
因为项目需求,可能对一些topic有回滚的需求
对分区topic不支持游标回滚功能,但是提供的api只能创建分区topic。后来楼主想了一个点子,只使用其中一个分区,例如partitioned-0分区,后来测试果然可以使用游标回滚功能了,但是坑的点还不止于此,不论是seek(),还是resetCursor(),回滚的都不精确,没办法后来干脆不管理这个了,不回滚了。期待后期能有所改进吧

- ack批量提交处理功能

consumer.acknowledgeCumulative( message.getMessageId() );
这个的确可以批量回滚,这个没问题,但是批量提交ack之后,一段时间不消费你会发现它会抛出一个警告。
UnAckedMessageTracker.java:116 ## [ConsumerBase{subscription=‘32010’, consumerName=‘32010’, topic=‘persistent://xxxxx/xxx/32010_172.16.4.219-partition-0’}] 361 messages have timed-out
这个楼主不能忍,当时就看代码去了。因为有可能会造成消息的重复消费,这个问题就严重了。后来发现写的逻辑的确没什么问题。然后老方法询问官方,可能是bug。然后不死心的楼主在线下开始测试起来,发现数据量比较大的时候的确有这个现象,然后楼主测试是否回滚成功,发现也已经回滚成功,那这是为什么呢?经过询问pulsar官方人员,可能是个错误报警,等后续吧。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值