「go-micro」學習筆記1——Micro 與 Go-Micro

Micro 概述

Micro is a platform for cloud native development.git

Micro是一個微服務工具包,包括:github

API

提供並將HTTP請求路由到相應微服務的API網關。它充當微服務訪問的單一入口,將HTTP請求轉換爲RPC並轉發給相應的服務也能夠用做反向代理。web

image

Web

UI是go-micro的web版本,容許經過UI交互訪問環境。在將來,它也將是一種聚合微型Web服務的方式。它包含一種Web應用程序的代理方式。將/[name]經過註冊表路由到相應的服務。Web UI將前綴「go.micro.web。」(能夠配置)添加到名稱中,在註冊表中查找它,而後將進行反向代理。算法

image

Sidecar

go-micro的HTTP接口版本。這是將非Go應用程序集成到微環境中的一種方式。
image
服務器

Bot

Hubot風格的bot,位於您的微服務平臺中,能夠經過Slack,HipChat,XMPP等進行交互。它經過消息傳遞提供CLI的功能。能夠添加其餘命令來自動執行常見的操做任務。
image
負載均衡

CLI

一個直接的命令行界面來與你的微服務進行交互,它提供了一種觀察和與運行環境交互的方式。框架

Go-Micro

用於在Go中編寫微服務的插件式RPC框架。它提供了用於服務發現,客戶端負載平衡,編碼,同步和異步通訊庫。go-micro 是一個獨立的庫,能夠獨立於其餘工具包使用。異步

image
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是官方提供的一個包,它是經過編譯後的可執行文件來協助咱們開發。

相關文章
相關標籤/搜索