在Java中,實現分布式系統通常涉及到多個服務器之間的通信、數據同步和負載均衡等復雜問題。以下是一個簡化的示例,展示了如何使用Java主方法(main方法)來實現一個基本的分布式系統。這個示例將使用Java的Socket編程進行服務器和客戶端之間的通信。
import java.io.*;
import java.net.*;
public class Server {
public static void main(String[] args) {
int port = 12345;
try (ServerSocket serverSocket = new ServerSocket(port)) {
System.out.println("Server is listening on port " + port);
while (true) {
try (Socket socket = serverSocket.accept()) {
System.out.println("Client connected");
// 讀取客戶端發送的數據
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String inputLine;
while ((inputLine = in.readLine()) != null) {
System.out.println("Received from client: " + inputLine);
// 將數據發送回客戶端
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
out.println("Echo from server: " + inputLine);
}
} catch (IOException e) {
System.err.println("Error handling client connection: " + e.getMessage());
}
}
} catch (IOException e) {
System.err.println("Error starting server: " + e.getMessage());
}
}
}
import java.io.*;
import java.net.*;
public class Client {
public static void main(String[] args) {
String serverAddress = "localhost";
int port = 12345;
try (Socket socket = new Socket(serverAddress, port)) {
System.out.println("Connected to server");
// 發送數據到服務器
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
out.println("Hello, Server!");
// 讀取服務器返回的數據
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String response;
while ((response = in.readLine()) != null) {
System.out.println("Received from server: " + response);
}
} catch (IOException e) {
System.err.println("Error connecting to server: " + e.getMessage());
}
}
}
啟動服務器:
啟動客戶端:
觀察結果:
錯誤處理:
多線程:
數據持久化:
負載均衡:
安全性:
通過這些步驟和改進,你可以構建一個更復雜、更健壯的分布式系統。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。