docker-compose安装emqx集群(最新)(host模式)

news2024/11/26 14:32:51

机器:
10.60.0.20

10.60.0.21

10.60.0.22

一、三台机子都配置域名(/etc/hosts)

10.60.0.20 node1.emqx.io
10.60.0.22 node3.emqx.io
10.60.0.21 node2.emqx.io

二、docker-compose.yml(10.60.0.21)
其他两台机子自己替换EMQX_NODE_NAME(节点名)

version: '3.9'

services:
  emqx1:
    image: emqx:5.6.1
    container_name: emqx1
    environment:
      - "TZ=Asia/Shanghai"
      - "EMQX_NODE_NAME=emqx@node1.emqx.io"
      - "EMQX_CLUSTER__DISCOVERY_STRATEGY=static"
      - "EMQX_CLUSTER__STATIC__SEEDS=[emqx@node1.emqx.io,emqx@node2.emqx.io,emqx@node3.emqx.io]"
    healthcheck:
      test: ["CMD", "/opt/emqx/bin/emqx_ctl", "status"]
      interval: 5s
      timeout: 25s
      retries: 5
    ports:
      - 1883:1883
      - 8083:8083
      - 8084:8084
      - 8883:8883
      - 18083:18083
 #   extra_hosts:
      # 允许容器可以使用的host访问其余节点
#       - node2.emqx.io:10.60.0.21
#       - node3.emqx.io:10.60.0.22
    volumes:
      - ./logs:/opt/emqx/log
      - ./data:/opt/emqx/data
    privileged: true
    network_mode: host
    restart: "on-failure: 10"
    logging:
      driver: json-file
      options:
        max-size: 10m
        max-file: 3

三、启动
第一次启动应该会失败,因为data目录我是直接启动时自动创建的,查看容器日志会提示/opt/emqx/data/configs的权限不够。

解决办法:修改data及其子目录权限为777,再重新执行docker-compose up -d 启动容器。

另一种办法就是先创建data,赋权限777,在执行docker-compose up -d 启动容器

四、启动成功后查看emqx是否加入集群(10.60.0.20),我21和22分别叫emqx2,emqx3

docker exec -it emqx1 sh -c "emqx_ctl cluster status"

正确的结果(如果三个容器都启动了,可以看见三个节点都加入了。如果只启动了一个节点,集群里running状态的也只有当前节点,另外两个节点就在stop,以下是三个都启动成功)

如果执行以上命令是提示ping不通,像下面那样,那就是你的hosts没配对(Node 'emqx@node1.emqx.io' not responding to pings.)


原因是什么?就是你要为@符号之后的域名配解析ip,所以才有第一步的操作

五、控制台展示

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1669199.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

机器学习(五) ----------决策树算法

目录 1 核心思想 2 决策树算法主要步骤 3 决策树算法的分类 3.1 ID3算法(Iterative Dichotomiser 3): 3.1.1 基本步骤 3.1.2 原理 信息增益 3.1.3 注意事项 3.2 C4.5算法: 3.2.1. 信息增益率 计算公式 3.2.2. 构建决策…

Xshell 7官网免费版下载与安装详细教程!学校/家庭使用免费哦~

一、 安装 1 卸载之前安装的xshell, 未安装忽略此步骤 2 解压本地文件,双击运行xshell**.exe, 按照提示安装 等候引导完成 3 点击下一步 4接受下一步 5 选择安装的路径 改成你自己的安装路径 6程序文件夹选择默认 7 取消勾选,激活之后操作 8 激活&…

基础ArkTS组件:帧动画,内置动画组件,跑马灯组件(HarmonyOS学习第三课【3.6】)

帧动画 帧动画也叫序列帧动画,其原理就是在时间轴的每帧上逐帧绘制不同的内容,使其连续播放而成动画。ArkUI开发框架提供了 ImageAnimator 组件实现帧动画能力,本节笔者介绍一下 ImageAnimator 组件的简单使用。 官方文献 说明 该组件从A…

编写Ansible角色实现分布式LNMP安装

前言 本文将介绍如何使用 Ansible 编写角色,在分布式环境下完成 LNMP(Linux、Nginx、MySQL、PHP)的自动化(编译)安装和配置,并验证 PHP 与 MySQL 数据联通性,实现博客和论坛页面的展示。 常规…

[数据集][目标检测]电力场景安全帽检测数据集VOC+YOLO格式295张2类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):295 标注数量(xml文件个数):295 标注数量(txt文件个数):295 标注类别…

Web自动化 - selenium

文章目录 一、selenium的使用selenium的安装 二、元素1. 定位选择元素1.id 定位2. class_name 定位find_element 和 find_elements的区别3. TAG_NAME 定位4. 超链接 定位 2. 操控元素1. 查询内容2. 获取元素文本内容3. 获取元素属性 3. 浏览器常用操作API4. 鼠标操作 - perform…

