docker搭建EMQX集群+nginx转发TCP

一、三台机器安装
1、三台都拉取镜像

docker pull emqx/emqx:5.0.26

2、三台分别运行镜像
第一台

docker run -itd --network host --name emqx --restart  always \-p 1883:1883 \-p 18083:18083 \-p 8083:8083 \-p 8883:8883 \-p 8080:8080 \-e EMQX_NAME="master1" \-e EMQX_HOST=localhost1 \-e EMQX_LISTENER__TCP_EXTERNAL=1883 \-e EMQX_WAIT_TIME=30 \-e EMQX_CLUSTER__DISCOVERY="static" \-e EMQX_JOIN_CLUSTER="master1@localhost1" \-e EMQX_CLUSTER__STATIC__SEEDS="master1@localhost1,master2@localhost2,master3@localhost3" \emqx/emqx:5.0.26

第二台

docker run -itd --network host --name emqx --restart  always \-p 1883:1883 \-p 18083:18083 \-p 8083:8083 \-p 8883:8883 \-p 8080:8080 \-e EMQX_NAME="master2" \-e EMQX_HOST=localhost2 \-e EMQX_LISTENER__TCP_EXTERNAL=1883 \-e EMQX_WAIT_TIME=30 \-e EMQX_CLUSTER__DISCOVERY="static" \-e EMQX_JOIN_CLUSTER="master2@localhost2" \-e EMQX_CLUSTER__STATIC__SEEDS="master1@localhost1,master2@localhost2,master3@localhost3" \emqx/emqx:5.0.26

第三台

docker run -itd --network host --name emqx --restart  always \-p 1883:1883 \-p 18083:18083 \-p 8083:8083 \-p 8883:8883 \-p 8080:8080 \-e EMQX_NAME="master3" \-e EMQX_HOST=localhost3 \-e EMQX_LISTENER__TCP_EXTERNAL=1883 \-e EMQX_WAIT_TIME=30 \-e EMQX_CLUSTER__DISCOVERY="static" \-e EMQX_JOIN_CLUSTER="master3@localhost3" \-e EMQX_CLUSTER__STATIC__SEEDS="master1@localhost1,master2@localhost2,master3@localhost3" \emqx/emqx:5.0.26

3、如何就行集群加入,选择一台主节点,对两个从节点执行如下
这里面我选择localhost1作为主节点

docker exec -it emqx shbin/emqx_ctl  cluster join master1@localhost1

4、登录皆可以了
二、做nginx TCP转发
1、首先在安装nginx 的时候,添加straem模块

./configure  --with-stream

2、修改/usr/local/nginx/nginx.conf文件,与http同级新增如下

stream {upstream emqx_tcp {server localhost1:1883 weight=1;server localhost2:1883 weight=1;server localhost3:1883 weight=1;}server {listen 1886;proxy_pass emqx_tcp;proxy_buffer_size 8k;tcp_nodelay on;}}

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

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

相关文章

PyTorch 从tensor.grad 看 backward(权重参数) 和 gradient accumulated

1. 新建一个自变量 tensor x import torchx torch.ones(1, requires_gradTrue) print(x)1. 输出: tensor([1.], requires_gradTrue)2. 写一个 forward import torchx torch.ones(1, requires_gradTrue) y x**2 z x**33. y, z 都 backward import torchx to…

Voice Control for ChatGPT简单高效的与ChatGPT进行交流学习。

快捷又不失灵活性 日常生活中,我们与亲人朋友沟通交流一般都是喜欢语音的形式来完成的,毕竟相对于文字来说语音就不会显的那么的苍白无力,同时最大的好处就是能解放我们的双手吧,能更快实现两者间的对话,沟通便更高效…

排序算法的分析及实现

目录​​​​​​​ 1. 排序 1.1. 排序的概念 1.2. 排序的稳定性 1.3. 内部排序和外部排序 2. 直接插入排序 2.1. 直接插入排序 2.2. 直接插入排序的两种情况 1. 情况一 2. 情况二 2.3. 直接插入排序的单趟排序 2.4. 直接插入排序的完整实现 2.5. 直接插入排序的时…

如何手动获取spring/springboot中的IOC容器(全局上下文对象)?

IDE:IntelliJ IDEA 2022.2.3 x64 操作系统:win10 x64 位 家庭版 JDK: 1.8 文章目录 前言一、如何手动获取spring容器[ApplicationContext]?方式①:在启动类中获取spring容器方式②:自定义工具类实现ServletContextList…

MySQL_主从复制_环境搭建

MySQL主从复制配置 CentOS 7 配置 阿里云 yum 源 sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup sudo wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo sudo yum clean all sudo yum makeca…

Typecho V1.2.1 博客更换域名还原

网站老是到期或则要换服务器(IP地址),单独改IP老是有图片不能加载,出个完整的迁移教程: 系统环境:Ubuntu 2204 宝塔面板 8.0.3 Nginx1.22 PHP 8.1 MySQL 5.7 备份 进入宝塔将网站根目录直接压缩&#xff0…

pytorch复现_UNet

