你好: HI:
我提的问题不是针对Pull客户端,也不是针对openmessaging标准,而是针对 rmq-4.2.0 中的openmessaging实现。 Actually I'm not confusing about the pull-client, nor about the openmessaging protocol, but the implementation of the openmessaging protocol in rmq-4.2.0. 在rocketmq-4.2.0中,有一块专门的openmessaging实现,我调用了其中的实现,然后发现的错误。我的提问是针对该实现,是否有不完善的地方,如何修正或者避免其中的坑。我为之前我邮件中说的不清楚的地方道歉。 There is an implementation of openmessaging in rocketmq-4.2.0. I used it and find the error. My problem is how the error appears in the implementation and how can I get over it. And I apologize for my confusing description; openmessaging 实现地址:https://github.com/apache/rocketmq/tree/master/openmessaging The url of the openmessaging-implementation: https://github.com/apache/rocketmq/tree/master/openmessaging -----原始邮件----- 发件人:"老胡" <2372554...@qq.com> 发送时间:2018-02-11 19:03:00 (星期日) 收件人: users <users@rocketmq.apache.org> 抄送: 主题: 回复: 回复: 回复:rep eat logging error when using openmessaging 你好! 你的问题不在openmesseg标准,而是你使用了pull模式,pull不负责维护offset 你在使用pull请求数据的时候,offset计算错误,offset值小于0,过不了校验,报异常,在你提供的异常信息里面十分明确。这不是rocketmq问题。 使用push模式,或者你自己维护offset,使用pull。 ------------------ 原始邮件 ------------------ 发件人: "朱蔚林"<zhuwei...@iie.ac.cn> 发送时间: 2018年2月11日(星期天) 晚上6:47 收件人: "users"<users@rocketmq.apache.org>; 主题: Re: 回复: 回复:rep eat logging error when using openmessaging 你好: HI, rocketmq-4.2.0中实现了openmessaging标准,我调用的就是该实现,这也是我的问题所在。 Openmessaging is implemented in rocketmq-4.2.0, which I use in my project. I'm just confused where is the mistake in the openmessaging-implementation. -----原始邮件----- 发件人:"老胡" <2372554...@qq.com> 发送时间:2018-02-11 17:45:52 (星期日) 收件人: users <users@rocketmq.apache.org> 抄送: 主题: 回复: 回复:repeat logging error when using openmessaging 你好! rocketmq的client只有push维护offset,pull不维护offset的。 push模式下的offset维护分两种,一种是集群方式的维护,会定时发送给broker。一种是广播方式的维护,是保存在本地的。 openmessaging是标准。没有具体的实现。从你的错误上看。openmessaging调用的rocketmq的client,client目前没有发现有问题。多谢。 ------------------ 原始邮件 ------------------ 发件人: "朱蔚林"<zhuwei...@iie.ac.cn>; 发送时间: 2018年2月11日(星期天) 下午5:40 收件人: "users"<users@rocketmq.apache.org>; 主题: 回复: 回复:repeat logging error when using openmessaging 你好! Hi, 多谢分析! Thanks for your attention. 实际上,offset是由openmessaging内部的定时任务来维护的(在报错的错误栈中有调用顺序),所以我想知道的是,是否有人能用过openmessaging的包,该包是否有坑。 Acturally, the offset of rmq is set by openmessaging-implementation. What I would like to know is that if there is anyone who has tried openmessaging-implementation and know why error appears. 朱蔚林 发件人: 老胡 发送时间: 2018-02-11 16:49 收件人: users 主题: 回复:repeat logging error when using openmessaging 你好!异常十分明显。 org.apache.rocketmq.client.exception.MQClientException: offset < 0 这里 你传递的offset坐标有问题。 你使用的pull模式,offset需要自己维护,如果你无法自己维护offset,可以使用push模式。 ------------------ 原始邮件 ------------------ 发件人: "朱蔚林"<zhuwei...@iie.ac.cn>; 发送时间: 2018年2月11日(星期天) 下午4:41 收件人: "users"<users@rocketmq.apache.org>; 主题: repeat logging error when using openmessaging Hi all, I meet a problem when pulling data from rocketmq using openmessaging implementation. During my usage, I did get data, but at the same time I also got error message in my log file. I got a 70GB error log per day. In my error log file, the same error repeated like this: 2018-02-11 16:40:19,882 [ERROR] [io.openmessaging.rocketmq.consumer.PullConsumerImpl$1.doPullTask(PullConsumerImpl.java:151)] [PullMsgThread-5_nm_test_group_12115] - A error occurred in pull message process. org.apache.rocketmq.client.exception.MQClientException: offset < 0 For more information, please visit the url, http://rocketmq.apache.org/docs/faq/ at org.apache.rocketmq.client.impl.consumer.DefaultMQPullConsumerImpl.pullSyncImpl(DefaultMQPullConsumerImpl.java:175) at org.apache.rocketmq.client.impl.consumer.DefaultMQPullConsumerImpl.pull(DefaultMQPullConsumerImpl.java:161) at org.apache.rocketmq.client.impl.consumer.DefaultMQPullConsumerImpl.pull(DefaultMQPullConsumerImpl.java:156) at org.apache.rocketmq.client.consumer.DefaultMQPullConsumer.pull(DefaultMQPullConsumer.java:251) at io.openmessaging.rocketmq.consumer.PullConsumerImpl$1.doPullTask(PullConsumerImpl.java:133) at org.apache.rocketmq.client.consumer.MQPullConsumerScheduleService$PullTaskImpl.run(MQPullConsumerScheduleService.java:172) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ScheduledThreadPoolExecutor201(ScheduledThreadPoolExecutor.java:180) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) Is there anybody who has ever used openmessaging implementation and knows how it happens and how to avoid it ? rmq version: 4.2.0, Java version: 1.8_25. Thanks a lot. -------------- zhuwei...@iie.ac.c