Micro與Go-mirco
- Micro 概述
- API
- Web
- Sidecar
- Bot
- CLI
- Go-Micro
- Registry
- Selector
- Broker
- Transport
- Codec
- Plugins
- Server
- Client
- 總結
Micro 概述
Micro is a platform for cloud native development.
Micro是一個微服務工具包,包括:
API
提供并將HTTP請求路由到相應微服務的API網關,它充當微服務訪問的單一入口,將HTTP請求轉換為RPC并轉發給相應的服務也可以用作反向代理,

Web
UI是go-micro的web版本,允許通過UI互動訪問環境,在未來,它也將是一種聚合微型Web服務的方式,它包含一種Web應用程式的代理方式,將/[name]通過注冊表路由到相應的服務,Web UI將前綴“go.micro.web,”(可以配置)添加到名稱中,在注冊表中查找它,然后將進行反向代理,

Sidecar
go-micro的HTTP介面版本,這是將非Go應用程式集成到微環境中的一種方式,

Bot
Hubot風格的bot,位于您的微服務平臺中,可以通過Slack,HipChat,XMPP等進行互動,它通過訊息傳遞提供CLI的功能,可以添加其他命令來自動執行常見的操作任務,

CLI
一個直接的命令列界面來與你的微服務進行互動,它提供了一種觀察和與運行環境互動的方式,
Go-Micro
用于在Go中撰寫微服務的插件式RPC框架,它提供了用于服務發現,客戶端負載平衡,編碼,同步和異步通信庫,go-micro 是一個獨立的庫,可以獨立于其他工具包使用,

go-micro是組件化的框架,每一個基礎功能都是一個interface,方便擴展,同時,組件又是分層的,上層基于下層功能向上提供服務,整體構成go-micro框架,go-micro框架的構成組件有:
Registry
提供服務發現機制:決議服務名字至服務地址,目前支持的注冊中心有consul、etcd、 zookeeper、dns、gossip等
Selector
選擇器通過選擇提供負載均衡機制,當客戶端向服務器發出請求時,它將首先查詢服務的注冊表,這通常會回傳一個表示服務的正在運行的節點串列,選擇器將選擇這些節點中的一個用于查詢,多次呼叫選擇器將允許使用平衡演算法,目前的方法是回圈法,隨機哈希和黑名單,
Broker
發布和訂閱的可插入介面,服務之間基于訊息中間件的異步通信方式,默認使用http方式,線上通常使用訊息中間件,如Nats、Kafka、RabbitMQ 和 http(用于開發),
Transport
通過點對點傳輸訊息的可插拔介面,目前的實作是http,rabbitmq和nats,通過提供這種抽象,運輸可以無縫地換出,,
Codec
服務之間訊息的編碼/解碼,
Plugins
提供go-micro的micro/go-plugins插件,
Server
服務器是構建正在運行的微服務的介面,它提供了一種提供RPC請求的方法,該組件基于上面的Registry/Selector/Transport/Broker組件,對外提供一個統一的服務請求入口,
Client
提供一種制作RPC查詢的方法訪問微服務的客戶端,它結合了注冊表,選擇器,代理和傳輸,它還提供重試,超時,使用背景關系等,類似Server組件,它也是通過Registry/Selector/Transport/Broker組件實作查找服務、負載均衡、同步通信、異步訊息等功能,
總結
go-micro 是一個微服務的框架,而micro是官方提供的一個包,它是通過編譯后的可執行檔案來協助我們開發,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/197295.html
標籤:python