什么是UNet U-Net由收缩路径和扩张路径组成。收缩路径是一系列卷积层和汇集层,其中要素地图的分辨率逐渐降低。扩展路径是一系列上采样层和卷积层,其中特征地图的分辨率逐渐增加。 在扩展路径中的每一步,来自收缩路径的对应特征地图与当前特征…

MySQL -- 索引

MySQL – 索引 文章目录 MySQL -- 索引一、索引简介1.简介2.索引效率的案例 二、认识磁盘1.磁盘2.结论3.磁盘随机访问(Random Access)与连续访问(Sequential Access) 三、MySQL 与磁盘交互基本单位1.基本单位2.MySQL中的数据管理 五、索引的理解1.索引案例2.单页mysql page3.管…

ts学习01-开发环境搭建

环境 nodejs 18 npm 安装typescript npm install typescript # 如果上面太慢,可以执行下面的方法 npm install typescript --registryhttps://registry.npm.taobao.orgHelloWorld 新建index.ts console.log("hello ts");执行下面命令进行编译 npx t…

【ArcGIS Pro二次开发】(74):Python、C#实现Excel截图导出图片

以村庄规划制图为例,通过对现状和规划用地的统计,生成Excel格式的【空间功能结构调整表】后,需要进一步将表格导出成图片,并嵌入到图集中,这样可以实现全流程不用手动参与,让制图的流程完全自动化。 关于E…

5G技术的应用和发展

一、什么是5G技术 5G技术是第五代移动通信技术的缩写,是一项全新的高速无线通信技术,它可以提供更高的带宽和更低的延迟,以实现更快的数据传输和更好的用户体验。5G技术的主要特点包括更高的数据传输速率、更低的延迟、更大的网络容量、更好…

Go 语言循环语句

文章目录 1. for 循环:2. for 循环的无限循环形式:3. range 循环:4. while 循环模拟:5. do-while 循环模拟:6. 循环控制语句 Go语言提供了多种循环语句,用于重复执行一段代码块。以下是Go语言中常用的循环语句: 1. for 循环: #mermaid-svg-iLHuj1pKeODq…

Drogon源码剖析

一、Drogon介绍 Drogon是一个基于C的跨平台HTTP应用程序框架,它支持Linux,也支持macOS、FreeBSD,OpenBSD,HaikuOS,和Windows。项目地址:https://github.com/drogonframework/drogon。 它的主要特点如下&a…

OpenAI 组建安全 AGI 新团队!应对AI“潘多拉魔盒”

夕小瑶科技说 原创 作者 | 小戏 一旦谈及未来 AI,除了天马行空的科幻畅想,不可避免的也有未来 AI 时代的末日预言。从 AI 武器化到 AI 欺骗,从邪恶 AI 到 AI 掌权,人工智能,尤其是通用人工智能的风险始终都清清楚楚的…

Dockerfile + 源码安装httpd 制作镜像

Dockerfile 源码安装httpd 制作镜像 环境: 虚拟机版本ip部署应用centos8192.168.136.142docker [rootlocalhost ~]# ls anaconda-ks.cfg httpd [rootlocalhost httpd]# cat dockerfile FROM centosRUN rm -rf /etc//yum.repos.d/* && \curl -o /etc/y…

Mac电脑录屏软件 Screen Recorder by Omi 中文最新

Screen Recorder by Omi是一款屏幕录制软件,它可以帮助用户轻松地录制屏幕活动,并将其保存为高质量的视频文件。 该软件提供了多种录制选项,包括全屏录制、选择区域录制和单窗口录制等,同时提供了丰富的设置选项,如视…

Pycharm中新建一个文件夹下__init__.py文件有什么用

在PyCharm中新建一个文件夹下的__init__.py文件有以下几个作用: 声明文件夹为一个Python包:__init__.py文件的存在告诉Python解释器该文件夹是一个Python包。当你导入该文件夹下的模块时,Python会将其视为一个包而不是普通的文件夹。这允许你…

为什么要停止在 SpringBoot 中使用字段注,改用构造器注入

停止在 SpringBoot 中使用字段注入! 本文为翻译文,同时加入了一些自己的理解,翻译来源:https://medium.com 在 Spring Boot 依赖项注入的上下文中,存在关于注入依赖项最佳实践的争论:字段注入、Setter注入和构造函数…

SparkML

SparkML SparkML_lr_train :读取py处理后的train表用于训练,将训练模型保存好。 SparkML_lr_predict :读取训练好的模型,读取py处理后的test表用于预测。将预测结果写入normal_data中,根据id修改stream_is_normal的值。…

深入理解JVM虚拟机第十六篇:虚拟机栈存储结构和运行原理

大神链接:作者有幸结识技术大神孙哥为好友,获益匪浅。现在把孙哥视频分享给大家。 孙哥链接:孙哥个人主页 作者简介:一个颜值99分,只比孙哥差一点的程序员 本专栏简介:话不多说,让我们一起干翻JavaScript 本文章简介:话不多说,让我们讲清楚虚拟机栈存储结构和运行原理…