java - FAST 应用程序间通信的良好协议(protocol)?

标签 java web-services daemon protocols

<分区>

我即将实现一个可以快速回答查询的服务器应用程序。服务器是用java实现的。我不想在复杂的通信协议(protocol)上浪费很多时间,所以我寻找一种好的最佳实践方式 1)对我的服务器执行查询 2)让服务器回答该查询 查询和答案都是从整数到整数列表的映射。

相关:是否有任何组合框架既可以处理查询/响应协议(protocol)又可以管理传入的查询(将它们放入队列中)?

我不知道是否应该将其实现为普通守护进程或 Web 服务。 Web 服务似乎更灵活,因为它可以相对容易地移动到另一台机器,但普通守护进程听起来更快。

最佳答案

以灵 active 为代价,守护进程在短期内会更快。守护进程的优点是您可以以紧凑的形式发送回回复,在您的情况下是二进制整数值流。这将尽可能快。

如果请求数增加超过一定限度,可以使用DNS with Round Robin将负载分散到多台机器上,因此使用 HTTP 服务器没有优势。

主要缺点是您无法轻松调试此接口(interface)(对于大多数 Internet 协议(protocol),您只需远程登录到服务器监听的端口并运行几个命令并查看结果)。此外,如果您出于任何原因必须更改界面,您也必须更改每个客户端。当您需要在其他地方使用此服务时,情况会变得更糟,例如在 mashup 中.

所以如果你想更灵活一点,使用像HTTP和JSON这样的协议(protocol)作为数据格式。这不像二进制文件那么紧凑,所以回答时间会更糟。差多少取决于数据的大小。如果您可以将 JSON 编码的响应装入标准 IP 包(大约 1500 字节),您可能不会注意到差异。

关于java - FAST 应用程序间通信的良好协议(protocol)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/540071/

相关文章:

java - 使用 Log4J 捕获并记录所有未处理的异常

java - Datastore GeoSpatial 查询不返回任何内容

java - 编译器告诉我为java创建新文件

JavaScript:无法从 XML 文件中获取 @var - 值,因为 var 已被保留?

java - 模拟 Java Web 服务的最佳方式

Java processbuilder 子进程在退出后继续

java - 导航到网页中的每个链接后,如何使用 selenium java 通过方法 =post 获取所有表单的列表

ios - WCF 到 iOS web 方法

c - 在其挂钟运行时间的一部分上测量守护进程 CPU 利用率

daemon - 我如何编写 GNU Screen 脚本以从其中运行的程序开始,以便它不会在程序完成时退出 session ?