基于Docker和Docker-compose自建MQTT服务器

【摘要】  一、EMQ X消息服务器简介参考如下链接https://docs.emqx.cn/cn/broker/latest/1.简介  EMQ X (Erlang/Enterprise/Elastic MQTT Broker) 是基于 Erlang/OTP 平台开发的开源物联网 MQTT 消息服务器。  Erlang/OTP是出色的软实时 (Soft-Realtime)、低延时 (Low-Late...

 一、EMQ X消息服务器简介

参考如下链接

https://docs.emqx.cn/cn/broker/latest/

 

1.简介

  EMQ X (Erlang/Enterprise/Elastic MQTT Broker) 是基于 Erlang/OTP 平台开发的开源物联网 MQTT 消息服务器。

  Erlang/OTP是出色的软实时 (Soft-Realtime)、低延时 (Low-Latency)、分布式 (Distributed)的语言平台。

  MQTT 是轻量的 (Lightweight)、发布订阅模式 (PubSub) 的物联网消息协议。

  EMQ X 设计目标是实现高可靠,并支持承载海量物联网终端的MQTT连接,支持在海量物联网设备间低延时消息路由:

  1)稳定承载大规模的 MQTT 客户端连接,单服务器节点支持50万到100万连接。

  2)分布式节点集群,快速低延时的消息路由,单集群支持1000万规模的路由。

  3)消息服务器内扩展,支持定制多种认证方式、高效存储消息到后端数据库。

  4)完整物联网协议支持,MQTT、MQTT-SN、CoAP、LwM2M、WebSocket 或私有协议支持。

2.EMQ X功能特性

3.应用场景

二、安装

EMQ X有多种安装方式,下面仅以linux下的安装进行简单说明

1.shell脚本一键安装

curl https://repos.emqx.io/install_emqx.sh | bash

 

2.包管理器安装(Linux)

    1)安装依赖包

    $ sudo yum install -y yum-utils device-mapper-persistent-data lvm2

    2)设置稳定存储库

    $ sudo yum-config-manager --add-repo https://repos.emqx.io/emqx-ce/redhat/centos/7/emqx-ce.repo

    3)安装最新版本的EMQ X Broker

    $ sudo yum install emqx

    4)启动EMQ X Broker

    $ emqx start

    emqx 4.0.0 is started successfully!

    $ emqx_ctl status

    Node 'emqx@127.0.0.1' is started

    emqx v4.0.0 is running

    $ sudo systemctl start emqx

    4)停止EMQ X Broker

    $ emqx stop

    5)卸载EMQ X Broker

    $ sudo yum remove emqx

    

 

3.docker安装

    1)获取docker镜像

    $ docker pull emqx/emqx:v4.0.0

    $ wget -O emqx-docker.zip https://www.emqx.io/downloads/broker/v4.0.0/emqx-docker-v4.0.0-alpine3.10-amd64.zip

    $ unzip emqx-docker.zip

    $ docker load < emqx-docker-v4.0.0

    2)启动docker容器

 

 

4.使用docker-compose创建集群(本次重点)

 

    1)创建docker-compose.yml文件

    参见下表示例

    2)启动集群

    $ docker-compose -p my_emqx up -d

    3)查看集群

    $ docker exec -it my_emqx_emqx1_1 sh -c "emqx_ctl cluster status"

    Cluster status: #{running_nodes => ['emqx@node1.emqx.io','emqx@node2.emqx.io'],

     stopped_nodes => []}

version: '3'

services:
  emqx1:
    image: emqx/emqx:v4.0.0
    environment:
    - "EMQX_NAME=emqx"
    - "EMQX_HOST=node1.emqx.io"
    - "EMQX_CLUSTER__DISCOVERY=static"
    - "EMQX_CLUSTER__STATIC__SEEDS=emqx@node1.emqx.io, emqx@node2.emqx.io"
    healthcheck:
      test: ["CMD", "/opt/emqx/bin/emqx_ctl", "status"]
      interval: 5s
      timeout: 25s
      retries: 5
    networks:
      emqx-bridge:
        aliases:
        - node1.emqx.io
  
  emqx2:
    image: emqx/emqx:v4.0.0
    environment:
    - "EMQX_NAME=emqx"
    - "EMQX_HOST=node2.emqx.io"
    - "EMQX_CLUSTER__DISCOVERY=static"
    - "EMQX_CLUSTER__STATIC__SEEDS=emqx@node1.emqx.io, emqx@node2.emqx.io"
    healthcheck:
      test: ["CMD", "/opt/emqx/bin/emqx_ctl", "status"]
      interval: 5s
      timeout: 25s
      retries: 5
    networks:
      emqx-bridge:
        aliases:
        - node2.emqx.io

networks:
  emqx-bridge:
    driver: bridge

来源:华为云社区。点击这里→了解更多精彩内容(同时获取华为云服务器折扣)

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值