這個(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)求處理線程全滿(mǎn)時(shí),用于臨時(shí)存放已完成三次握手的請(qǐng)求的隊(duì)列的最大長(zhǎng)度。如果未設(shè)置或所設(shè)置的值小于1,Java將使用默認(rèn)50。
ChannelOption.SO_KEEPALIVE,?true
是否啟用心跳?;顧C(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。