1. 程式人生 > 其它 >分享我的6點面試經驗,你值得擁有!

分享我的6點面試經驗,你值得擁有!

分享我的6點面試經驗,你值得擁有!

什麼是 RPC?RPC原理是什麼?

什麼是 RPC?

RPC(Remote Procedure Call)—遠端過程呼叫,它是一種通過網路從遠端計算機程式上請求服務,而不需要了解底層網路技術的協議。比如兩個不同的服務 A、B 部署在兩臺不同的機器上,那麼服務 A 如果想要呼叫服務 B 中的某個方法該怎麼辦呢?使用 HTTP請求 當然可以,但是可能會比較慢而且一些優化做的並不好。 RPC 的出現就是為了解決這個問題。

RPC原理是什麼?

  1. 服務消費方(client)呼叫以本地呼叫方式呼叫服務;
  2. client stub接收到呼叫後負責將方法、引數等組裝成能夠進行網路傳輸的訊息體;
  3. client stub找到服務地址,並將訊息傳送到服務端;
  4. server stub收到訊息後進行解碼;
  5. server stub根據解碼結果呼叫本地的服務;
  6. 本地服務執行並將結果返回給server stub;
  7. server stub將返回結果打包成訊息併發送至消費方;
  8. client stub接收到訊息,並進行解碼;
  9. 服務消費方得到最終結果。

下面再貼一個網上的時序圖:

RPC 解決了什麼問題?

從上面對 RPC 介紹的內容中,概括來講RPC 主要解決了:讓分散式或者微服務系統中不同服務之間的呼叫像本地呼叫一樣簡單。

常見的 RPC 框架總結?

  • RMI(JDK自帶):?JDK自帶的RPC,有很多侷限性,不推薦使用。

  • Dubbo:?Dubbo是 阿里巴巴公司開源的一個高效能優秀的服務框架,使得應用可通過高效能的 RPC 實現服務的輸出和輸入功能,可以和 Spring框架無縫整合。目前 Dubbo 已經成為 Spring Cloud Alibaba 中的官方元件。

  • gRPC?:gRPC是可以在任何環境中執行的現代開源高效能RPC框架。它可以通過可插拔的支援來有效地連線資料中心內和跨資料中心的服務,以實現負載平衡,跟蹤,執行狀況檢查和身份驗證。它也適用於分散式計算的最後一英里,以將裝置,移動應用程式和瀏覽器連線到後端服務。

  • Hessian:?Hessian是一個輕量級的remotingonhttp工具,使用簡單的方法提供了RMI的功能。 相比WebService,Hessian更簡單、快捷。採用的是二進位制RPC協議,因為採用的是二進位制協議,所以它很適合於傳送二進位制資料。

  • Thrift:?Apache Thrift是Facebook開源的跨語言的RPC通訊框架,目前已經捐獻給Apache基金會管理,由於其跨語言特性和出色的效能,在很多網際網路公司得到應用,有能力的公司甚至會基於thrift研發一套分散式服務框架,增加諸如服務註冊、服務發現等功能。

Kafka實戰筆記

關於這份筆記,為了不影響大家的閱讀體驗,我只能在文章中展示部分的章節內容和核心截圖,如果你需要完整的pdf版本,戳這裡即可免費領取

  • Kafka入門
  • 為什麼選擇Kafka
  • Karka的安裝、管理和配置
  • Kafka的叢集
  • 第一個Kafka程式

afka的生產者

  • Kafka的消費者
  • 深入理解Kafka
  • 可靠的資料傳遞
  • Spring和Kalka的整合
  • Sprinboot和Kafka的整合
  • Kafka實戰之削峰填谷
  • 資料管道和流式處理(瞭解即可)
  • Kafka實戰之削峰填谷