启动参数及内核特殊功能

CP7启动参数说明

通过指令查看启动参数说明

./go_build_Coolpy7_go -h

启动参数如下

Usage of ./go_build_Coolpy7_go:
-as
用户身份验证默认开关,true为不验证,false为通过插件验证 (default true)
-crk string
集群服务发现验证token (default "[email protected]#$dRdT(")
-crp int
集群发现端口(UDP) (default 7946)
-csk string
集群服务同步验证token (default "Coolpy7")
-csp int
集群同步端口(UDP) (default 7947)
-dt int
心跳或推送消息限制生效后,多少时间内不允许登陆/秒 (default 0)
-ha string
内核扩展功能服务地址,as参数为false此参数生效 (default "localhost:5683")
-ht string
内核扩展功能服务token,必须与服务端配置一致(default 'coolpy7') (default "coolpy7")
-it int
消息ID标记缓存超时时间/秒, 默认0即不执行超时删除 (default 0)
-l string
绑定Host地址 (default ":1883")
-max int
GOMAXPROCS (default 1024)
-mbs string
连接集群节点(192.168.0.100,192.168.0.101)
-mc int
允许接入客户端最大连接数,0为不限制 (default 0)
-mpl int
允许单个消息体最大体积/单位Byte,0为不限制 (default 0)
-nid string
集群节点名称,必须集群中唯一
-nt int
空连接攻击最大值,多少时间内连接未正常登陆后关闭连接/秒 (default 2)
-ol int
集群节点离线重连最少间隔时间/秒 (default 30) (default 10)
-ot int
消息IO缓存超时时间/秒,默认0即不执行超时删除 (default 0)
-pl int
心跳包最少间隔时间/秒,少于此值ping包自动关闭连接 (default 0)
-psl int
推送消息最少间隔时间/豪秒(千分之一秒),少于此值publish消息自动关闭连接 (default 0)
-rt int
Retained消息缓存超时时间/秒, 默认0即不执行超时删除 (default 0)
-st int
订阅缓存超时时间/秒, 默认0即不执行超时删除 (default 0)
-t int
connection read write timeout second (default 60)
-wt int
will消息缓存超时时间/秒, 默认0即不执行超时删除 (default 0)

参数逻辑说明

-as参数 全称Authentication standard

此参数用于设置Coolpy7内核在没有加载插件时默认是否允许所有接入客户端,默认值true即不做任何身份验证通过所有接入的客户端,而当用户身份验证插件被正常加载后此值不再生效,以插件Loop函数的bool返回类型处理用户身份验证允许值。

自7.2.1.1版本开始,as参数同时作为是否启动扩展服务功能的开关参数。祥情请参阅本手册的[内核功能扩展(新版)]章节。

-ha参数 内核扩展功能服务地址

当as参数设置为false后此参数生效。此参数设置内核扩展服务地址,支持域名、IP等型式配置。

-ht参数 内核扩展服务密钥

此参数必须与内核扩展服务器端所设置的-ht参数之值一致。否则导致无法正常调用扩展服务。以此密钥作为内核与扩展服务间的身份认证口令。

-pl参数 self-ping ddos攻击防护盾

此参数设置self-ping ddos攻击防护盾参数,当某个客户端少于此值进行ping心跳包时内核会自动断开该连接,达到防止此类击攻。需要配合使用的还要-dt参数,dt参数是当本参数生效生多少秒内不允许此客户端再次登陆。

有研究数据证明所有长连接服务器端普遍的一种击攻手段就是以合法的网络协议发送ping包进行服务器端洪水ddos攻击。另一方面当服务器端大量资源处理心跳包时会大大降低服务器端硬件及网络资源的有效应用。

-it参数 message id reset time out

此参数设置mqtt协议要求单客户端所独立自主的message id标识计数器,而此参数设置的是计数器指多少秒后重置数值,当客户端clear session为true时永不重置,为false时重连接时重置。默认值0为永不重置(clear session优先于本参数)

