ChannelOption.SO_BACKLOG, 1024算法
BACKLOG用於構造服務端套接字ServerSocket對象,標識當服務器請求處理線程全滿時,用於臨時存放已
完成三次握手的請求的隊列的最大長度。若是未設置或所設置的值小於1,Java將使用默認值50。 bootstrap
ChannelOption.SO_KEEPALIVE, true服務器
是否啓用心跳保活機制。在雙方TCP套接字創建鏈接後(即都進入ESTABLISHED狀態)而且在兩個小時左右上
層沒有任何數據傳輸的狀況下,這套機制纔會被激活。 網絡
ChannelOption.TCP_NODELAY, true線程
在TCP/IP協議中,不管發送多少數據,老是要在數據前面加上協議頭,同時,對方接收到數據,也須要發送ACK表示確認。
爲了儘量的利用網絡帶寬,TCP老是但願儘量的發送足夠大的數據。這裏就涉及到一個名爲Nagle的算法,該算法的目的
就是爲了儘量發送大塊數據,避免網絡中充斥着許多小數據塊。對象
TCP_NODELAY就是用於啓用或關於Nagle算法。若是要求高實時性,有數據發送時就立刻發送,就將該選項設置爲true關閉Nagle
算法;若是要減小發送次數減小網絡交互,就設置爲false等累積必定大小後再發送。默認爲false。 接口
4.ChannelOption.SO_REUSEADDR, true隊列
SO_REUSEADDR容許啓動一個監聽服務器並捆綁其衆所周知端口,即便之前創建的將此端口用作他們的本地端口的鏈接仍存在。
這一般是重啓監聽服務器時出現,若不設置此選項,則bind時將出錯。
SO_REUSEADDR容許在同一端口上啓動同一服務器的多個實例,只要每一個實例捆綁一個不一樣的本地IP地址便可。對於TCP,咱們根本
不可能啓動捆綁相同IP地址和相同端口號的多個服務器。
SO_REUSEADDR容許單個進程捆綁同一端口到多個套接口上,只要每一個捆綁指定不一樣的本地IP地址便可。這通常不用於TCP服務器。
SO_REUSEADDR容許徹底重複的捆綁:當一個IP地址和端口綁定到某個套接口上時,還容許此IP地址和端口捆綁到另外一個套接口上。
通常來講,這個特性僅在支持多播的系統上纔有,並且只對UDP套接口而言(TCP不支持多播)進程
5.ChannelOption.SO_RCVBUF AND ChannelOption.SO_SNDBUF
定義接收或者傳輸的系統緩衝區buf的大小,io
6.ChannelOption.ALLOCATOR Netty4使用對象池,重用緩衝區 bootstrap.option(ChannelOption.ALLOCATOR, PooledByteBufAllocator.DEFAULT); bootstrap.childOption(ChannelOption.ALLOCATOR, PooledByteBufAllocator.DEFAULT);