Cobub Razor
Cobub Toaster
其它鏈接
linux 內(nèi)核參數(shù)設(shè)置(做測試不需要設(shè)置, 只在正式環(huán)境中設(shè)置) 修改/etc/sysctl.conf, 加入以下幾行:
fs.file-max = 600000 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_fin_timeout = 30 net.ipv4.tcp_max_tw_buckets = 5000 net.ipv4.ip_local_port_range = 1024 61000 net.ipv4.tcp_rmem = 512 32768 262142 net.ipv4.tcp_wmem = 1024 32768 262142 net.core.netdev_max_backlog = 8096 net.core.rmem_default = 262144 net.core.wmem_default = 262144 net.core.rmem_max = 2097152 net.core.wmem_max = 2097152 net.ipv4.tcp_syncookies = 1
然后執(zhí)行”sysctl -p”命令,需要root權(quán)限。 需要注意的是fs.file-max,這個是全局范圍內(nèi)可以打開的文件句柄,視對長連接數(shù)量的需求以及服務(wù)器內(nèi)存的大小而決定,樣例這里是60w,通常要比維持的長連接數(shù)量要多一些,比如需要維持50w的長連接,那么這個數(shù)量最好設(shè)置為60w。 修改/etc/security/limits.conf,在最后加入:
USERNAME - nofile 600000
第一參數(shù)USERNAME改為你的用戶名,600000與上面的fs.file-max設(shè)為相同的值。之后重新遠程登錄Linux或者重啟,重啟或者重新登錄之后輸入命令“ulimit -n”,如果顯示為600000則表示設(shè)置生效。 如果沒有設(shè)置這些參數(shù), 當長連接超過一定數(shù)量時, 會拋出錯誤
ulimit: open files: cannot modify limit: Operation not permitted
或者
Too many open files in system
將 Cobub Toaster 的壓縮包解壓到任意目錄,建議解壓到 /usr/local/ 或 /opt/ 目錄下 然后修改配置文件 toaster.conf,重點解釋幾個值
[base] # userMaxCount: 這個參數(shù)比較關(guān)鍵, 這是允許最大的鏈接數(shù)量, 如果超過這個數(shù)量, 服務(wù)器會返回"5000 server is busy" 錯誤給客戶端, 這個值不能比上面設(shè)置的fs.file-max大。 userMaxCount 500000 # bind: 表示推送服務(wù)tcp監(jiān)聽的網(wǎng)卡:端口, 用","分隔多個監(jiān)聽, 通常場景下只需要監(jiān)聽一個端口就足夠了 tcp.bind 0.0.0.0:9000,0.0.0.0:9001 [web] # post body 的大小限制, 默認為10M, 要表示為1g可以寫成"1gb" postlimit 10mb # bind: 這個參數(shù)表示web service監(jiān)聽的網(wǎng)卡:端口, 注意, 這里的localhost應(yīng)該要替換為自己的內(nèi)網(wǎng)地址, 綁定內(nèi)網(wǎng)的網(wǎng)卡. 如一般是192.168.xxx.xxx(不建議把web service暴露到公網(wǎng))。建議使用Nginx作為反向代理,否則可能發(fā)生亂碼問題。 bind 127.0.0.1:8888 [message] feedbackTimeout 20m # 最大的消息過期時間為720小時(30天) maxMsgExpire 720h [connection] #最小心跳包間隔時間, 1分鐘 min_heartbeart_timeout 1m #最大心跳包間隔時間, 20分鐘 max_heartbeat_timeout 20m #在心跳包間隔+heartbeatDelay的時間內(nèi)如果沒有接收到客戶端發(fā)來的心跳包, 那么server #會認為這是死鏈接, 會close掉這個鏈接, 此處設(shè)為30s heartbeatDelay 30s [cobub_verify] #這兩個key來自于Cobub 用戶中心 user_key 3e5f68afbb0f94xxx09bfc1730 user_secret 2d43d5dcdcb2yyyy3269dfb56b4b17
Redis 安裝&配置
tar zxvf redis-2.6.16.tar.gz cd redis-2.6.16 make sudo make install cd ~ mkdir redis-6379 cd redis-6379 nohup redis-server &
注意啟動之前請確認redis已經(jīng)在運行。
nohup ./toaster -log_dir="./log" &
./toaster -version