繁体   English   中英

如何在两个Java服务器之间建立网络通信

[英]How to establish network communication between two Java servers

目前我有两个 Java 服务器(游戏和数据库服务器),将来会有更多。 我需要在它之间建立网络通信,因为它们可以在不同的机器上运行。

最初,我想将对象序列化并通过网络发送它们,假设您需要将用户保存到数据库中,我将对象序列化并发送保存,但是我们如何进行删除、修改等操作。 . 所以我觉得这种方法不是很可取。

在这方面,问题可能是为此目的有任何现成的工具或技术,或者可能值得实施协议本身(但如何更好地实施)?

从协议开始。

定义可以发送的内容以及服务器需要的数据。 如果需要,您可以使用序列化,但除此之外,您还应该提供有关正在发送的内容以及如何处理的附加信息。

而且,当然,您的业务逻辑没有现成的实现。

决定发送什么、何时以及如何发送。

使用 JSON 定义您自己的协议,如下所示:设计一个包含您希望来回传递的数据的对象,或者为每个方向设计一个单独的实体。 有几种现成的解决方案可以将对象转换为 JSON 字符串并返回。 然后通过 TCP 发送字符串 - 参见示例使用 Java 通过 TCP 发送 JSON 对象

因此,两个服务器(API)可以通过各种机制进行通信,从 RMI、RPC 到 REST、JMS。 您必须决定要实施的机制。 REST 是一个很好的例子,根据您要执行的操作,您选择合适的 Http 方法,因此在插入/更新时使用 POST/PUT 并在正文中传递数据。 虽然 delete(DELETE) 只是调用 api(method),但最坏的情况是可以使用一些标志。

JMS 是另一种可能很方便的机制,您可以在其中发送消息并执行操作。 与 REST 类似,您可以定义消息格式和消息标头,可用于定义要执行的操作。

做这种事情的老式方法之一,就像你说的与数据库服务器通信,是定义一个数据库用户存储过程(USP)或一个函数,并通过传递适当的参数来调用 USP/函数。 当然,您必须编写客户端应用程序来执行此传递/调用任务。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM