我即将实现一个可以快速回答查询的服务器应用程序。服务器是用java实现的。我不想在复杂的通信协议(protocol)上浪费很多时间,所以我寻找一种好的最佳实践方式
1)对我的服务器执行查询
2)让服务器回答该查询
查询和答案都是从整数到整数列表的映射。
相关:是否有任何组合框架既可以处理查询/响应协议(protocol)又可以管理传入的查询(将它们放入队列中)?
我不知道是否应该将其实现为普通守护进程或 Web 服务。 Web 服务似乎更灵活,因为它可以相对容易地移动到另一台机器,但普通守护进程听起来更快。
以灵 active 为代价,守护进程在短期内会更快。守护进程的优点是您可以以紧凑的形式发送回回复,在您的情况下是二进制整数值流。这将尽可能快。
如果请求数增加超过一定限度,可以使用DNS with Round Robin将负载分散到多台机器上,因此使用 HTTP 服务器没有优势。
主要缺点是您无法轻松调试此接口(interface)(对于大多数 Internet 协议(protocol),您只需远程登录到服务器监听的端口并运行几个命令并查看结果)。此外,如果您出于任何原因必须更改界面,您也必须更改每个客户端。当您需要在其他地方使用此服务时,情况会变得更糟,例如在 mashup 中.
所以如果你想更灵活一点,使用像HTTP和JSON这样的协议(protocol)作为数据格式。这不像二进制文件那么紧凑,所以回答时间会更糟。差多少取决于数据的大小。如果您可以将 JSON 编码的响应装入标准 IP 包(大约 1500 字节),您可能不会注意到差异。