精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

使用Netty,我們到底在開發些什么?

開源
在java界,netty無疑是開發網絡應用的拿手菜。你不需要太多關注復雜的nio模型和底層網絡的細節,使用其豐富的接口,可以很容易的實現復雜的通訊功能。

 在java界,netty無疑是開發網絡應用的拿手菜。你不需要太多關注復雜的nio模型和底層網絡的細節,使用其豐富的接口,可以很容易的實現復雜的通訊功能。

[[270862]]

和golang的網絡模塊相比,netty還是太過臃腫。不過java類框架就是這樣,屬于那種離了IDE就無法存活的編碼語言。

***的netty版本將模塊分的非常細,如果不清楚每個模塊都有什么內容,直接使用netty-all即可。

單純從使用方面來說,netty是非常簡單的,掌握ByteBuf、Channel、Pipeline、Event模型等,就可以進行開發了。你會發現面試netty相關知識,沒得聊。但Netty與其他開發模式很大不同,最主要的就是其異步化。異步化造成的后果就是編程模型的不同,同時有調試上的困難,對編碼的要求比較高,因為bug的代價與業務代碼的bug代價不可同日而語。

但從項目來說,麻雀雖小五臟俱全,從業務層到服務網關,以及各種技術保障,包括監控和配置,都是需要考慮的因素。netty本身占比很小。

 

使用Netty,我們到底在開發些什么?

 

本文將說明使用netty開發,都關注哪些通用的內容,然后附上單機支持100w連接的linux配置。本文并不關注netty的基礎知識。

協議開發

網絡開發中最重要的就是其通訊格式,協議。我們常見的protobuf、json、avro、mqtt等,都屬于此列。協議有語法、語義、時序三個要素。

 

使用Netty,我們到底在開發些什么?

 

我見過很多中間件應用,采用的是redis協議,而后端落地的卻是mysql;也見過更多的采用mysql協議實現的各種自定義存儲系統,比如proxy端的分庫分表中間件、tidb等。

我們常用的redis,使用的是文本協議;mysql等實現的是二進制協議。放在netty中也是一樣,實現一套codec即可(繼承Decoder或Encoder系列)。netty默認實現了dns、haproxy、http、http2、memcache、mqtt、redis、smtp、socks、stomp、xml等協議,可以說是很全了,直接拿來用很爽。

一個可能的產品結構會是這樣的,對外提供一致的外觀,核心存儲卻不同:

 

使用Netty,我們到底在開發些什么?

 

文本協議在調試起來是比較直觀和容易的,但安全性欠佳;而二進制協議就需要依賴日志、wireshark等其他方式進行分析,增加了開發難度。傳說中的粘包拆包,就在這里處理。而造成粘包的原因,主要是由于緩沖區的介入,所以需要約定雙方的傳輸概要等信息,netty在一定程度上解決了這個問題。

每一個想要開發網絡應用的同學,心里都埋了一顆重新設計協議的夢想種子。但協議的設計可以說是非常困難了,要深耕相應業務,還要考慮其擴展性。如沒有特別的必要,建議使用現有的協議。

連接管理功能

做Netty開發,連接管理功能是非常重要的。通信質量、系統狀態,以及一些黑科技功能,都是依賴連接管理功能。

 

使用Netty,我們到底在開發些什么?

 

無論是作為服務端還是客戶端,netty在創建連接之后,都會得到一個叫做Channel的對象。我們所要做的,就是對它的管理,我習慣給它起名叫做ConnectionManager。

管理類會通過緩存一些內存對象,用來統計運行中的數據。比如面向連接的功能:包發送、接收數量;包發送、接收速率;錯誤計數;連接重連次數;調用延遲;連接狀態等。這會頻繁用到java中concurrent包的相關類,往往也是bug集中地。

但我們還需要更多,管理類會給予每個連接更多的功能。比如,連接創建后,想要預熱一些功能,那這些狀態就可以參與路由的決策。通常情況下,將用戶或其他元信息也attach到連接上,能夠多維度的根據條件篩選一些連接,進行批量操作,比如灰度、過載保護等,是一個非常重要的功能。