微信小程序 17:小程序使用 npm 包和组件应用

目前,小程序中已经支持实用 npm 安装第三方包,从而提高小程序的开发效率,但是在小程序中使用 npm 包有三个限制: 不支持 Node.js内置库的包不支持依赖于浏览器内置对象的包不支持依赖于 C插件的包 Vant Weapp Vant Weapp是有赞…

合专家模型 (MoE) 详解

本文转载自:混合专家模型 (MoE) 详解 https://huggingface.co/blog/zh/moe 英文版:https://huggingface.co/blog/moe 文章目录 一、简短总结二、什么是混合专家模型?三、混合专家模型简史四、什么是稀疏性?五、混合专家模型中令牌的负载均衡…

战火重燃!全球仓储机器人内卷大盘点~

导语 大家好,我是智能仓储物流技术研习社的社长,老K。专注分享智能仓储物流技术、智能制造等内容。 新书《智能物流系统构成与技术实践》 随着全球经济的持续发展和电子商务的迅速崛起,仓储和物流行业正面临着前所未有的挑战与机遇。 在这个背…

LeetCode 题目 121:买卖股票的最佳时机

❤️❤️❤️ 欢迎来到我的博客。希望您能在这里找到既有价值又有趣的内容,和我一起探索、学习和成长。欢迎评论区畅所欲言、享受知识的乐趣! 推荐:数据分析螺丝钉的首页 格物致知 终身学习 期待您的关注 导航: LeetCode解锁100…

【C语言项目】贪吃蛇(下)

个人主页~ 源码在Gitee仓库~ 上一篇贪吃蛇(上)~ 贪吃蛇 四、核心的实现游戏测试1、GameStart(1)控制台窗口大小和名字设置(2)光标隐藏(3)打印欢迎界面(4)创建…

18 【Aseprite 作图】工具栏介绍

1 在没有输入法的情况下, 按住Shift 大写的N,就可以快速新建图层 ctrl z 撤回这个图层 2 双击图层,可以修改图层名称和属性 3 按住图层,拖动图层,可以把图层拉到 组,就可以方便一组一组管理图层 4 保存的…

Windows Docker 使用 httpd 部署静态 Web 站点

一、简介 httpd 是 Apache超文本传输协议(HTTP)服务器的主程序,是一个独立运行的后台进程,专门负责处理 HTTP 请求。它通过建立子进程或线程的池来高效管理请求,确保服务器能够迅速响应客户端的需求。httpd 因其高效率…

创新案例|为何农夫山泉创新战略升级为一家零售科技公司

农夫山泉上市的消息被公之于众后,几乎所有人都将目光投向了这家国内家喻户晓的饮料公司,谁都想第一时间内窥探它的庐山真面目。 当然,在此之前已经有多路消息通过旁敲侧击,从管窥中获取了一些农夫山泉的真实数据。 去年6月&…

全面了解 LLM 微调——根据应用场景独特需求定制大型语言模型

1.概述 截至2023年,大型语言模型(LLM)的发展确实在不断进步,涌现出了多种新的模型,如ChatGLM、Alpaca、Falcon以及Llama 2,还有GPT-4等。这些模型在自然语言处理领域展现出了强大的潜力,它们能…

Zookeeper 注册中心:单机部署

序言 本文给大家介绍 Zookeeper 单机部署流程、 如何与 Spring 整合使用。除此之外,还有 Zookeeper 作为注册中心与 SpringCloud 的整合流程。 一、部署流程 官网下载 Zookeeper 安装包 解压安装包到指定目录 进入 apache-zookeeper-3.8.4-bin/conf 目录&…

最大子矩阵:前缀和、动态规划

最近在学习动态规划,在牛客上刷题时碰到了这一题。其实最初的想法是暴力和前缀和,但是时间复杂度极高,需要套4层循环。后来去网上搜了一下相关的题解和做法,进而了解到了前缀和+线性动态规划的做法。但是在成功做出这题…

富阳区石弹村全景图-没拍到景点内容

- - - 石梯山庄旁停车场拍摄 建议雨后去 整个山到处都是消息 整座山都在渗水

Python 编程语言中的 None 到底是什么?

🍉 CSDN 叶庭云:https://yetingyun.blog.csdn.net/ 让我们一起深入了解 Python 中的 None。 什么是 None? 在 Python 编程语言中,None 是一个特殊的常量,它代表了 “无” 或 “没有值”。你可以把它想象成一个空盒子…

Redis-详解(基础)

文章目录 什么是Redis?用Redis的特点?用Redis可以实现哪些功能?Redis的常用数据类型有哪些?Redis的常用框架有哪些?本篇小结 更多相关内容可查看 什么是Redis? Redis(Remote DictionaryServer)是一个开源…