簡體   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