From 5d5063a2913bc7930bdfac24acc9bbd9bd8e09b7 Mon Sep 17 00:00:00 2001 From: jlzhou <12020042@qq.com> Date: Fri, 8 Aug 2025 17:39:20 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E4=BF=AE=E6=94=B9=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E5=92=8C=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../resources/application-local.yml.template | 38 ++++++++++++++ script/docker/docker-compose.yml | 20 ++++++++ script/docker/mqtt/configs/cluster.hocon | 51 +++++++++++++++++++ script/docker/mqtt/log/README.md | 1 + script/docker/nginx/conf/nginx.conf | 15 ++++++ 5 files changed, 125 insertions(+) create mode 100644 script/docker/mqtt/configs/cluster.hocon create mode 100644 script/docker/mqtt/log/README.md diff --git a/ruoyi-admin/src/main/resources/application-local.yml.template b/ruoyi-admin/src/main/resources/application-local.yml.template index 34bb80b..7237165 100644 --- a/ruoyi-admin/src/main/resources/application-local.yml.template +++ b/ruoyi-admin/src/main/resources/application-local.yml.template @@ -49,6 +49,44 @@ logging: --- # 临时文件存储位置 避免临时文件被系统清理报错 spring.servlet.multipart.location: /tmp/${ruoyi.name} +--- # mqtt配置 +spring: + mqtt: + enabled: true # 是否激活,默认: false + default-config: default # 默认配置项名称, 默认: default + configs: + default: + enabled: true # 配置项是否激活,默认: true + url: tcp://192.168.3.222:1883 # mqtt服务器主地址 +# urls: # mqtt服务器集群地址(可选) +# - tcp://192.168.3.222:1883 + client-id: ${ruoyi.name}-client + username: ${ruoyi.name} + password: ${ruoyi.name}1415926 + sends: + test: + topic: ${ruoyi.name}/test/{0} + qos: 0 + retained: false + subscribes: + - topic: ${ruoyi.name}/test/# + qos: 0 + + rmi: + enabled: false + provider: true + consumer: true + topic: + topic: ${ruoyi.name}/rmi + qos: 0 + retained: false + timeout: 500 + + + + + + --- # 数据源配置 spring: diff --git a/script/docker/docker-compose.yml b/script/docker/docker-compose.yml index e68bccf..969cc27 100644 --- a/script/docker/docker-compose.yml +++ b/script/docker/docker-compose.yml @@ -11,6 +11,26 @@ networks: services: + # mqtt服务 + mqtt: + container_name: mqtt + restart: always + image: registry.cn-hangzhou.aliyuncs.com/awl/emqx:5.6.1 + ports: + - "1883:1883" + - "8083:8083" + # - "8084:8084" + # - "8883:8883" + - "18083:18083" + volumes: + - ./mqtt/configs/:/opt/emqx/data/configs/:rw + - ./mqtt/log/:/opt/emqx/log/:rw + environment: + TZ: Asia/Shanghai + privileged: true + networks: + - base2024-network + # mongodb mongodb: container_name: mongodb diff --git a/script/docker/mqtt/configs/cluster.hocon b/script/docker/mqtt/configs/cluster.hocon new file mode 100644 index 0000000..42c824a --- /dev/null +++ b/script/docker/mqtt/configs/cluster.hocon @@ -0,0 +1,51 @@ +authentication = [ + { + backend = http + body { + password = "${password}" + username = "${username}" + } + connect_timeout = 15s + enable_pipelining = 100 + headers {content-type = "application/json"} + mechanism = password_based + method = post + pool_size = 8 + request_timeout = 5s + ssl {enable = false, verify = verify_peer} + url = "http://server1:8080/emqx-login" + } +] +mqtt { + await_rel_timeout = 300s + exclusive_subscription = false + idle_timeout = 15s + ignore_loop_deliver = false + keepalive_multiplier = 1.5 + max_awaiting_rel = 100 + max_clientid_len = 65535 + max_inflight = 32 + max_mqueue_len = 1000 + max_packet_size = 256MB + max_qos_allowed = 2 + max_subscriptions = infinity + max_topic_alias = 65535 + max_topic_levels = 128 + message_expiry_interval = infinity + mqueue_default_priority = lowest + mqueue_priorities = disabled + mqueue_store_qos0 = true + peer_cert_as_clientid = disabled + peer_cert_as_username = disabled + response_information = "" + retain_available = true + retry_interval = 30s + server_keepalive = disabled + session_expiry_interval = 2h + shared_subscription = true + shared_subscription_strategy = round_robin + strict_mode = false + upgrade_qos = false + use_username_as_clientid = false + wildcard_subscription = true +} diff --git a/script/docker/mqtt/log/README.md b/script/docker/mqtt/log/README.md new file mode 100644 index 0000000..6fab83f --- /dev/null +++ b/script/docker/mqtt/log/README.md @@ -0,0 +1 @@ +# emqx日志目录 \ No newline at end of file diff --git a/script/docker/nginx/conf/nginx.conf b/script/docker/nginx/conf/nginx.conf index 2a09f5c..89a5d07 100644 --- a/script/docker/nginx/conf/nginx.conf +++ b/script/docker/nginx/conf/nginx.conf @@ -95,6 +95,21 @@ http { proxy_pass http://server/; } + location /mqtt { + proxy_http_version 1.1; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "upgrade"; + + # SSE 连接时的超时时间1小时 + proxy_read_timeout 3600s; + # 取消缓冲 + proxy_buffering off; + proxy_pass http://mqtt:8083; + } + # 反向代理minio,需要创建一个files的存储桶 location /files/ {