go-micro


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
registery
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
}
Transport

 




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 
與常見的通信軟件對接,負責傳送信息,遠程指令操作

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM