Coolpy7技术手册
  • COOLPY7千万级MQTT消息服务器
  • 开始使用
    • Coolpy7消息服务器简介
    • 一分钟运行 Coolpy7
    • 单机千万级连接测试
    • 消息并发压力测试
    • 部署架构
    • 程序安装
    • 分布式集群
    • Docker部署CP7(Win&Linux)
    • 消息通信功能测试
    • DbPoxy代理服务
    • 内核功能扩展
    • 规则引擎
    • 启动参数及内核特殊功能
    • 功能性API接口说明
    • 使用JWT身份验证
    • 消息组播
    • HTTP、CoAP推送消息
    • MQTT-SN代理服务
    • 客户端SDK示例库
    • 常见问题总汇
  • CGP通用IOT物联网控制协议
    • CGP协议
    • CGP协议安全模式
  • OAuth2用户中心应用
    • 用户中心
  • COOLPY7领域应用
    • CP7领域应用指南简略图
    • 使用paho-mqtt.js库实时聊天室
    • 微信小程序实时通信聊天室应用
    • 使用MQTT.js库连接CP7
    • Paho.mqtt.golang客户端连接示例
  • MQTT协议基础知识
    • MQTT协议
    • MQTT-SN 协议
    • MQTT应用指南
Powered by GitBook
On this page
  • LB (负载均衡)
  • Coolpy7 应用程序说明
  • 私有网络部署
  • HAProxy -> CP7
  • NGINX Plus -> CP7

Was this helpful?

  1. 开始使用

部署架构

CP7 消息服务器集群可作为物联网接入服务(IoT Hub),部署在青云、AWS、阿里等公有云或企业私有云平台。

Previous消息并发压力测试Next程序安装

Last updated 3 years ago

Was this helpful?

典型单实例部署结构

新版本中已把ws proxy合并到Coolpy7 tcp core,所以新版本用户无需再下载运行Coolpy7 ws proxy.

LB (负载均衡)

LB (负载均衡器) 负责分发设备的 MQTT 连接与消息到 CP7 集群,LB 提高 CP7 集群可用性、实现负载平衡以及动态扩容。

部署架构推荐在 LB 终结 SSL 连接。设备与 LB 之间 TLS 安全连接,LB 与 CP7 之间普通 TCP 连接。这种部署模式下 CP7 单集群可轻松支持100万设备。

公有云厂商 LB 产品:

云计算厂商

是否支持 TLS 终结

LB 产品介绍

是

是

否

未知

未知

私有部署 LB 服务器:

开源 LB

是否支持 TLS 终结

方案介绍

是

PLUS 产品支持

国内公有云部署推荐青云,国外部署推荐 AWS 。私有部署推荐使用 HAProxy 作为 LB

Coolpy7 应用程序说明

应用程序

默认端口

协议

说明

1883

TCP

MQTT 协议端口

8883

TCP

MQTT/TLS1.2 端口

8084

TCP

MQTT/WebSocket/TLS1.2 端口

防火墙根据使用的 MQTT 接入方式,开启上述端口的访问权限。

私有网络部署

CP7 单机服务运行。此方式建议使用于测试或确定当前业务量并不大的情况,由于CP7单节点性能超强,所以一般创业公司可以先以单实例运行,开启快速且低成本的产品运营。运行方式请参阅上一章《一分钟下载启动Coolpy7》

HAProxy -> CP7

1.HAProxy 作为 LB 部署 CP7 集群,并终结 SSL 连接:

节点

IP 地址

cp7_1

192.168.0.2

cp7_2

192.168.0.3

2. 配置 /etc/haproxy/haproxy.cfg,示例:

listen mqtt-ssl
    bind *:8883 ssl crt /etc/ssl/cp7/server.pem no-sslv3
    mode tcp
    maxconn 50000
    timeout client 600s
    default_backend emq_cluster

backend cp7_cluster
    mode tcp
    balance source
    timeout server 50s
    timeout check 5000
    server cp71 192.168.0.2:1883 check inter 10000 fall 2 rise 5 weight 1
    server cp72 192.168.0.3:1883 check inter 10000 fall 2 rise 5 weight 1
    source 0.0.0.0 usesrc clientip

NGINX Plus -> CP7

NGINX Plus 产品作为 CP7 集群 LB,并终结 SSL 连接:

  1. 创建 CP7 节点集群,例如:

节点

IP 地址

cp7_1

192.168.0.2

cp7_2

192.168.0.3

3.配置 /etc/nginx/nginx.conf,示例:

stream {
    # Example configuration for TCP load balancing

    upstream stream_backend {
        zone tcp_servers 64k;
        hash $remote_addr;
        server 192.168.0.2:1883 max_fails=2 fail_timeout=30s;
        server 192.168.0.3:1883 max_fails=2 fail_timeout=30s;
    }

    server {
        listen 8883 ssl;
        status_zone tcp_server;
        proxy_pass stream_backend;
        proxy_buffer_size 4k;
        ssl_handshake_timeout 15s;
        ssl_certificate     /etc/cp7/certs/cert.pem;
        ssl_certificate_key /etc/cp7/certs/key.pem;
    }
}

注册 NGINX Plus 试用版,Ubuntu 下安装:

https://cs.nginx.com/repo_setup
青云
https://docs.qingcloud.com/guide/loadbalancer.html
AWS
https://aws.amazon.com/cn/elasticloadbalancing/
阿里云
https://www.aliyun.com/product/slb
UCloud
https://ucloud.cn/site/product/ulb.html
QCloud
https://www.qcloud.com/product/clb
HAProxy
https://www.haproxy.com/solutions/load-balancing.html
NGINX
https://www.nginx.com/solutions/load-balancing/
go_build_Coolpy7_go_linux
go_build_Coolpy7_tls_go_linux_linux
go_build_Coolpy7_ws_tls_go_linux_linux
典型单实例部署结构