簡體   English   中英

Java Rest / Web服務的TCP /二進制版本?

[英]TCP/binary version of Java rest/web services?

我是一名網絡新手,並且探索了一些框架,例如Jersey和CXF,用於在Java中構建RESTful Web服務。

我有一個新的應用程序,它需要通過Internet(在客戶端和服務器之間)發送大量的二進制數據,並且它必須非常快。 我想知道是否存在諸如純“ TCP / IP(非)Web服務”之類的東西,以及是否存在用於構建此類東西的開源Java庫。

如果所有網絡服務都必須位於TCP / IP之上,那么我想我正在尋找一種仍在使用二進制數據的東西,但是這為快速服務帶來了極少的開銷。

我總是將REST與XML或JSON相關聯。 如果它可以配置為超快並可以處理二進制數據,那么我什至會加入其中,因為我已經對Jersey有所了解。

認為 RMI可能是一個不錯的選擇,但不確定是否適合該用例。

我需要速度,我需要一個二進制協議 ,並且不確定從哪里開始。 有任何想法嗎? 提前致謝!

您不能使用Java套接字嗎?

那就是您可以達到的最低水平。

http://docs.oracle.com/javase/tutorial/networking/sockets/

是的,RMI比任何高級傳輸抽象(例如CFX)要快得多。 您有兩個選擇,原始套接字或RMI,使用RMI更容易。

REST是一種架構模式,其獨特特征是使用HTTP動詞來實現它們的初衷。 即使大多數已部署的REST服務都使用JSON序列化對象,整個HTTP事務看起來也像這樣:

PUT /user/foo HTTP/1.1
Host: example.com
X-Auth-Token: foobarbazanythingyouwanthere

{"fist": "Jeff", "last": "Atwood"}

響應是:

HTTP/1.1 200 OK

因此,沒有真正的“開銷”。 相反,您可以利用現有庫的功能來處理路由,身份驗證,序列化等。 由於HTTP使用的是類似MIME的信封,因此二進制內容沒有問題,即使這會增加一些開銷,也很難想出一個超高效而又有效的協議,更不用說您需要設計它了,實施所有庫,並且-沒人會對您的工作感興趣。

由於您聲明自己是“網絡新手”,並且似乎以隨機方式使用了諸如REST和RMI之類的術語,因此我強烈建議不要考慮性能,而應該使用標准技術。 您可以使用HTTP,有很多預先構建的框架,servlet容器,服務器存根,您都可以命名。

當您衡量實際的性能瓶頸時,請回來,以便我們提供更好的幫助您的數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM