netty ?快速開發(fā)基于tcp udp等協(xié)議開發(fā),就是快速的socket開發(fā),而且是NIO的
補充:TCP,UDP,HTTP協(xié)議
他們都屬于網(wǎng)絡(luò)塊的TCP/IP協(xié)議,TCP,UDP屬于傳輸層,一個是連接的,要經(jīng)過三次握手,一個是非連接的,一個相對于安全,但是速度較慢,TCP--java socket ,UDP--datagramsocket,TCP :HTTP FTP SOAP,TENLENT ,UDP :DNS
HTTP:屬于應(yīng)用層。依賴于瀏覽器,主要的對象是HttpRequest和HttpResponse Api可以通過URI 和appache的 HTTPClient進行調(diào)用,selvet3.0以后 可以通過setHttpOnly保證cookie的安全,HTTP調(diào)用流程,解析地址,域名和端口,域名通過dns服務(wù)器解析到具體的ip,在根據(jù)具體的請求映射到服務(wù)器,服務(wù)器容器初始化sevelt,調(diào)用deget或者dopost ,response給瀏覽器,瀏覽器下載相應(yīng)的js,css對頁面進行渲染。respons 有g(shù)izp方式對文件進行壓縮縮小渲染時間。
創(chuàng)建兩個事件組 NioEventLoopGoop ?一個是boss,一個是work
boss 負責(zé)accept,服務(wù)端的管理 ?work負責(zé)對進來的線程進行邏輯處理
服務(wù)端
整個過程相當(dāng)于坐公交車
EventLoopGroup是公交車
公交車會有很多售票員(暫且這么定)EventLoop ?
售票員工作是登記selector 每個進來的乘客 channel 到哪一站,
到站了提醒他下車 ,登記的乘客下車的整個事件集合成piple,
每個提醒的時間交個channelhandler處理。
整個過程通過一個引導(dǎo)器ServerBootStrap進行初始化,相當(dāng)于構(gòu)造這模式
客戶端與服務(wù)端相似
通過一個引導(dǎo)器初始化一個chanel, handler
設(shè)計模式Rector 相當(dāng)于觀察者模式,里面嵌套一個selector 相當(dāng)于注冊
DUBBO 通訊實現(xiàn)思想與上面類型,通過InVoke,實現(xiàn)customer和provider之間的互調(diào)
SpringMVC
核心是dispacherselvert,繼續(xù)servlet,就是一個servelt,通過上下文,產(chǎn)生默認的bean:
controler,視圖解析bean,handlermapping,handlerAdaptor
流程,請求--》通過handlerMapping,handlerAdaptor找到相應(yīng)的handler,進行邏輯處理,產(chǎn)生邏輯model,通過視圖解析,產(chǎn)生ModeAndView,渲染給response
<content :command-scan 可以掃描@Server @controler自動產(chǎn)生bean