[英]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.