基于arm64系统架构搭建EMQX(MQTT消息引擎)

​ 由于毕业设计需要一个本地的局域网内智能家居中控,经过多方考虑,翻出了吃灰已久的树莓派3b+,同时EMQ是一款国产的高性能消息代理服务器。功能也挺强大,使用也挺简单。

类别 性能 License
EMQ X Broker 十万级 开源免费
EMQ X Enterprise 百万级 官网免费30天
EMQ X Platform 千万级 付费、享受技术支持

软硬件准备

本文记录如何在树莓派中搭建EMQX,硬软件背景如下:

  • 树莓派3b+

  • 输入arm64架构的系统,(原因是官方没有提供amd64的系统,本文刷入了Ubuntu Mate 18.04)

安装Docker Engine-Ubuntu

控诉血泪史,由于技术不到位,EMQX提供的Ubuntu的安装都是amd64位系统架构的,arm64无法安装,期间还试过了下载ZIP文件解压使用和下载EMQ源码编译都以失败告终,最后选择Docker.

Docker

Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。

Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。

容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。

Docker的应用场景

  • Web 应用的自动化打包和发布。
  • 自动化测试和持续集成、发布。
  • 在服务型环境中部署和调整数据库或其他的后台应用。
  • 从头编译或者扩展现有的 OpenShiftCloud Foundry 平台来搭建自己的 PaaS 环境

安装步骤

  1. 为确保安装顺利,卸载旧的版本:

    sudo apt-get remove docker docker-engine docker.io containerd runc
    

    更新apt包索引:

    sudo apt-get update
    
  2. 在新主机上首次安装Docker Engine-Community之前,需要设置Docker存储库。之后,您可以从存储库安装和更新Docker,通过HTTP获取并设置存储库:

    sudo apt-get install \
        apt-transport-https \
        ca-certificates \
        curl \
        gnupg-agent \
        software-properties-common
    
  3. 更新apt索引:

    sudo apt-get update
    
  4. 添加Docker的官方GPG密钥:

    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
    

    9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88通过搜索指纹的后8个字符,验证您现在是否拥有带有指纹的密钥

  5. 验证密钥:

    sudo apt-key fingerprint 0EBFCD88
    

    会有如下反应:

    pub   rsa4096 2017-02-22 [SCEA]
          9DC8 5822 9FC7 DD38 854A  E2D8 8D81 803C 0EBF CD88
    uid           [ unknown] Docker Release (CE deb) 
    sub   rsa4096 2017-02-22 [S]
    
  6. 设置稳定的存储库:

    To add the nightly or test repository, add the word nightly or test (or both) after the word stable in the commands below. Learn about nightly and test channels.

    sudo add-apt-repository \
       "deb [arch=arm64] https://download.docker.com/linux/ubuntu \
       $(lsb_release -cs) \
       stable"
    

    注意:下面的lsb_release -cs子命令返回Ubuntu发行版的名称,例如xenial。有时,在Linux Mint等发行版中,您可能需要更改$(lsb_release -cs) 为父Ubuntu发行版。例如,如果您使用 Linux Mint Tessa,则可以使用bionic。Docker不对未经测试和不受支持的Ubuntu发行版提供任何保证。

  7. 更新apt索引:

    sudo apt-get update
    
  8. 安装最新版本的Docker Engine-Community和containerd,或者转到下一步安装特定版本:

    sudo apt-get install docker-ce docker-ce-cli containerd.io
    

    7.5 要安装特定版本的Docker Engine-Community,请在存储库中列出可用版本,然后选择并安装:

    一种。列出您的仓库中可用的版本:

    apt-cache madison docker-ce
    
      docker-ce | 5:18.09.1~3-0~ubuntu-xenial | https://download.docker.com/linux/ubuntu  xenial/stable amd64 Packages
      docker-ce | 5:18.09.0~3-0~ubuntu-xenial | https://download.docker.com/linux/ubuntu  xenial/stable amd64 Packages
      docker-ce | 18.06.1~ce~3-0~ubuntu       | https://download.docker.com/linux/ubuntu  xenial/stable amd64 Packages
      docker-ce | 18.06.0~ce~3-0~ubuntu       | https://download.docker.com/linux/ubuntu  xenial/stable amd64 Packages
      ...
    
  9. 检查是否成功安装v

    docker -v
    

    更多的Docker命令

安装EMQX

  1. 下载所需版本的EMQX版本;

  2. 下载对应的.zip后:

    unzip emqx-xxxxxxx.zip
    
  3. 导入本地镜像:

    docker load < "解压出来的包名"
    
  4. 运行容器:

    docker run -d --name emqx31 -p 1883:1883 -p 8083:8083 -p 8883:8883 -p 8084:8084 -p 18083:18083 "此处是容器名"
    

    如:
    基于arm64系统架构搭建EMQX(MQTT消息引擎)_第1张图片

    sudo docker run -d --name emqx31 -p 1883:1883 -p 8083:8083 -p 8883:8883 -p 8084:8084 -p 18083:18083 emqx/emqx:v3.2.7-alpine3.9-arm64v8
    
  5. 启动emqx

    sudo docker start emqx31
    
  6. 检验是否成功安装:

    树莓派ip:18083
    

初始账号:admin,密码:public


我的个人博客

我的Github

你可能感兴趣的:(IoT入门到实战)