当前位置: 首页 > news >正文

搭建网站需要什么新奇网站建设

搭建网站需要什么,新奇网站建设,网站方案怎么写,destoon 网站后台显示不出模板从零开始搭建 EMQX 集群压测框架 架构 在设计以EMQX为中心的MQTT消息队列集群压力测试框架时,我们采用微服务架构模式。EMQX作为消息队列的核心,负责处理MQTT协议的消息发布和订阅。Nginx作为EMQX的反向代理,负责负载均衡和SSL/TLS终端。MQT…

从零开始搭建 EMQX 集群压测框架

架构

emqx-brench

在设计以EMQX为中心的MQTT消息队列集群压力测试框架时,我们采用微服务架构模式。EMQX作为消息队列的核心,负责处理MQTT协议的消息发布和订阅。Nginx作为EMQX的反向代理,负责负载均衡和SSL/TLS终端。MQTTX-CLI作为压力测试工具,模拟大量客户端连接和消息交换。

流程

  1. 使用Docker Compose定义EMQX集群服务、Nginx服务和MQTTX-CLI测试客户端。
  2. EMQX集群启动并等待客户端连接。
  3. Nginx启动并配置为EMQX集群的入口,处理来自外部的MQTT连接请求。
  4. MQTTX-CLI启动并模拟成千上万的客户端连接到Nginx代理。
  5. 收集测试数据,分析EMQX集群的性能和稳定性。

各服务功能

  • EMQX:高性能的分布式MQTT消息队列,处理消息发布、订阅和路由。
  • Nginx:反向代理服务器,提供负载均衡、SSL终端、连接限制和访问控制。
  • MQTTX-CLI:命令行工具,用于模拟大量MQTT客户端进行压力测试。

部署

使用DockerDocker Compose进行服务的容器化部署。每个服务都被封装在独立的Docker容器中,通过Docker网络进行通信。Docker Compose文件定义了服务的配置、网络和卷挂载。

文件目录

