dubboss
HTTPCLIENT請求基于NETTY的HTTP服務(wù)器,NETTY生成相關(guān)的HTTPREQUEST、HTTPRESPONSE,調(diào)用SPRING 的DISPATCHSERVLET.SERVICE,將HTTPRESPONSE生成二進(jìn)制字節(jié),返回HTTPCLIENT。DISPATCHSERVLET同時(shí)會(huì)調(diào)用SPRING的CONTROLLER干活,即以前的SPRING MVC那套可以保留。缺點(diǎn):
nginx+tomcat與netty優(yōu)缺點(diǎn)
http://www.oschina.net/question/1765708_158026
我的架構(gòu)最開始是 nginx + [netty (tcp)
] 用nginx做負(fù)載均衡。后來分布式接口變成了http restful -> nginx + [netty(http)
]
于是參考了netty的官方http例子,開始移植代碼,其實(shí)移植量不大,只需要把原來的tpc handler里面的邏輯放到http handler里面就可以了。本以為ok了,測試才發(fā)現(xiàn)了大量的問題,其實(shí)問題本身是由于對http基礎(chǔ)掌握的還不夠透徹,比如keep-alive屬性,這個(gè)平時(shí)基本不用的東西,當(dāng)你要自己開發(fā)http server時(shí),變的很有用,你不能每次都close channel.你要化很多時(shí)間了解header里面每個(gè)字段的意思,然后去實(shí)現(xiàn)它。再比如一個(gè)post請求,你要自己寫代碼從body里面讀數(shù)據(jù),解碼等。
最終我放棄了netty,回到了tomcat.應(yīng)為tomcat把http的一切都幫你搞定了。
最終的架構(gòu)是 nginx + [tomcat(http)
]
tomcat就是針對http層的,所以我建議http還是選擇tomcat(或者其他成熟的http-server),并不是說netty不好,而是你的選擇問題,netty是一個(gè)網(wǎng)絡(luò)組件,tcp,udp,http都可以弄,但是官方文檔都是些hello wolrd級別的。如果你非常了解http結(jié)構(gòu),完全可以基于netty搞出一個(gè)比tomcat牛的http server.
如果做tcp開發(fā),netty不二之選!


于是參考了netty的官方http例子,開始移植代碼,其實(shí)移植量不大,只需要把原來的tpc handler里面的邏輯放到http handler里面就可以了。本以為ok了,測試才發(fā)現(xiàn)了大量的問題,其實(shí)問題本身是由于對http基礎(chǔ)掌握的還不夠透徹,比如keep-alive屬性,這個(gè)平時(shí)基本不用的東西,當(dāng)你要自己開發(fā)http server時(shí),變的很有用,你不能每次都close channel.你要化很多時(shí)間了解header里面每個(gè)字段的意思,然后去實(shí)現(xiàn)它。再比如一個(gè)post請求,你要自己寫代碼從body里面讀數(shù)據(jù),解碼等。
最終我放棄了netty,回到了tomcat.應(yīng)為tomcat把http的一切都幫你搞定了。
最終的架構(gòu)是 nginx + [tomcat(http)

tomcat就是針對http層的,所以我建議http還是選擇tomcat(或者其他成熟的http-server),并不是說netty不好,而是你的選擇問題,netty是一個(gè)網(wǎng)絡(luò)組件,tcp,udp,http都可以弄,但是官方文檔都是些hello wolrd級別的。如果你非常了解http結(jié)構(gòu),完全可以基于netty搞出一個(gè)比tomcat牛的http server.
如果做tcp開發(fā),netty不二之選!
dubboss是一個(gè)分布式REST服務(wù)的框架,實(shí)現(xiàn)了如下功能:
- 基于dubbo的RPC
- 基于netty的應(yīng)用服務(wù)器
- 基于springmvc的REST調(diào)用
- 基于ngnix的負(fù)載均衡
https://github.com/leiguorui/dubboss
posted on 2016-04-20 13:04 paulwong 閱讀(1707) 評論(0) 編輯 收藏 所屬分類: DUBBO