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