部署架构
CP7 消息服务器集群可作为物联网接入服务(IoT Hub),部署在青云、AWS、阿里等公有云或企业私有云平台。
典型单实例部署结构
典型单实例部署结构
新版本中已把ws proxy合并到Coolpy7 tcp core,所以新版本用户无需再下载运行Coolpy7 ws proxy.

LB (负载均衡)

LB (负载均衡器) 负责分发设备的 MQTT 连接与消息到 CP7 集群,LB 提高 CP7 集群可用性、实现负载平衡以及动态扩容。
部署架构推荐在 LB 终结 SSL 连接。设备与 LB 之间 TLS 安全连接,LB 与 CP7 之间普通 TCP 连接。这种部署模式下 CP7 单集群可轻松支持100万设备。
公有云厂商 LB 产品:
私有部署 LB 服务器:
开源 LB
是否支持 TLS 终结
方案介绍
国内公有云部署推荐青云,国外部署推荐 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,示例:
1
listen mqtt-ssl
2
bind *:8883 ssl crt /etc/ssl/cp7/server.pem no-sslv3
3
mode tcp
4
maxconn 50000
5
timeout client 600s
6
default_backend emq_cluster
7
8
backend cp7_cluster
9
mode tcp
10
balance source
11
timeout server 50s
12
timeout check 5000
13
server cp71 192.168.0.2:1883 check inter 10000 fall 2 rise 5 weight 1
14
server cp72 192.168.0.3:1883 check inter 10000 fall 2 rise 5 weight 1
15
source 0.0.0.0 usesrc clientip
Copied!

NGINX Plus -> CP7

NGINX Plus 产品作为 CP7 集群 LB,并终结 SSL 连接:
    1.
    注册 NGINX Plus 试用版,Ubuntu 下安装: https://cs.nginx.com/repo_setup
    2.
    创建 CP7 节点集群,例如:
节点
IP 地址
cp7_1
192.168.0.2
cp7_2
192.168.0.3
3.配置 /etc/nginx/nginx.conf,示例:
1
stream {
2
# Example configuration for TCP load balancing
3
4
upstream stream_backend {
5
zone tcp_servers 64k;
6
hash $remote_addr;
7
server 192.168.0.2:1883 max_fails=2 fail_timeout=30s;
8
server 192.168.0.3:1883 max_fails=2 fail_timeout=30s;
9
}
10
11
server {
12
listen 8883 ssl;
13
status_zone tcp_server;
14
proxy_pass stream_backend;
15
proxy_buffer_size 4k;
16
ssl_handshake_timeout 15s;
17
ssl_certificate /etc/cp7/certs/cert.pem;
18
ssl_certificate_key /etc/cp7/certs/key.pem;
19
}
20
}
Copied!
Last modified 2mo ago