這個(gè)都是socket的標(biāo)準(zhǔn)參數(shù)唯竹,并不是netty自己的辕宏。
具體為:
ChannelOption.SO_BACKLOG,?1024
BACKLOG用于構(gòu)造服務(wù)端套接字ServerSocket對(duì)象热押,標(biāo)識(shí)當(dāng)服務(wù)器請(qǐng)求處理線程全滿時(shí)阵苇,用于臨時(shí)存放已完成三次握手的請(qǐng)求的隊(duì)列的最大長(zhǎng)度轮纫。如果未設(shè)置或所設(shè)置的值小于1趁仙,Java將使用默認(rèn)50洪添。
ChannelOption.SO_KEEPALIVE,?true
是否啟用心跳保活機(jī)制雀费。在雙方TCP套接字建立連接后(即都進(jìn)入ESTABLISHED狀態(tài))并且在兩個(gè)小時(shí)左右上層沒(méi)有任何數(shù)據(jù)傳輸?shù)那闆r下干奢,這套機(jī)制才會(huì)被激活。
ChannelOption.TCP_NODELAY,?true
在TCP/IP協(xié)議中盏袄,無(wú)論發(fā)送多少數(shù)據(jù)忿峻,總是要在數(shù)據(jù)前面加上協(xié)議頭,同時(shí)辕羽,對(duì)方接收到數(shù)據(jù)逛尚,也需要發(fā)送ACK表示確認(rèn)。為了盡可能的利用網(wǎng)絡(luò)帶寬刁愿,TCP總是希望盡可能的發(fā)送足夠大的數(shù)據(jù)绰寞。這里就涉及到一個(gè)名為Nagle的算法,該算法的目的就是為了盡可能發(fā)送大塊數(shù)據(jù)酌毡,避免網(wǎng)絡(luò)中充斥著許多小數(shù)據(jù)塊克握。
TCP_NODELAY就是用于啟用或關(guān)于Nagle算法。如果要求高實(shí)時(shí)性枷踏,有數(shù)據(jù)發(fā)送時(shí)就馬上發(fā)送菩暗,就將該選項(xiàng)設(shè)置為true關(guān)閉Nagle;如果要減少發(fā)送次數(shù)減少網(wǎng)絡(luò)交互旭蠕,就設(shè)置為false等累積一定大小后再發(fā)送停团。默認(rèn)為false旷坦。