1. 程式人生 > >micro 架構組件介紹

micro 架構組件介紹

java 行動 選擇器 開源 sage 中間 services 系統 界面

Micro 是什麽
  Micro 是微服務生態系統中專註於提供產品、服務和解決方案的一款軟件,使得在現代軟件企業中起到創新驅動。它計劃是可以將任何微服務相關的資源與即將使用此款軟件的公司結合起來,利用此技術來處理自己的業務。從早期原型的搭建直到大規模生產環境部署應用。
  Micro 可以理解為它就是一個微服務平臺,提供微服務的方便構建,官方說法也叫做:一個開源的微服務工具箱
  Micro 為構建和管理微服務提供核心要求,其中它主要通過 Go 語言編程來提供一系列的庫和工具,如果想要通過其他語言實現可通過 http 來使用,我們可以使用 Micro 提供的跨語言代理服務:sidecar
  micro 對應 github 地址:https://github.com/micro/micro


官方翻譯:
micro 的目的是為了簡化分布式系統開發。它的核心是應該有足夠的能力為任何想要開發微服務的人提供便利。當你有數以百計的服務規模時,micro 提供必要的工具來管理微服務的環境
如果你打算使用 golang 來開發對應的服務那麽就 check out 對應的項目名為:go-micro,如果是 java 語言開發就需要 check out 項目名為:ja-micro;其他語言如何使用可以查看:examples/sidecar
micro 工具箱有以下組件構成:
1. go-micro --> 一個用 golang 語言開發的可插入的RPC框架。它提供了所需要的庫從而實現服務發現,客戶端負載均衡、編碼、同步和異步通信。

2. sidecar --> 是語言無關的RPC代理,可以實現go-micro作為HTTP端點的所有功能。 golang 是構建微服務很好的語言,當然你也可以使用其他語言,因此,sidecar 提供了一種方法將你的其他應用程序集成到micro世界。
3. api   --> 這個 API 是一個 HTTP 網關服務和請求路由到適當的微服務。它作為一個單一入口點可以被用作一個反向代理或轉化為RPC的HTTP請求。
4. web   --> 一個web界面和反向代理的micro web應用程序。我們認為,web app 應該可以作為微服務,因此它可以被當做微服務中首先啟動的組件。它的行為表現的像 api 中的反向代理,當然也包括支持web sockets。

5. cli    --> 一個直接的命令行接口與微服務進行交互。當然,有時候我們不想直接連接到服務註冊中心它還允許我們利用 sidecar 作為一個代理來進行交互
6. bot(機器人) --> Hubot風格機器人,在你通過松弛微服務平臺,並可以與之交互,HipChat,XMPP等等。它提供了通過消息傳遞cli的特性。可以添加額外的命令自動共同行動的任務。
go-micro
它的實現是使用 golang 語言開發的一個可插入的 RPC 框架用於構建微服務。它提供了創建使用所需的基本特征、發現和交流服務。任何好的微服務架構都是從尋址服務發現、同步和異步通信開始。
它包括以下功能特點:
  1. Registry - Client side service discovery
   註冊 - 客戶端服務發現
  2. Transport - Synchronous communication
   通訊 - 同步通信
  3. Broker - Asynchronous comunication
   中間代理 - 異步通信
  4. Selector - Node filtering and load balancing
   選擇器 - 節點過濾和負載均衡
  5. Codec - Message encoding/decoding
   編碼解碼器 - 消息編碼/解碼
  6. Server - RPC server building on the above
   服務端 - 在這之上建立的 RPC 服務端
  7. Client - RPC client building on the above
   客戶端 - 在這之上建立的 RPC 客戶端

go-micro 不同於其他大部分的庫,它是可插拔式的體系結構。這使得具體實現和後臺系統每個package 中選擇交換不同的插件。例如,go-micro 默認的服務註冊機制是 Consul,但這可以很容易地換成例如 etcd、zookeeper 或其他任何你選擇實現的插件。我們可以通過以下地址找到一家實現好的插件列表:
github.com/micro/go-plugins
go-micro 作為可插入系統,它的價值是能夠選擇平臺用於支持微服務而不需要修改任何代碼。 go-micro 不需要修改任何代碼,只需要引入一個插件,你就完成了。
doc:
1. 查看 go-micro 的 redeme,它給我們提供了如何去寫、運行以及查詢一個服務的用法:https://github.com/micro/go-micro
2. 還有 greeter 示例代碼:github.com/micro/examples/greeter
3. micro 所有服務的示例查看:github.com/micro/examples
4. go-micro 的 plugins github地址:https://github.com/micro/go-plugins

micro sidecar
  The micro sidecar is a language agnostic proxy for building highly available and fault tolerant microservices.
  這個 micro sidecar 是一個跨語言的代理,目的是用來構建高可用和容錯能力的微服務。它類似於 Netflix 的 Prana 或者 是 Buoyant 的 RPC 代理 Linkerd



micro 架構組件介紹