管理后臺可以看到每個連接的信息,篩選到一個或多個連接后,能夠開啟對這些連接的流量錄制、信息監控、斷點調試,你能體驗到掌控一切的感覺。

管理功能還能夠看到系統的整個運行狀態,及時調整負載均衡策略;同時對擴容、縮容提供數據依據。

心跳檢測

應用協議層的心跳是必須的,它和tcp keepalive是完全不同的概念。

應用層協議層的心跳檢測的是連接雙方的存活性,兼而連接質量,而keepalive檢測的是連接本身的存活性。而且后者的超時時間默認過長,完全不能適應現代的網絡環境。

 

使用Netty,我們到底在開發些什么?

 

心跳就是靠輪訓,無論是服務端,還是客戶端比如GCM等。保活機制會在不同的應用場景進行動態的切換,比如程序喚起和在后臺,輪訓的策略是不一樣的。

Netty內置通過增加IdleStateHandler產生IDLE事件進行便捷的心跳控制。你要處理的,就是心跳超時的邏輯,比如延遲重連。但它的輪訓時間是固定的,無法動態修改,高級功能需要自己定制。

在一些客戶端比如Android,頻繁心跳的喚起會浪費大量的網絡和電量,它的心跳策略會更加復雜一些。

邊界

優雅退出機制

Java的優雅停機通常通過注冊JDK ShutdownHook來實現。

Runtime.getRuntime().addShutdownHook();

一般通過kill -15進行java進程的關閉,以便在進程死亡之前進行一些清理工作。

注意:kill -9 會立馬殺死進程,不給遺言的機會,比較危險。

雖然netty做了很多優雅退出的工作,通過EventLoopGroup的shutdownGracefully方法對nio進行了一些狀態設置,但在很多情況下,這還不夠多。它只負責單機環境的優雅關閉。

流量可能還會通過外層的路由持續進入,造成無效請求。我的通常做法是首先在外層路由進行一次本地實例的摘除,把流量截斷,然后再進行netty本身的優雅關閉。這種設計非常簡單,即使沒有重試機制也會運行的很好,前提是在路由層需要提前暴露相關接口。

 

 

使用Netty,我們到底在開發些什么?

 

 

異常處理功能

netty由于其異步化的開發方式,以及其事件機制,在異常處理方面就顯得異常重要。為了保證連接的高可靠性,許多異常需要靜悄悄的忽略,或者在用戶態沒有感知。

netty的異常會通過pipeline進行傳播,所以在任何一層進行處理都是可行的,但編程習慣上,習慣性拋到最外層集中處理。

為了***限度的區別異常信息,通常會定義大量的異常類,不同的錯誤會拋出不同的異常。發生異常后,可以根據不同的類型選擇斷線重連(比如一些二進制協議的編解碼紊亂問題),或者調度到其他節點。

功能限制

指令模式

網絡應用就該干網絡應用的事,任何通訊都是昂貴的。在《Linux之《荒島余生》(五)網絡篇》中,我們談到百萬連接的服務器,廣播一個1kb消息,就需要1000M的帶寬,所以并不是什么都可以放在網絡應用里的。

一個大型網絡應用的合理的思路就是值發送相關指令。客戶端在收到指令以后,通過其他方式,比如http,進行大型文件到獲取。很多IM的設計思路就是如此。

指令模式還會讓通訊系統的擴展性和穩定性得到保證。增加指令可以是配置式的,立即生效,服務端不需要編碼重啟。

穩定性保證

網絡應用的流量一般都是非常大的,并不適合全量日志的開啟。應用應該只關注主要事件的日志,關注異常情況下的處理流程,日志要打印有度。

網絡應用也不適合調用其他緩慢的api,或者任何阻塞I/O的接口。一些實時的事件,也不應該通過調用接口吐出數據,可以走高速mq等其他異步通道。

緩存可能是網絡應用里用的最多的組件。jvm內緩存可以存儲一些單機的統計數據,redis等存儲一些全局性的統計和中間態數據。

 

 

使用Netty,我們到底在開發些什么?

 

 

網絡應用中會大量使用redis、kv、高吞吐的mq,用來快速響應用戶請求。總之,盡量保持通訊層的清爽,你會省去很多憂慮。

單機支持100萬連接的Linux配置

