Micro與Go-mirco
Micro 概述
Micro is a platform for cloud native development.git
Micro是一個微服務工具包,包括:github
API
提供並將HTTP請求路由到相應微服務的API網關。它充當微服務訪問的單一入口,將HTTP請求轉換爲RPC並轉發給相應的服務也能夠用做反向代理。web
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框架的構成組件有:
ide
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是官方提供的一個包,它是經過編譯後的可執行文件來協助咱們開發。