zoukankan      html  css  js  c++  java
  • 物联网架构成长之路(60)-消息队列服务RabbitMQ(安装篇)

    一、前言

       这张图,前面已经说到了,物联网平台推送给客户应用服务器(APP应用),除了用传统的RPC远程调用。还可以使用RabbitMQ这种消息队列来进行推送。RabbitMQ之类的MQ这里就不展开细说了。

      下面这张图是 OneNet 后台截图,里面的MQ推送和HTTP推送,就是我上面说到的两种方式。 

      

    二、安装RabbitMQ

      通过默认的 apt-get install rabbitmq-server 安装会安装3.6 版本,比较旧,一些配置也不通用。所以到官网上早新版本进行安装。

      https://www.rabbitmq.com/install-debian.html#apt

     1 #!/bin/sh
     2 
     3 ## If sudo is not available on the system,
     4 ## uncomment the line below to install it
     5 # apt-get install -y sudo
     6 
     7 sudo apt-get update -y
     8 
     9 ## Install prerequisites
    10 sudo apt-get install curl gnupg -y
    11 
    12 ## Install RabbitMQ signing key
    13 curl -fsSL https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc | sudo apt-key add -
    14 
    15 ## Install apt HTTPS transport
    16 sudo apt-get install apt-transport-https
    17 
    18 ## Add Bintray repositories that provision latest RabbitMQ and Erlang 23.x releases
    19 sudo tee /etc/apt/sources.list.d/bintray.rabbitmq.list <<EOF
    20 ## Installs the latest Erlang 23.x release.
    21 ## Change component to "erlang-22.x" to install the latest 22.x version.
    22 ## "bionic" as distribution name should work for any later Ubuntu or Debian release.
    23 ## See the release to distribution mapping table in RabbitMQ doc guides to learn more.
    24 deb https://dl.bintray.com/rabbitmq-erlang/debian bionic erlang
    25 ## Installs latest RabbitMQ release
    26 deb https://dl.bintray.com/rabbitmq/debian bionic main
    27 EOF
    28 
    29 ## Update package indices
    30 sudo apt-get update -y
    31 
    32 ## Install rabbitmq-server and its dependencies
    33 sudo apt-get install rabbitmq-server -y --fix-missing

      注意: 如果按照遇到依赖问题,比如旧版本没有卸载干净的,或者linux内核版本比较低的,可以试一下用 aptitude 这个工具来安装。

      我自己安装的时候出现下面的问题。是用aptitude 工具来解决。

    1 apt-get install aptitude
    2 aptitude install rabbitmq-server

      上图提示,保留默认依赖。输入n,提示下图,提示是否强制安装,再输入Y

      安装成功界面

    三、启动插件

      新版本3.7以上,自带有rabbitmq_auth_backend_http 和 rabbitmq_auth_backend_cache 插件,所以不需要单独安装。但是还是需要手动启用。

      3.1 启用rabbitmq_management

    1 rabbitmq-plugins enable rabbitmq_management
    2 rabbitmq-plugins list

      3.2 amqp默认开启5672,控制台默认开启15672. 开启控制台management插件后,默认是有guest/guest帐号密码。但是由于仅限于本地登录。需要远程登录,则需要创建新的用户。

    1 # root权限
    2 rabbitmqctl add_user username passwd  //添加用户,后面两个参数分别是用户名和密码
    3 rabbitmqctl set_permissions -p / username ".*" ".*" ".*"  //添加权限
    4 rabbitmqctl set_user_tags username administrator  //修改用户角色,将用户设为管理员

      详细命令参考

      https://www.cnblogs.com/cwp-bg/p/10070467.html

      登录后界面

    四、启用http认证插件

      3.7以前是需要单独到github下载插件。新版本3.7以上直接启用插件即可。

    1 # 查询所有插件
    2 rabbitmq-plugins list
    3 # 启用对应插件
    4 rabbitmq-plugins enable rabbitmq_auth_backend_http
    5 rabbitmq-plugins enable rabbitmq_auth_backend_cache

      对应插件配置请参考官方文档: https://github.com/rabbitmq/rabbitmq-server/blob/master/docs/rabbitmq.conf.example

      配置文件在 /etc/rabbitmq/rabbitmq.conf 如果没有,则创建,并配置如下信息。

    1 auth_backends.1 = cache
    2 auth_cache.cached_backend = http
    3 
    4 auth_http.http_method   = post
    5 auth_http.user_path     = http://localhost:8080/auth/user
    6 auth_http.vhost_path    = http://localhost:8080/auth/vhost
    7 auth_http.resource_path = http://localhost:8080/auth/resource
    8 auth_http.topic_path    = http://localhost:8080/auth/topic

      重启rabbitmq服务

    1 service rabbitmq-server restart

      然后配置对应的SpringBoot的Controller提供的user、vhost、resource、topic接口,就可以实现对帐号的认证,对topic、resource的权限控制。

      代码开发部分,请阅读《物联网架构成长之路》之消息队列服务RabbitMQ(代码篇)

    参考资料:

      https://www.rabbitmq.com/documentation.html
      https://www.rabbitmq.com/install-debian.html#apt
      https://www.cnblogs.com/cwp-bg/p/10070467.html

    本文地址:https://www.cnblogs.com/wunaozai/p/13921968.html
    本系列目录: https://www.cnblogs.com/wunaozai/p/8067577.html
    个人主页:https://www.wunaozai.com/

  • 相关阅读:
    命令拷屏之网络工具
    PHP 设计模式 笔记与总结(1)命名空间 与 类的自动载入
    Java实现 计蒜客 1251 仙岛求药
    Java实现 计蒜客 1251 仙岛求药
    Java实现 计蒜客 1251 仙岛求药
    Java实现 蓝桥杯 算法训练 字符串合并
    Java实现 蓝桥杯 算法训练 字符串合并
    Java实现 蓝桥杯 算法训练 字符串合并
    Java实现 LeetCode 143 重排链表
    Java实现 LeetCode 143 重排链表
  • 原文地址:https://www.cnblogs.com/wunaozai/p/13921968.html
Copyright © 2011-2022 走看看