美文网首页
rabbitmq之mqtt的坑(qos2 not support

rabbitmq之mqtt的坑(qos2 not support

作者: zhuyuansj | 来源:发表于2018-12-13 01:05 被阅读0次

    之前的文章中我也有介绍mqtt,这次遇到一个问题,让我百思不得其解,由于之前在我的调试之下解决了问题,主要是部署在服务器上的mqttServer用的clientid和我本地测试用的代码用的clientid重复了,后来纠正后可以正常使用了,但是最近又不能用了,想想哪里肯定又又设置问题了。
    遇到这种问题的解决思路有。

    1.首先想想最近做了什么可能会影响到rabbitmq?
    2.查看rabbitmq下的log日志,查看配置报什么错
    3.在服务器中进入到rabbitmq的日志中,用cd /var/log/rabbitmq
    tailf rabbit@dev-shxjhl-shipinzhuang-01.log
    加载日志,然后再调用mqtt,看看报什么错
    

    以下是报错信息


    image.png

    主要报错信息是qos2 not supported,意思是不支持rabbitmq_web_mqtt
    于是我进入到服务器执行了rabbitmq-plugins enable rabbitmq_web_mqtt发现是not found


    image.png

    然后执行指令rabbitmq-plugins list查看,再rabbitmq_mqtt前面有E*说明插件已经安装并启用,但是rabbitmq_web_mqtt确没有,所以怀疑是rabbitmq的版本问题。于是查看官网发现rabbitmq的最新版本是3.7.9,而我centos上的版本是3.6的,怪不到没有rabbitmq_web_mqtt插件了。于是我重新下载了最新版本的rabbitmq,另外还需要使用最新版的elang安装即可.

    image.png
    安装成功后
    1.rabbitmqctl stop_app:关闭应用(关闭当前启动的节点)
    2.rabbitmqctl reset:从管理数据库中移除所有数据,例如配置过的用户和虚拟宿主, 删除所有持久化的消息(这个命令要在rabbitmqctl stop_app之后使用),重置以后,用户,虚拟vhost,都会清除
    3.rabbitmqctl start_app:启动应用,和上述关闭命令配合使用,达到清空队列的目的
    4.username and password are both "admin"  设置用户名和密码
    rabbitmqctl add_user admin admin
    rabbitmqctl set_permissions -p / admin".*" ".*" ".*"
    rabbitmqctl set_user_tags admin management
    设置用户名和密码都是admin,并设置虚拟主机(virtual host的作用就相当于给rabbitmq又设置了另外一个mq服务器,并且每个virtual host都是独立,可以做到解耦,这样在做大型项目的时候,比如订单服务可以设置/order_virtual,短信服务/message_virtual等
    

    本次解决mqtt的qos2 not supported,阅读了以下相关文章,学到的东西还是不少的。

    常用mqtt指令:
    cd /var/log/rabbitmq
     tailf rabbit@dev-shxjhl-shipinzhuang-01.log  这个主要是查看日志,其他日志也可以使用tailf
    1)常用的一些查询和设置命令行
    rabbitmqctl list_queues:查看所有队列信息
    rabbitmqctl stop_app:关闭应用(关闭当前启动的节点)
    rabbitmqctl start_app:启动应用,和上述关闭命令配合使用,达到清空队列的目的
    rabbitmqctl reset:从管理数据库中移除所有数据,例如配置过的用户和虚拟宿主, 删除所有持久化的消息(这个命令要在rabbitmqctl stop_app之后使用),重置以后,用户,虚拟vhost,都会清除
    rabbitmqctl force_reset:作用和rabbitmqctl reset一样,区别是无条件重置节点,不管当前管理数据库状态以及集群的配置。如果数据库或者集群配置发生错误才使用这个最后的手段
    rabbitmqctl status:节点状态
    rabbitmqctl add_user username password:添加用户
    rabbitmqctl list_users:列出所有用户
    rabbitmqctl list_user_permissions username:列出用户权限
    rabbitmqctl change_password username newpassword:修改密码
    rabbitmqctl add_vhost vhostpath:创建虚拟主机
    rabbitmqctl list_vhosts:列出所有虚拟主机
    rabbitmqctl set_permissions -p vhostpath username ".*" ".*" ".*":设置用户权限
    rabbitmqctl list_permissions -p vhostpath:列出虚拟主机上的所有权限
    rabbitmqctl clear_permissions -p vhostpath username:清除用户权限
    rabbitmqctl -p vhostpath purge_queue blue:清除队列里的消息
    rabbitmqctl delete_user username:删除用户
    rabbitmqctl delete_vhost vhostpath:删除虚拟主机
    

    相关文章:
    chrome调试mqtt
    window安装MQTT服务器和client
    MQ 客户端收发 MQTT 消息

    酷炫MQTT实现消息推送
    RabbitMQ远程访问配置
    解决RabbitMQ远程不能访问的问题
    RabbitMQ远程调用测试用例
    rabbitmq_mqtt官网
    rabbitmq_web-mqtt官网
    rabbitmq常用命令行汇总

    相关文章

      网友评论

          本文标题:rabbitmq之mqtt的坑(qos2 not support

          本文链接:https://www.haomeiwen.com/subject/voimhqtx.html