mqtt需要以连接客户端为单位通过message id对消息进行唯一性标识从而达到消息质量控制(Qos)功能

-l 参数 内核mqtt服务绑定地址

绑定本机所有ip的指定端口号可以以 ":PORT"形式绑定为所有本地IP,例如":1883",如需进行指定IP需要改为"IP:Port"形式,例如"220.256.123.23:1883",如域名绑定只需把域名指向本机外网IP即可

-max 参数 GOMAXPROCS golang 虚拟机cpu性能参数

建议此值不要随意修改,保持默认值即可

-mc 参数 允许接入客户端最大连接数

限制Coolpy7内核封顶上限允许连接的客户端个数,当到达限制生效时不会再允许任何客户端连接进入,当有客户端断开时计数器会减少限制值,所以只要当前客户端连接数少于此值新连接都被允许接入

-nt 参数 空连接攻击防护盾

空连接攻击行业也是黑客常用的一种针对长连接服务器端的攻击行为,由于mqtt borker对协议连立在tcp/ip协议之上,所以如果黑客通过tcp/ip协议连立连接而不进行mqtt后续操作,服务器端资源将被此行为占用完所有网络资源。所以Coolpy7内核提供了防止此类攻击的防护盾,当tcp连接后多少秒内不进行mqtt后续操作时,防护盾会主动断开此连接,而此参数即为设置多少秒内连接未能正常登陆即主动断开连接

-ot 参数 Qos缓存消息最大保存时间

Coolpy7内核自带有10亿级高性能leveldb数据为作为消息质量控制Qos的离线存储能力,即内核就算意外关闭,所有因为Qos质量关系未成功送达的消息不会受到内核程序重启而丢失。此为存在此功能所以有可以一些消息会被永久保存在数据库中,可通过此参数设置最大保存消息的时间,一但超过此时间即消息会在数据库中永久清除

-psl 参数 publish消息防护盾

一般情况下mqtt的publish消息不会有任何限制,但当黑客恶意攻击你时,服务器端将受到资源被严重占用导至内核服务不能正常提供。所以Coolpy7提供了上防护盾,当某个客户端推送消息时间间隔于少此参数设置值时,内核会主动断开此客户端连接。需要配合使用的还要-dt参数,dt参数是当本参数生效生多少秒内不允许此客户端再次登陆。

-rt 参数 Retained消息缓存超时时间

Coolpy7内核自带有10亿级高性能leveldb数据为作为mqtt协议的Retained消息,此参数设置Retained消息最大保存时间,超时消息会被永久清除

-wt 参数 will消息缓存超时时间/秒

Coolpy7内核自带有10亿级高性能leveldb数据为作为mqtt协议的will消息,此参数设置will消息最大保存时间,超时消息会被永久清除

-st 参数 订阅缓存超时时间/秒

Coolpy7内核自带有10亿级高性能leveldb数据为作为mqtt协议的订阅主题sub的topic,qos等信息,此参数设置信息最大保存时间,超时消息会被永久清除

-mbs 参数 连接集群节点

例如:192.168.0.100:7946,192.168.0.101:7946。以半角豆号分隔多个节点连接信息。7946是默认集群端口,如启动参数更改了端口根据情况指定变更端口号。

-crk 参数 集群服务发现验证token

默认值 [email protected]#$dRdT( 此参数要求密钥长度必须为 16字符),此参数必须所有节点一致集群才能正常,防止非同一集群节点进入私有群集中。

-crp 参数 集群服务发现端口

集群发现端口,使用UDP协议,防火墙需开启放行。此端口为集群服务发现信号通信端口,默认端口号为7946。

-csp 参数 集群消息转发端口

此端口为群集节点间消息转发通信端口,使用UDP协议,防火墙需开启放行。默认端口号为7947。

-csk 参数 集群服务消息中转验证token

默认值 Coolpy7( 此参数没有长度限制,应尽量控制在32位以内),此参数必须所有节点一致集群消息中转才能正常,防止非同一集群节点消息转发到其他群集中,或被恶意监听集群消息。