Go 微服務架構Micro相關概念理解


Micro是一個微服務框架(或者說是工具集):提供了各類組件,解決微服務架構中的不同問題,服務監控、服務發現、熔斷機制,負載均衡等等,自己一個個解決這些問題幾乎不可能,這時候就需要借助go-micro這些組件了。提供了微服務的基礎框架。是一種架構.(go-micro  是Micro 底層實現, 用於寫服務的,而工具集是用來訪問附服務的)

服務被拆分為幾十個甚至上百個后如何進行管理呢?比如服務的伸縮、監控、部署怎么做,這時候可用 google 的 k8s 來進行服務治理,k8s 提供了微服務治理所需的全套工具。

API網關(API Gateway):API網關是請求的入口,把請求動態路由到具體服務,擁有強大的路由能力,它可以處理http、gRPC、websocket、消息推送事件等等。API網關模塊工作在軟件服務架構的邊緣。他的能力就是讓單一的入口去訪問微服務

命令行接口(Interactive CLI) :交互式的命令行接口。

服務代理(Service Proxy):它不暴露任何接口,只工作在內部環境,相當於橋接內部服務。 ???

模板生成(Template Generation):基於預置模版快速創建新的服務代碼。

SlackOps小機器人(SlackOps Bot): Slack小機器人插件,當它運行中服務中時,這個插件允許開發者通過Slack消息來操作平台。與平台交互的另外一種形式。

管理控制台(Web Dashboard):通過Web管理控制台,可以直接在Web頁面上查看服務的運行情況,管理控制台也有CLI交互頁面提供給開發者在線上處理,就像直接操作終端一樣。

Go-micro框架(Go Framework):是Micro的底層、核心。GO-Micro把分布式服務抽象,並提供簡便的方式讓大家構建具有高彈性的微服務。 

 

組件做到職責分離

 

可以通過Micro工具集的cli,web ui,slack,或者api網關(api gateway)來訪問操控服務。

API、Web、SRV作為micro工具集的一部分,我們嘗試着使用一些設計模式規划出彈性的架構,通過把API接口、Web管理控制台、SRV(SRV是service的簡稱,可理解為后台業務邏輯部分)

 

Go-micro: 可以幫你編寫微服務

  • 抽象出分布式系統
  • 集成服務發布、RPC、分發/訂閱機制、消息編碼
  • 超時容錯、重試機制、負載均衡
  • 功能可擴展
  • 可插拔的后台交換技術

 

Go-config: 可以管理復雜的配置

Go-plugins: 插件集,包含了絕大多數的后端技術

 

Rpc 框架可以讓你在 A 服務器調用 B 服務器上的函數接口,這中間因為走了網絡,所以是沒有單體應用中本地函數調用效率高的。但是當業務上規模后,這點損耗是可以忽略的

 

什么是微服務:

微服務是一種軟件架構模式,用來把大而重的應用程序切成許多可管理的、可管理的獨立服務,各服務之間的通信並不受不同語言的協議影響,每個服務只管做好一件事情。

  • 單一職責
  • 獨立進程
  • 輕量通信
  • 容錯隔離
  • 獨立發布
  • 易於理解
  • 執行力強

Micro是一個微服務的生態系統

Service是Client和Server的封裝:  包含了一系列的方法使用初始值去初始化Service和Client,使我們可以很簡單的創建一個rpc服務


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM