一起玩轉微服務(4)——如何實施微服務

skyme發表於2020-06-18

一、如何實施微服務

微服務是一種架構的理念,提出了微服務的設計原則,從理論為具體的技術落地提供了指導思想。
實施微服務需要具備以下條件:

  • 計算和儲存資源能否快速的分配
  • 是否具備快速部署的能力,因為微服務每個服務都比較微小,所以不管是測試環境還是生產環境都需要快速部署的能力
  • 基本的監控,包括CPU、記憶體、網路等
  • 標準化的RPC

Spring Boot 是一套快速配置腳手架,可以基於 Spring Boot 快速開發單個微服務。
Spring Cloud 是一個基於 Spring Boot 實現的服務治理工具包;Spring Boot 專注於快速、方便整合的單個微服務個體;Spring Cloud 關注全域性的服務治理框架。
Spring Boot / Cloud 是微服務實踐的最佳落地方案。
當然,微服務的設計還對運維提出了更高的要求,如何進行自動構建,如何進行自動釋出,對於應用程式的質量管理以及遇到峰值時如何通過橫向擴充套件、彈性伸縮對於整個技術團隊都提出了更高的要求。

二、最流行6種微服務RPC技術

 

 

 

 

開源 RPC 框架有哪些呢?

 

一類是跟某種特定語言平臺繫結的,另一類是與語言無關即跨語言平臺的。
跟語言平臺繫結的開源 RPC 框架主要有下面幾種。

  • Dubbo:國內最早開源的 RPC 框架,由阿里巴巴公司開發並於 2011 年末對外開源,僅支援 Java 語言。
  • Motan:微博內部使用的 RPC 框架,於 2016 年對外開源,僅支援 Java 語言。
  • Tars:騰訊內部使用的 RPC 框架,於 2017 年對外開源,僅支援 C++ 語言。
  • Spring Cloud:國外 Pivotal 公司 2014 年對外開源的 RPC 框架,僅支援 Java 語言

而跨語言平臺的開源 RPC 框架主要有以下幾種。

  • gRPC:Google 於 2015 年對外開源的跨語言 RPC 框架,支援多種語言。
  • Thrift:最初是由 Facebook 開發的內部系統跨語言的 RPC 框架,2007 年貢獻給了 Apache 基金,成為 Apache 開源專案之一,支援多種語言。

三、rest

1. 什麼是REST

REST是一種架構風格,指的是一組架構約束條件和原則。滿足這些約束條件和原則的應用程式或設計就是 RESTful。REST規範把所有內容都視為資源,網路上一切皆資源。

REST並沒有創造新的技術,元件或服務,只是使用Web的現有特徵和能力。 可以完全通過HTTP協議實現,使用 HTTP 協議處理資料通訊。REST架構對資源的操作包括獲取、建立、修改和刪除資源的操作正好對應HTTP協議提供的GET、POST、PUT和DELETE方法。

REST與RPC比較

比較項        規範 REST RPC
通訊協議 HTTP 一般使用TCP
效能
靈活度

高與低是對實現兩種規範框架的相對比較,但也不是絕對的,需要根據實際情況而定。

都是網路互動的協議規範。通常用於多個微服務之間的通訊協議。

2. REST與RPC應用場景

REST和RPC都常用於微服務架構中。

  • HTTP相對更規範,更標準,更通用,無論哪種語言都支援http協議。如果你是對外開放API,例如開放平臺,外部的程式語言多種多樣,你無法拒絕對每種語言的支援,現在開源中介軟體,基本最先支援的幾個協議都包含RESTful。

RPC在微服務中的作用,RPC 框架作為架構微服務化的基礎元件,它能大大降低架構微服務化的成本,提高呼叫方與服務提供方的研發效率,遮蔽跨程式呼叫函式(服務)的各類複雜細節。讓呼叫方感覺就像呼叫本地函式一樣呼叫遠端函式、讓服務提供方感覺就像實現一個本地函式一樣來實現服務。

相關文章