启动参数及内核特殊功能

CP7启动参数说明

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

./go_build_Coolpy7_go -h

启动参数如下

Usage of ./go_build_Coolpy7_go:
-as
用户身份验证默认开关,true为不验证,false为通过插件验证 (default true)
-dt int
心跳或推送消息限制生效后,多少时间内不允许登陆/秒 (default 0)
-it int
消息ID标记缓存超时时间/秒, 默认0即不执行超时删除 (default 0)
-l string
绑定Host地址 (default ":1883")
-max int
GOMAXPROCS (default 1024)
-mc int
允许接入客户端最大连接数,0为不限制 (default 0)
-mpl int
允许单个消息体最大体积/单位Byte,0为不限制 (default 0)
-nt int
空连接攻击最大值,多少时间内连接未正常登陆后关闭连接/秒 (default 2)
-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)
-wt int
will消息缓存超时时间/秒, 默认0即不执行超时删除 (default 0)

参数逻辑说明

-as参数 全称Authentication standard

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

-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等信息,此参数设置信息最大保存时间,超时消息会被永久清除