调用线程必须为sta_Java手写分布式系统远程调用RPC框架
生活随笔
收集整理的這篇文章主要介紹了
调用线程必须为sta_Java手写分布式系统远程调用RPC框架
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、RPC簡介
最近看hadoop底層通信,都是通過RPC實現的。
RPC(Remote Procedure Call Protocol)遠程調用: 遠程過程調用是一種常用的分布式網絡通信協議,它允許運行于 一臺計算機的程序調用另一臺計算機的子程序,同時將網絡的通信細節隱藏起來, 使得用戶無須額外地為這個交互作用編程。分布式系統之間的通信大都通過RPC實現
二、RPC請求過程
三、RPC框架架構
要寫一個RPC框架,需要哪些組成部分?
四、RPC框架示例
服務端代碼
服務接口:
//計算學生年齡和的接口public interface CalculateService { String cal(Student sta, Student stb);}public class CalculateServiceImpl implements CalculateService { @Override public String cal(Student sta, Student stb) { return "學生年齡之和:" + (sta.getAge() + stb.getAge()); }}服務發布
public class PublishUtilI { //服務接口集合 private static List serviceList; private static ThreadPoolExecutor executor = new ThreadPoolExecutor(5,10,10, TimeUnit.SECONDS, new LinkedBlockingQueue(10)); public static void publish(int port,Object... services) throws IOException { serviceList= Arrays.asList(services); ServerSocket server = new ServerSocket(port); Socket client; while (true) { //阻塞等待請求 client = server.accept(); //使用線程池處理請求 executor.submit(new ServerHandler(client, serviceList)); } }}反射調用服務
客戶端代碼
public class Client { public static void main(String[] args) { CallProxyHandler handler = new CallProxyHandler("127.0.0.1總結
以上是生活随笔為你收集整理的调用线程必须为sta_Java手写分布式系统远程调用RPC框架的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Ubuntu18.04 下安装TIM
- 下一篇: 液压系统