0


Emqx入门系列【1】emqx环境搭建

一、EMQX是什么?

EMQ X 是一个高度可扩展的、分布式的 MQTT 消息服务器,适用于 IoT、M2M 和移动应用程序。它提供了完整的 MQTT 协议支持,包括 QoS 0、QoS 1、QoS 2 消息传输,以及 Last Will 和 Testament 功能。EMQ X 还支持插件扩展,可以方便地集成各种功能,如 SQL 数据库集成、Websocket 支持等。

EMQ X 特点:

  • 高性能:EMQ X 可以处理数百万的并发客户端连接。
  • 分布式:支持分布式运行,可以水平扩展以满足大规模部署需求。
  • 插件系统:通过插件可以轻松扩展功能,如数据库集成、认证等。
  • 完整的 MQTT 支持:遵循 MQTT 3.1、3.1.1 和 5 协议规范。
  • 多种协议支持:除了 MQTT,还支持 CoAP、LwM2M、WebSocket 等协议。
  • 安全性:支持 SSL/TLS 加密传输,以及多种认证机制。

二、EMQX安装

1.获取 EMQX

从官方网站 EMQX 官网软件下载 下载最新版本的 EMQ X

e260c99a49ac45cb8f7fa45a5ec6e138.png

1.1 选择对应系统与版本下载,其中有yum 、安装包类型(rpm 、 tar.zip )

这里讲述下tar.zip 包安装方式

wget https://www.emqx.com/zh/downloads/broker/5.7.1/emqx-5.7.1-el7-amd64.tar.gz

1.2 进行安装

  1. mkdir -p emqx && tar -zxvf emqx-5.7.1-el7-amd64.tar.gz -C emqx

1.3启动

./emqx/bin/emqx start

1.3 服务状态与面板

306d0c3ae4654c92931b2ffe9156c6ea.png

c361f429f3d0478faded3c6c3be15994.png

2.注册成服务

2.1 创建一个emqx.service 放到conf文件夹下

  1. [Unit]
  2. Description=EMQ X Broker
  3. After=network.target
  4. [Service]
  5. User=root
  6. Group=root
  7. ProtectProc=invisible
  8. Type=forking
  9. ExecStart=START_PATH start
  10. ExecStop=STOP_PATH stop
  11. Restart=on-failure
  12. [Install]
  13. WantedBy=multi-user.target

2.2 编写安装与卸载脚本

install.sh

  1. #!/bin/bash
  2. #
  3. int='\033[94m
  4. _______ _____ ______ ________ ___ ___
  5. |\ ___ \ |\ _ \ _ \|\ __ \ |\ \ / /|
  6. \ \ __/|\ \ \\\__\ \ \ \ \|\ \ \ \ \/ / /
  7. \ \ \_|/_\ \ \\|__| \ \ \ \\\ \ \ \ / /
  8. \ \ \_|\ \ \ \ \ \ \ \ \\\ \ / \/
  9. \ \_______\ \__\ \ \__\ \_____ \ / /\ \
  10. \|_______|\|__| \|__|\|___| \__Y__/ /\ __\
  11. \|__|__|/ \|__|
  12. \033[0m'
  13. echo -e "$int"
  14. # Get current directory
  15. CurDir=$(cd `dirname $0`;pwd)
  16. echo "CurDir :$CurDir"
  17. echo " home $HOME"
  18. chmod 777 -R $CurDir
  19. START_PATH="$CurDir/bin/emqx"
  20. STOP_PATH="$CurDir/bin/emqx"
  21. cp -r $CurDir/conf/emqx.service $CurDir/emqx.service
  22. sed -i "s%START_PATH%$START_PATH%g" $CurDir/emqx.service
  23. sed -i "s%STOP_PATH%$STOP_PATH%g" $CurDir/emqx.service
  24. # service copy
  25. cp -rf $CurDir/emqx.service /usr/lib/systemd/system/emqx.service
  26. echo emqx server is is add to service and setup to boot up
  27. systemctl daemon-reload
  28. #添加开机启动
  29. systemctl enable emqx.service
  30. systemctl start emqx.service
  31. #开放端口号
  32. firewall-cmd --zone=public --add-port=1883/tcp --permanent
  33. firewall-cmd --reload
  34. if [ $? -eq 0 ]; then
  35. echo emqx is install success
  36. exit 0
  37. else
  38. echo emqx is install fail
  39. exit 1
  40. fi

uninstall.sh

  1. #!/bin/bash
  2. #
  3. int='\033[94m
  4. _______ _____ ______ ________ ___ ___
  5. |\ ___ \ |\ _ \ _ \|\ __ \ |\ \ / /|
  6. \ \ __/|\ \ \\\__\ \ \ \ \|\ \ \ \ \/ / /
  7. \ \ \_|/_\ \ \\|__| \ \ \ \\\ \ \ \ / /
  8. \ \ \_|\ \ \ \ \ \ \ \ \\\ \ / \/
  9. \ \_______\ \__\ \ \__\ \_____ \ / /\ \
  10. \|_______|\|__| \|__|\|___| \__Y__/ /\ __\
  11. \|__|__|/ \|__|
  12. \033[0m'
  13. echo -e "$int"
  14. SERVICE_NAME=emqx
  15. systemctl --no-pager status $SERVICE_NAME
  16. if [ "$?" -ne 0 ]
  17. then
  18. echo " $SERVICE_NAME not install"
  19. else
  20. CurDir=$(cd `dirname $0`; pwd)
  21. #delete service
  22. PROXY_FILE="/usr/lib/systemd/system/${SERVICE_NAME}.service"
  23. if [ ! -f $PROXY_FILE ]; then
  24. echo "$SERVICE_NAME file is not exist in /usr/lib/systemd/system"
  25. else
  26. systemctl stop $SERVICE_NAME
  27. systemctl disable $SERVICE_NAME
  28. rm -rf $PROXY_FILE
  29. systemctl daemon-reexec
  30. if [[ "$OS_NAME" == "CentOS" || $CentOSVH -ge 7 ]];then
  31. systemctl daemon-reload
  32. fi
  33. rm -rf $CurDir/software/cms
  34. echo "$SERVICE_NAME is deleted from service"
  35. fi
  36. echo " "
  37. echo -e "\e[1;32m $SERVICE_NAME Service uninstalled succeed.\e[0m"
  38. echo " "
  39. fi
  1. 整体服务目录结构

4590550db34c439db5756347cdc3e4a9.png

标签: 中间件

本文转载自: https://blog.csdn.net/qq_20467517/article/details/140998925
版权归原作者 南宫春水 所有, 如有侵权,请联系我们删除。

“Emqx入门系列【1】emqx环境搭建”的评论:

还没有评论