开发者社区> 问答> 正文

消费者状态显示"是否在线" 为"否" 问题排查吗?

消息队列控制台,点击“消费者状态”,如果显示“是否在线”为“否”,那么说明消费端没有启动或者启动失败。



注意:目前仅支持SDK(TCP)客户端查看消费者状态,使用HTTP, MQTT的客户端,不支持在控制台查看消费者状态。



如何启动消费端?

用户需要写代码来启动消费端。

控制台上提供了java, .net, c++版本的发送消息和消费消息的示例代码供参考(点击“查看代码”),建议用户使用下载sdk包中的example代码。

为了方便用户调试消费端程序,控制台提供了发送消息的功能,用户可在消费端运行后,借助这个功能来调试程序。



如果启动消费端程序后,点击“消费者状态”,发现还是不在线,说明启动失败,请检查以下信息:

ak, sk是否书写正确

consumerID,topic信息是否书写正确

如果不是聚石塔用户,请将这行代码注释掉(如果示例代码中有)

factoryInfo.setOnsChannel(ONSChannel.CLOUD);

使用c++, .net的消费端,请检查sleep(N), N值是否足够大

pConsumer.start()后,主线程需要sleep(N),等不需要再消费时,再执行pConsumer.shutdown()。执行shutdown后,消费者的状态就会变为“当前订阅组未在线”。

N值多大合适?根据用户的业务需要来决定。

是否违背消息队列限制规则【点此查看】

如果问题依旧,请查看sdk日志中是否有ERROR异常抛出。

sdk日志路径如下:

java   $userhome/logs/ons.log    如果没有日志,请【点此查看】。

非java $userhome/logs/metaq-client4cpp/xxx.log

(如果是windows, 运行cmd, 看进入了哪个目录,此目录就是$userhome)。



如果问题还未能解决,请提供完整sdk日志,联系售后技术支持。

展开
收起
猫饭先生 2017-10-30 09:42:54 1966 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载