Atitit.atiRI  與 遠程調用的理論and 設計

来源:http://www.cnblogs.com/attilax/archive/2016/08/16/5777791.html
-Advertisement-
Play Games

Atitit.atiRI 與 遠程調用的理論and 設計 1. 怎麼做到透明化遠程服務調用?1 2. 2 怎麼對消息進行編碼和解碼1 2.1. 確定消息數據結構dsl1 2.1.1. 消息里為什麼要帶有requestID?2 2.2. 序列化與反序列化 json2 3. 通信 http2 4. 發佈 ...


 

 

Atitit.atiRI  與 遠程調用的理論and 設計

 

 

1. 怎麼做到透明化遠程服務調用?1

2. 2  怎麼對消息進行編碼和解碼1

2.1.  確定消息數據結構dsl1

2.1.1. 消息里為什麼要帶有requestID?2

2.2. 序列化與反序列化 json2

3. 通信  http2

4. 發佈自己的服務2

 

 

 

1. 怎麼做到透明化遠程服務調用?

 

怎麼封裝通信細節才能讓用戶像以本地調用方式調用遠程服務呢?對java來說就是使用代理!java代理有兩種方式:1) jdk 動態代理;

 

2. 2  怎麼對消息進行編碼和解碼

作者::  ★(attilax)>>>   綽號:老哇的爪子  全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿爾 拉帕努伊  漢字名:艾龍,  EMAIL:[email protected]

轉載請註明來源: http://www.cnblogs.com/attilax/

 

2.1.  確定消息數據結構dsl

 

介面名稱(class).method(param)   參數類型&參數值

要是只一個method,可以反射參數型...貝兒,就要手動指定型..

 

4)超時時間

5)requestID,標識唯一請求id,在下麵一節會詳細描述requestID的用處。

同理服務端返回的消息結構一般包括以下內容。

1)返回值

2)狀態code

3)requestID

 

2.1.1. 消息里為什麼要帶有requestID?

為非同步處理

2.2. 序列化與反序列化 json

 

3. 通信  http

 

4. 發佈自己的服務

 

有沒有一種方法能實現自動告知,即機器的增添、剔除對調用方透明,調用者不再需要寫死服務提供方地址?當然可以,現如今zookeeper被廣泛用於實現服務自動註冊與發現功能!

簡單來講,zookeeper可以充當一個服務註冊表(Service Registry),讓多個服務提供者形成一個集群,讓服務消費者通過服務註冊表獲取具體的服務訪問地址(ip+埠)去訪問具體的服務提供者。如下圖所示:

 

 

 

 

 

參考

 

你應該知道的 RPC 原理 - 文章 - 伯樂線上.html

 

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • wxPython ImportError DLL load failed: ...
  • 原文鏈接:http://blog.miguelgrinberg.com/post/easy-websockets-with-flask-and-gevent 介紹部分就先不翻了 This weekend I decided to take a short vacation from my book ...
  • 在去年的時候,偶然看到hqx演算法。 一個高質量的插值放大演算法。 與雙線性插值等插值演算法相比,這個演算法放大後對人眼保護相對比較好。 沒有雙線性插值看起來模糊,固然,也抽空把演算法簡單優化了一下。 官網及代碼: https://web.archive.org/web/20131205091805/http ...
  • 變數是用於存儲數據的容器,與代數相似,可以給變數賦予某個確定的值(例如:$x=3)或者是賦予其它的變數(例如:$x=$y+$z)。變數的定義主要有以下規則: 變數以$開始,後面跟著變數的名稱; 變數名稱有數字、字母、下劃線構成,且第一個字元不能為數字; 變數名稱不能包含空格; 變數名稱區分大小寫。 ... ...
  • 一、Python安裝 在Mac系統下,系統自帶python開發環境,打開終端,輸入python,我們就可以看到當前python版本號,例如我的系統是OS X EI Caption 10.11.1,自帶的python版本是2.7。 目前python已經更新到3.6,因為python3和python2做 ...
  • Java中的GOF23(23中設計模式) 單例模式(Singleton) 在Java這這門語言裡面,它的優點在於它本身的可移植性上面,而要做到可移植的話,本身就需要一個中介作為翻譯工作,以達到本地和Java的統一,但是就這點而言就相當的消耗資源,所以就Java程式員需要不斷的去優化自己的代碼。今天所 ...
  • Python有這麼幾種數據類型: 1. 數字【整型int/long,浮點型float/complex】 int 整型一般32bit機器32位寬,64bit機器64bit寬。 long Python3已經把int和long整合了, 相互轉化會自動進行 float Python的浮點數就是數學中的小數, ...
  • Atitit.事件機制 與 消息機制的聯繫與區別 1. 消息/事件機制是幾乎所有開發語言都有的機制,在某些語言稱之為消息(Event),有些地方稱之為(Message).1 2. 發佈/訂閱模式1 3. 事件是侵入式設計,霸占你的主迴圈;消息是非侵入式設計,將主迴圈該怎樣設計的自由留給用戶。1 3. ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...