1、Micro API (Gateway) 2、Micro CLI 3、Micro Web 4、Micro Proxy (服務代理) 5、Micro 工具集的發展(Auth、Network、Run、Tunnel、Platform)
Micro工具集
Go-Micro 與Micro 兩個項目的關聯 Go-Micro是框架、不是服務,但是使用它來編寫微服務 Micro(運行時工具集)是基於GO-Micro編寫,面向go-micro服務治理與生態的工具集,包含很多服務和工具
micro負責管理以及對外暴露go-micro

Service
具體實例化的服務,包含兩個重要的組件client、server
client:發送rpc請求與廣播消息
server:接收rpc請求與消費消息
broker:異步通信組件(pub/sub;可以與其他插件集成;)
codec:數據編碼組件
registery:服務注冊組件

// The registry provides an interface for service discovery // and an abstraction over varying implementations // {consul, etcd, zookeeper, ...} type Registry interface { Init(...Option) error Options() Options Register(*Service, ...RegisterOption) error Deregister(*Service) error GetService(string) ([]*Service, error) ListServices() ([]*Service, error) Watch(...WatchOption) (Watcher, error) String() string } 通用型注冊中心 etcd\consul\zk\eureka 網絡廣播 mdns\gossip 消息中間件 nats
selector客戶端均衡器
transport 同步通信組件

// Transport is an interface which is used for communication between // services. It uses connection based socket send/recv semantics and // has various implementations; http, grpc, quic. type Transport interface { Init(...Option) error Options() Options Dial(addr string, opts ...DialOption) (Client, error) Listen(addr string, opts ...ListenOption) (Listener, error) String() string }
config 配置組件 (fiel、consul、zk、grpc)
sync 分布式同步
web web服務
proxy 異構代理
data 數據庫組件
Monitor 監控組件
Router 智能路由
Tunnel P2P網絡隧道
Network DC網絡
Agent 命令代理
API
1、API 將http請求映射到API接口 (req->micro api(網關層) -> xx api(聚合層) -> xx srv(服務層))
2、RPC 將http請求映射到RPC服務 (req-> micro api -> xx srv)
3、EVENT 將http請求廣播到訂閱者
4、PROXY 反向代理 ;只處理micro風格的rpc請求(其他語言來調用),而非http請求;支持異構系統
5、WEB 支持websocket的反向代理;代理到不同的服務
Web
micro web // 8082
(1、代理服務;2、dashboard(界面調用行))
反向代理與管理控制台
CLI
命令行操作micro服務
//micro call greeter Greeter.Hello {\"name\":\"123\"}//micro api --handler=rpc
BOT
與常見的通信軟件對接,負責傳送信息,遠程指令操作