單機支持100萬連接是可行的,但帶寬問題會成為顯著的瓶頸。啟用壓縮的二進制協議會節省部分帶寬,但開發難度增加。

和《LWP進程資源耗盡,Resource temporarily unavailable》中提到的ES配置一樣,優化都有類似的思路。這份配置,可以節省你幾天的時間,請收下!

操作系統優化

更改進程***文件句柄數

  1. ulimit -n 1048576 

修改單個進程可分配的***文件數

  1. echo 2097152 > /proc/sys/fs/nr_open 

修改/etc/security/limits.conf文件

  1. * soft nofile 1048576* hard nofile 1048576* soft nproc unlimitedroot soft nproc unlimited 

記得清理掉/etc/security/limits.d/*下的配置

網絡優化

打開/etc/sysctl.conf,添加配置

然后執行,使用sysctl生效

  1. #單個進程可分配的***文件數 
  2. fs.nr_open=2097152 
  3. #系統***文件句柄數 
  4. fs.file-max = 1048576 
  5. #backlog 設置 
  6. net.core.somaxconn=32768 
  7. net.ipv4.tcp_max_syn_backlog=16384 
  8. net.core.netdev_max_backlog=16384 
  9. #可用知名端口范圍配置 
  10. net.ipv4.ip_local_port_range='1000 65535' 
  11. #TCP Socket 讀寫 Buffer 設置 
  12. net.core.rmem_default=262144 
  13. net.core.wmem_default=262144 
  14. net.core.rmem_max=16777216 
  15. net.core.wmem_max=16777216 
  16. net.core.optmem_max=16777216 
  17. net.ipv4.tcp_rmem='1024 4096 16777216' 
  18. net.ipv4.tcp_wmem='1024 4096 16777216' 
  19. #TCP 連接追蹤設置 
  20. net.nf_conntrack_max=1000000 
  21. net.netfilter.nf_conntrack_max=1000000 
  22. net.netfilter.nf_conntrack_tcp_timeout_time_wait=30 
  23. #TIME-WAIT Socket ***數量、回收與重用設置 
  24. net.ipv4.tcp_max_tw_buckets=1048576 
  25. # FIN-WAIT-2 Socket 超時設置 
  26. net.ipv4.tcp_fin_timeout = 15 

總結

netty的開發工作并不集中在netty本身,更多體現在保證服務的高可靠性和穩定性上。同時有大量的工作集中在監控和調試,減少bug修復的成本。

深入了解netty是在系統遇到疑難問題時能夠深入挖掘進行排查,或者對苛刻的性能進行提升。但對于廣大應用開發者來說,netty的上手成本小,死挖底層并不會產生太多收益。

它只是個工具,你還能讓它怎樣啊。

責任編輯:武曉燕 來源: 今日頭條
相關推薦

2016-04-05 10:21:25

大數據元數據數據分析

2023-06-11 17:02:24

數字化轉型數字經濟

2020-03-09 16:43:06

腳本語言瀏覽器JavaScript

2020-11-02 12:47:56

性能優化

2019-05-28 09:19:57

5G華為美國

2020-10-08 14:45:36

Windows XPWindows微軟

2021-01-21 10:28:16

自然語言NLP人工智能

2020-10-29 11:08:06

CPUMySQL數據庫

2014-07-08 12:29:43

錘子手機

2021-03-16 22:47:42

數據分析大數據崗位

2021-11-03 07:58:27

異步編程線程

2018-11-19 06:00:00

2023-09-12 16:36:39

操作系統CPU周期性

2015-10-29 10:53:03

流量提速降費運營商

2025-04-11 07:46:09

2024-11-05 09:32:47

2010-08-05 09:20:04

云計算

2009-09-08 18:56:02

網絡管理軟件網絡拓撲摩卡軟件

2021-01-27 05:25:44

Go語言函數

2020-07-09 11:57:50

機器學習函數學習
點贊
收藏

51CTO技術棧公眾號

林心如三级全黄裸体| 日韩avxxx| 亚洲精品喷潮一区二区三区| 日韩天堂av| 一区二区三欧美| 婷婷激情小说网| 国产免费拔擦拔擦8x在线播放 | 91福利视频网| 国产精品久久免费观看| 视频一区在线| 日韩欧美在线网址| 手机看片日韩国产| 免费国产在线观看| 国产一区二区在线看| 欧美亚洲国产另类| 国产精品精品软件男同| 奇米亚洲欧美| 日韩欧美一区二区视频| 国产av无码专区亚洲精品| 九色porny丨首页在线| 91蝌蚪国产九色| 亚洲va码欧洲m码| 激情视频网站在线观看| 欧美日韩免费| 中文字幕亚洲天堂| 国产老熟女伦老熟妇露脸| 国产亚洲字幕| 欧美私人免费视频| 久久久999视频| 欧美人与牲禽动交com| 国产精品久久久久久亚洲伦| 久久久久久久久一区| 99久久久久成人国产免费| 三级在线观看一区二区| 亚洲2020天天堂在线观看| 99久久精品久久亚洲精品| 精品在线手机视频| 欧美精品一区二区不卡| 捷克做爰xxxⅹ性视频| 456成人影院在线观看| 精品美女国产在线| 欧美深夜福利视频| 男女在线视频| 夜夜嗨av一区二区三区网页 | 99精品福利视频| 欧美麻豆久久久久久中文| 日本美女黄色一级片| 欧美中文一区二区| 国产亚洲精品美女久久久久| 波多野结衣办公室33分钟| 国产精品18hdxxxⅹ在线| 日韩网站在线看片你懂的| 亚洲第一区第二区第三区| 国产成人午夜性a一级毛片| 91成人国产精品| 东京热加勒比无码少妇| 最新欧美色图| 性感美女极品91精品| 国产九色porny| 成年人国产在线观看| 亚洲午夜在线视频| 久操网在线观看| 久热在线观看视频| 日韩欧美中文在线| 91n.com在线观看| 国产福利亚洲| 欧美一区二区网站| 四虎国产精品免费| 欧美成人午夜77777| 亚洲精品v天堂中文字幕| 在线免费观看a级片| 一区二区三区四区在线看| 精品一区精品二区| 久久久久久久久福利| 日韩在线观看| 欧美丰满少妇xxxxx| 在线免费观看毛片| 久久久久久久波多野高潮日日| 日韩男女性生活视频| 久久久久久久久久一级| 精品一区二区在线免费观看| 3d动漫精品啪啪一区二区三区免费 | 青青青青在线| 亚洲美女精品一区| 欧美变态另类刺激| 国产精品黄色片| 日韩一区二区在线免费观看| 国产+高潮+白浆+无码| 亚洲春色h网| 日韩有码在线电影| 日本五十熟hd丰满| 人妖欧美一区二区| 2019国产精品视频| 国内三级在线观看| 一区二区三区波多野结衣在线观看| 国产欧美日韩网站| 精品国产黄a∨片高清在线| 日韩欧美激情四射| 免费看污黄网站在线观看| 亚洲成人日韩| 日韩av观看网址| 99热这里只有精品1| 91年精品国产| 大胆欧美熟妇xx| 亚洲精品粉嫩美女一区| 欧美精品一区二区蜜臀亚洲| 亚洲一级片在线播放| 激情自拍一区| 91精品国产综合久久久久久久久| 日韩一级中文字幕| 最新中文字幕一区二区三区| 国产精品无码人妻一区二区在线| 久久电影天堂| 亚洲欧洲日产国产网站| 欧美精品色哟哟| 免费精品视频最新在线| 精品国产乱码久久久久久丨区2区| 午夜在线免费观看视频| 日韩欧美黄色动漫| 久久久久久久人妻无码中文字幕爆| 欧美精品羞羞答答| 欧美一级bbbbb性bbbb喷潮片| 99久久夜色精品国产亚洲| 亚洲国产经典视频| 男人日女人下面视频| 亚洲国产欧美在线观看| 日韩视频在线免费观看| 无码人妻一区二区三区线| 国产成人精品一区二区三区四区 | 蜜芽在线免费观看| 欧美视频在线一区| 五级黄高潮片90分钟视频| 国产精品vip| 亚洲影视九九影院在线观看| 日本中文字幕在线看| 91极品视觉盛宴| 欧美亚一区二区三区| 亚洲第一区色| 成人在线视频电影| 污污影院在线观看| 日韩一区二区三区视频在线| 国产成人在线网址| 日韩av高清在线观看| 欧美一区二区综合| 久久r热视频| 亚洲欧美视频在线| 亚洲av无码精品一区二区| 91色porny在线视频| jizzjizz国产精品喷水| 97久久精品一区二区三区的观看方式| 亚洲电影中文字幕| 国产成人自拍视频在线| 成年人网站91| 一女被多男玩喷潮视频| 香蕉久久精品日日躁夜夜躁| 9.1国产丝袜在线观看 | 日韩中文字幕av| 国产偷人爽久久久久久老妇app | 精品一区二区三区在线观看国产| 香蕉久久免费影视| 日本国产一区| 欧美成人高清视频| 肥臀熟女一区二区三区| 亚洲午夜私人影院| 精品国产人妻一区二区三区| 亚洲一区国产一区| 欧美精品一区三区在线观看| 欧美在线va视频| 久久精品国产亚洲精品| 精品国产无码一区二区三区| 亚洲综合在线观看视频| 中文字幕精品视频在线| 久久久综合网| 中文字幕乱码一区二区三区| 日韩欧美中文字幕一区二区三区| 欧美高清第一页| 四虎影视在线播放| 欧美午夜一区二区| 欧美精品成人久久| 久久先锋影音av鲁色资源网| 色免费在线视频| 中文字幕一区二区三区久久网站| 国产一区二区三区av在线| 亚洲性色av| 精品国产网站地址| 国产91免费看| 一本久道久久综合中文字幕| 日本免费网站视频| 91在线视频在线| 天天爽夜夜爽一区二区三区| 欧美日韩18| 欧美性大战久久久久| 国内精品视频| 奇米一区二区三区四区久久| 精品黄色免费中文电影在线播放| 亚洲国产免费av| 曰批又黄又爽免费视频| 亚洲午夜三级在线| 精品人体无码一区二区三区| 成人在线综合网| 国产小视频精品| 亚洲婷婷在线| 日本成人性视频| 亚洲人成网站77777在线观看| 亚洲自拍偷拍网址| 麻豆精品蜜桃| 97精品免费视频| www久久日com| 在线看片第一页欧美| 色哟哟国产精品色哟哟| 欧美一区国产二区| 这里只有精品免费视频| 婷婷亚洲久悠悠色悠在线播放 | 亚洲成a天堂v人片| 紧身裙女教师波多野结衣| 久久精品一区二区| 波多野结衣办公室双飞| 精品亚洲porn| 欧美丰满熟妇xxxxx| 亚洲特色特黄| 欧洲xxxxx| 日韩毛片视频| 欧美在线日韩精品| 欧美激情极品| 国产91精品入口17c| 亚洲精品三区| 国产精品日韩在线一区| 芒果视频成人app| 91国自产精品中文字幕亚洲| 婷婷色在线资源| 久热爱精品视频线路一| 免费av在线网站| 少妇高潮 亚洲精品| 成人在线二区| 国产亚洲精品一区二555| 免费动漫网站在线观看| 日韩精品高清在线| 天堂av在线资源| 亚洲激情视频在线| 天天操天天干天天爽| 亚洲成人av片在线观看| 国产成人三级在线观看视频| 日韩精品一区二区三区老鸭窝| 国产精选久久久| 日韩一区二区三区四区| 精品国产亚洲AV| 欧美一区二区大片| 亚洲不卡免费视频| 精品免费日韩av| 人妻91麻豆一区二区三区| 精品国产乱码久久久久久1区2区| 精品黑人一区二区三区在线观看| 欧美一区二区高清| 日本xxxx人| 日韩大片免费观看视频播放| 日韩黄色影片| 国产香蕉精品视频一区二区三区| 国产一级网站视频在线| 少妇高潮久久久久久潘金莲| 久草免费在线| 久久久久国产精品免费| 国产盗摄——sm在线视频| 69精品小视频| 欧美va视频| 亚洲在线第一页| 国产精品网址| 欧美日韩一区二区视频在线观看| 成人短片线上看| 在线亚洲美日韩| 一区在线观看| 久久久久久久久久福利| 免费成人你懂的| 日本少妇一区二区三区| av在线不卡观看免费观看| 中文幕无线码中文字蜜桃| 国产精品美女久久久久久久久| 内射一区二区三区| 亚洲地区一二三色| 波多野结衣理论片| 8x福利精品第一导航| 黑人精品一区二区三区| 亚洲欧美日本另类| 黄色网页网址在线免费| 国内精品小视频在线观看| 偷拍中文亚洲欧美动漫| 亚洲va码欧洲m码| 蜜臀久久99精品久久一区二区| 亚洲欧美一区二区原创| 国产精品久久| 9久久婷婷国产综合精品性色 | 成人av资源| 欧美美女一区| 久久这里只有精品23| 美女爽到高潮91| 在线天堂www在线国语对白| 欧美激情一区二区三区| 久久久一区二区三区四区| 色八戒一区二区三区| www.亚洲欧美| 尤物九九久久国产精品的分类| 制服丝袜在线播放| 国产精品91久久| 精品国内亚洲2022精品成人| 亚洲精品影院| 香蕉国产精品偷在线观看不卡| 中文字幕一区久久| 91麻豆文化传媒在线观看| av激情在线观看| 在线观看精品一区| 人妻无码一区二区三区久久99| www.欧美免费| 少妇一区视频| 精品一区二区不卡| 欧美日一区二区在线观看| 黄大色黄女片18第一次| 26uuu色噜噜精品一区二区| 欧美精品乱码视频一二专区| 欧美裸体一区二区三区| 国产特黄在线| 欧美一区二区三区免费视| 91欧美极品| 熟女熟妇伦久久影院毛片一区二区| 日韩精品欧美成人高清一区二区| 无码人妻丰满熟妇啪啪网站| 亚洲视频1区2区| 伊人网免费视频| 亚洲欧美在线免费观看| 欧美一级鲁丝片| 国产精品青青草| 欧美啪啪一区| 夜夜爽久久精品91| 国产精品国产三级国产aⅴ入口| 无码免费一区二区三区| 精品视频偷偷看在线观看 | 国产精品久久视频| 免费看成人哺乳视频网站| 久久国产精品视频在线观看| 国产不卡在线播放| 免费在线视频观看| 日韩免费高清av| 午夜伦理在线视频| 99www免费人成精品| 一区二区日韩欧美| 亚欧精品在线视频| 亚洲欧美偷拍三级| 99热这里只有精品99| 欧美成人免费网| 永久免费精品视频| 黄网站色视频免费观看| 国产成人99久久亚洲综合精品| 欧美人妻精品一区二区免费看| 日韩三级精品电影久久久| 羞羞污视频在线观看| 99在线观看视频| 亚洲激情不卡| 免费黄色在线视频| 欧美性一区二区| 黄色免费在线网站| 成人av蜜桃| 先锋影音久久久| 国产一区在线观看免费| 91麻豆精品国产自产在线 | 欧美亚洲精品在线| 日韩一区二区三区久久| 亚洲免费伊人电影| 日本加勒比一区| 日韩男女性生活视频| 我不卡神马影院| zjzjzjzjzj亚洲女人| 色综合一区二区| 日本不卡三区| 97人人模人人爽人人少妇| 亚洲免费观看| 国产18无套直看片| 日韩免费福利电影在线观看| 丝袜诱惑一区二区| 免费日韩av电影| 久久aⅴ国产欧美74aaa| 精品深夜av无码一区二区老年| 日韩精品小视频| 欧美成人免费全部网站| 黄色一级片国产| 久久精品一区二区三区四区| 国产女人18毛片水真多| 97在线视频免费播放| 久久理论电影| 久草视频福利在线| 欧美在线观看禁18| 日本在线观看高清完整版| 欧美日韩精品免费看| 国内久久精品视频| 国产农村妇女aaaaa视频| 日韩综合中文字幕| 天美av一区二区三区久久| 婷婷免费在线观看| 欧美日韩另类在线| а√天堂在线官网| 色噜噜狠狠色综合网| 国产精品亚洲人在线观看| 99久久久无码国产精品免费蜜柚|