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
与常见的通信软件对接,负责传送信息,远程指令操作