|-- LICENSE
|-- README.md
|-- mqtt-lb-haproxy
`-- mqtt-lb-nginx|-- README.md|-- certs|   |-- cacert.pem|   |-- cert.pem|   |-- client-cert.pem|   |-- client-key.pem|   `-- key.pem|-- docker-compose.yaml|-- mqttx_cli_emqx_tcp.json|-- mqttx_cli_emqx_tls.json`-- nginx.conf

配置文件

version: '3'
services:emqx1:image: emqx/emqx:5.4.1container_name: emqx1hostname: emqx1-cluster.emqx.ioenvironment:- EMQX_NODE__NAME=emqx1@emqx1-cluster.emqx.io- EMQX_CLUSTER__DISCOVERY_STRATEGY=static- EMQX_CLUSTER__STATIC__SEEDS=emqx1@emqx1-cluster.emqx.io,emqx2@emqx2-cluster.emqx.io,emqx3@emqx3-cluster.emqx.ioports:- 18083:18083networks:- emqx-netemqx2:image: emqx/emqx:5.4.1 container_name: emqx2hostname: emqx2-cluster.emqx.ioenvironment:- EMQX_NODE__NAME=emqx2@emqx2-cluster.emqx.io- EMQX_CLUSTER__DISCOVERY_STRATEGY=static- EMQX_CLUSTER__STATIC__SEEDS=emqx1@emqx1-cluster.emqx.io,emqx2@emqx2-cluster.emqx.io,emqx3@emqx3-cluster.emqx.io   networks:- emqx-netemqx3:image: emqx/emqx:5.4.1container_name: emqx3hostname: emqx3-cluster.emqx.ioenvironment:- EMQX_NODE__NAME=emqx3@emqx3-cluster.emqx.io- EMQX_CLUSTER__DISCOVERY_STRATEGY=static- EMQX_CLUSTER__STATIC__SEEDS=emqx1@emqx1-cluster.emqx.io,emqx2@emqx2-cluster.emqx.io,emqx3@emqx3-cluster.emqx.ionetworks:- emqx-netnginx:image: nginx:1.23.0-alpinecontainer_name: nginxports:- 1883:1883- 8883:8883- 8083:8083 - 8084:8084- 8888:8888 # nginx statusvolumes:- $PWD/nginx.conf:/etc/nginx/nginx.conf- $PWD/certs:/etc/nginx/certsnetworks:- emqx-netmqttx-cli: # 指定压测工具image: emqx/mqttx-clicontainer_name: mqttx-cli command: mqttx bench conn -c 2000 -h nginx  # 对nginx容器进行压测networks:emqx-net: # mqttx-cli 与 其他容器 在同一局域网中ipv4_address: 172.26.0.12networks:emqx-net:driver: bridgeipam:config:- subnet: 172.26.0.0/16

启动服务

cd mqtt-lb-nginx && docker-compose up -d# 查看服务运行状态
[root@master mqtt-lb-nginx]# docker-compose ps
NAME                COMMAND                  SERVICE             STATUS              PORTS
emqx1               "/usr/bin/docker-ent…"   emqx1               running             0.0.0.0:18083->18083/tcp, :::18083->18083/tcp
emqx2               "/usr/bin/docker-ent…"   emqx2               running             18083/tcp
emqx3               "/usr/bin/docker-ent…"   emqx3               running             18083/tcp
mqttx-cli           "docker-entrypoint.s…"   mqttx-cli           running             
nginx               "/docker-entrypoint.…"   nginx               running             0.0.0.0:1883->1883/tcp ...

查看nginx子进程负载数

# /home/nginx-cores.sh 需要在nginx 容器中先创建
[root@master mqtt-lb-nginx]# docker exec -it nginx cat /home/nginx-cores.sh
#!/bin/sh
nginx_pids=`ps aux |grep "[n]ginx: worker"|awk '{print $1}'`
for pid in $nginx_pids
don=`ls /proc/$pid/fd |wc|awk '{print $1}'`echo "pid = $pid $n connection"
done# 查看nginx子进程负载数
[root@master mqtt-lb-nginx]# docker exec -it nginx sh /home/nginx-cores.sh
pid = 174 1286 connection
pid = 175 1270 connection
pid = 176 1270 connection
pid = 177 1270 connection
pid = 178 1270 connection
pid = 179 1270 connection
pid = 180 1270 connection
pid = 181 1270 connection

emqx dashboard

访问地址:ip:18083

在这里插入图片描述

优劣势

优势:

  • 容器化部署:快速部署和易于管理,确保环境一致性。
  • 可扩展性EMQX集群和Nginx可以水平扩展以处理更大的负载。
  • 灵活性Nginx提供灵活的配置选项,如SSL、负载均衡策略等。
  • 自动化测试MQTTX-CLI支持自动化测试脚本,提高测试效率。

劣势:

  • 资源消耗:容器化可能占用较多的服务器资源。
  1. 复杂性Docker容器管理和服务编排增加了系统的复杂性。
  2. 网络配置:容器间的网络通信需要合理配置,以确保数据流畅。
  3. 性能评估:通过压力测试,评估EMQX集群在高负载下的性能表现。

安全性考虑Nginx作为反向代理,可以实施安全策略,如TLS加密和访问控制。

监控和日志:集成监控系统,如PrometheusGrafana,收集和分析性能数据。

通过综合考虑这些因素,可以设计并实现一个高效、可靠且易于维护的EMQX集群压力测试框架。通过Docker部署,我们能够实现快速、灵活的系统搭建和管理。

项目地址

emqx-cluster

相关文章

用 NGINX 负载均衡 EMQX 集群

http://www.yayakq.cn/news/787531/

相关文章:

  • 福建就福建省住房与城乡建设厅网站做网站需要公司
  • 查大学专业网站新余哪有做网站的公司
  • 检察机关门户网站建设用php做的网站有哪些
  • 郑州大学网页设计与网站建设网站开发能用udp协议吗
  • 网站建设diywordpress的qq邮件列表qq邮件列表订阅rss源地址怎么找
  • 国外设计网站图片一般做网站图是多大的像素
  • wordpress 图片加边框东营网站搜索引擎优化
  • wordpress点餐系统优化方案物理必修一电子版
  • 内江 网站建设建设银行银行号查询网站
  • php蓝色大气科技企业网站网站建设与推广工资
  • 罗岗网站建设价格999免费网站传奇
  • 站长平台百度网页上视频如何下载
  • 网站管理系统哪个最好肃州区城乡和住房建设局网站
  • 高端网站建设加盟中通建设计院第四分公司网站
  • 网站建设售后服务光谷网站建设哪家好
  • 那些网站可以做淘宝店铺推广个人网站变现
  • 保定网站建设公司哪家好北京值得去的互联网公司
  • 一级a做爰片免费网站瑜伽旗袍网站架构
  • 三网合一网站建设公司免费网页模板网站
  • 沈阳德泰诺网站制作怎么给网站加友情链接
  • 上海制作企业网站如皋网站建设公司
  • 外国黄冈网站推广软件网店营销推广
  • 昨晚兰州发生了什么事百度seo培训
  • 廊坊建设局网站6湖南省郴州市汝城县
  • ftp网站上传之后怎么办家具网站设计网站
  • 有了域名后怎么建设网站网站开发公司资讯
  • 制作一个网站平台需要多少钱银川网站建设推广
  • 设计手机网站公司WordPress主题站
  • 网站网站建站mip网站案例
  • 哪个网站的财经做的好知乎建设网站找网络公司