全部产品
存储与CDN 数据库 安全 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 阿里云办公 培训与认证 物联网
消息队列 MQ

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

更新时间:2017-06-07 13:26:11

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

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

 

如何启动消费端?

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

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

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

 

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

  1. ak, sk是否书写正确

  2. consumerID,topic信息是否书写正确

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

    factoryInfo.setOnsChannel(ONSChannel.CLOUD);

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

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

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

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

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

sdk日志路径如下:

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

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

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

 

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

 

 

 

 

 

 

本文导读目录