Ⅰ netty,webservice有什麼區別
Netty提供非同步的、事件驅動的網路應用程序框架和工具,用以快速開發高性能、高可靠性的網路伺服器和客戶端程序。 也就是說,Netty 是一個基於NIO的客戶,伺服器端編程框架,使用Netty 可以確保你快速和簡單的開發出一個網路應用,例如實現了某種協議的客戶,服務端應用。Netty相當簡化和流線化了網路應用的編程開發過程,例如,TCP和UDP的socket服務開發。
Netty是一個基於NIO的伺服器端(簡化TCP/UDP的socket開發)。
java 寫道Web Services是由企業發布的完成其特定商務需求的在線應用服務,其他公司或應用軟體能夠通過Internet來訪問並使用這項在線服務。實際上,WebService的主要目標是跨平台的可互操作性。為了達到這一目標,WebService完全基於XML(可擴展標記語言)、XSD(XMLSchema)等獨立於平台、獨立於軟體供應商的標准,是創建可互操作的、分布式應用程序的新平台。由此可以看出,在以下三種情況下,使用WebService會帶來極大的好處。
即提供第三方可使用服務(可以基於http/tcp等)。
servlet:是伺服器端執行的小應用程序,是一個伺服器組件,比如HttpServlet 用於實現對Http請求的處理,接受請求 處理、動態產生響應。
三者關注點不同:
netty 提供一套基於NIO的伺服器的框架(簡化TCP/UDP的socket開發),類似的還有mina。 比如實現一個web伺服器。
web service 重點是web服務,建立一套規則,使得跨平台/跨應用可可訪問。比如天氣預報介面、google Map介面等。
Ⅱ 怎麼搭建netty業務應用場景
下面將分析手頭上一個項目,運用的技術很全,值得學習,先做一個簡單介紹,當然業務部分代碼就不講了。
整個工程採用maven來管理,主要的技術是spring+jedis+netty+disruptor.看這個組合,這個伺服器端性能應該很不錯。
這個工程又引發我對技術無限熱愛 ,哈哈。
這
個工程,目前主要是針對一些基於json/xml/text格式的請求,同時也是支持標准手機請求的,當然,可以自定義一些其他格式或者pc端的請求,而
且針對不同URI,後面掛了不同的handler,這些可能都是一些web處理的基本思想,只是脫離了常規的web容器或者應用伺服器。
xml工具採用xstram來處理,兩個字,方便。
json工具採用jackson\不知道和業界出名的fastjson\gson\sf.json有何區別,待鑒定。
客
戶端的請求,統一繼承ClientRequestModel,經過編碼統一轉化為domainMessage,交由disruptor來處理,其實oop
里什麼繼承,實現,封裝思想,大部分都在圍繞一個東西在走,一句話,把看似各有稜角的東西如何轉化為共同的東西,求同存異啊(比如,水,石頭,空氣等,如
果在這一層,我們沒法統一用一個特徵來表示,我們可以先把它轉化為分子,那是不是可以用同一個東西來表示呢看如何高度抽象封裝,這真是一門藝術)。
Ⅲ java web既然已經有了tomcat為什麼還要使用netty
但是nio直接使用比較難用,所以有了mina,netty這些針對網路io部分(tcp/udp-傳輸層)的封裝(nio也有非網路io部分),為了使nio更易用。
http是應用層的協議。
servlet3.0則是另外一種東西,不是對協議的封裝,javaee6眾多規范中的一個,但凡javaee6的實現(或者像tomcat這種web容器部分的實現),都會支持servlet3.0,servlet理論上可以支持多種應用層協議(不單單只是http),而servlet3.0以後提供的非同步特性與javase提供的nio或aio無直接關系,就是使用bio一樣可以實現servlet3.0中提供的非同步特性。
非同步只是一種概念,非同步與否要看,上層使用的非同步,而支持的下層完全可能是阻塞的。
netty跟tomcat是同樣的概念么?
不是
netty官方說是個框架,那他是否還需要web容器支持?
不需要
如果我客戶端使用netty,服務端使用tomcat也是能連上的吧?
可以,比如客戶端直接使用netty構造http協議與tomcat支持的servlet通信
是不是可以用netty 的客戶端和服務端 直接替換掉HttpAsyncClient和tomcat?
不是很明白你的意思...netty的客戶端和服務端、HttpAsyncClient、tomcat...三者之間似乎不存在關系...看你的通訊協議了
Ⅳ netty如何使用
和spring , 先寫一個類,然後與一般的bean同樣配置
<!-- netty config example -->
<bean id="tcpServer" class="com.yixun.collector.server.NettyTCPServer" init-method="createServerBootstrap"
destroy-method="stopServer">
<property name="handshakePipelineFactory" ref="handshakePipelineFactory"></property>
</bean>
<bean id="handshakePipelineFactory" class="com.yixun.collector.server.HandshakePipelineFactory">
<property name="handshakeHandler" ref="handshakeHandler"></property>
<!-- <lookup-method name="createHandshakeHandler" bean="handshakeHandler" />
<property name="stringDecoder" ref="stringDecoder"></property>
<property name="stringEncoder" ref="stringEncoder"></property>
<property name="nulEncoder" ref="nulEncoder"></property>
<property name="frameSize" value="256"></property> -->
</bean>
Ⅳ 使用Netty開發web項目可以嗎
netty不能開發web項目,他不是web伺服器,盡管他支持http協議。
netty是中間件。你要用netty開發web項目可以用webserver連netty通信實現業務處理。但是單獨用netty是不行的,他不具備webserver的一些特性。
Ⅵ Netty類似於apache的mina,是一個nio抽象出來的nio類庫,在javaweb開發中如
我想你把兩個概念弄混了,Netty和Mina都是針對TCP/IP,或者UDP協議的,而Java EE是針對HTTP協議的。所以他們根本不是一回事兒。如果在Java EE的項目中用到Netty或者Mina。多半是為了做推送。
Ⅶ java web能用netty嗎求解答
當然可以。netty是優秀的JAVA網路應用程序框架,關鍵詞是NIO和非同步。它提供了對JAVA網路編程API的封裝,屏蔽了繁雜的編程細節,讓開發者可以更加專注於業務邏輯的實現。很多中間件都是基於netty來實現的,你可以用來實現一個web容器,也能寫一個游戲伺服器。學習netty能夠讓你更加熟悉網路編程,對個人好處還是比較大的。
但是需要提醒的是,你要根據你自己的需求決定用什麼技術,如果是做java web的通信,建議可以用activeMQ,使用要比neety簡單一點,而且這個是在應用層的通信架構,neety是協議層的通信架構。
Ⅷ 前端webstock訪問後端netty,可以正常建立連接,但是不能打開,幫幫忙看一下後端代碼哪裡有問題
你可以websocket肯定不行的。你的代碼只是簡單的綁定一個埠。
websocke還要綁定url,然後怎麼處理http發送的數據,你都沒有定義。這些東西都要在pipline中定義。
Ⅸ 請教,netty如何跟運行在tomcat中的web應用交互
其實系統不大,規劃的比較大(理想主義),現在運行的就是一個tomcat,每次測試的時候需要連比較多的socket連接。。。現在就是一個tomcat不能同時連接過得的socket,所以才需要使用netty來專門做socket連接服務