• 物联网架构成长之路(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/

  • 相关阅读:
    看opengl写代码(7) 使用混合数组(glInterLeavedArrays)
    三层交换机静态路由配置实现两网互通
    [leetcode] Insertion Sort List(python)
    Android 4.4环境搭建——配置AVD模拟器
    QlikView格式化某一个单元格
    浅谈触发器
    为什么镜像是左右而不是上下颠倒:4星|《环球科学》2018年08月号
    “第一公里”仍鲜被问津:4.5星|《财经》2018年第19期
    用故事做营销或管理,相关的8本书
    知识付费与内容创业相关的书9本
  • 原文地址:https://www.cnblogs.com/wunaozai/p/13921968.html
Copyright © 2020-2023  润新知