Micro 是一个开源的微服务生态系统。目标是简化分布式系统开发,它提供了用于服务发现,客户端负载平衡,编码,同步和异步通信库。
架构
Micro 主要由 Go-Micro 和 微服务工具包 两个部分构成。
Go-Micro
Go-Micro 是 Micro 的核心,是一个独立的基于 gRPC 的微服务框架。
Go-micro.png
Client
Client 提供了一种发出 RPC 请求的方法。它还提供重试,超时,使用上下文等。
Server
Server 是构建正在运行的微服务的接口。它提供了一种接收 RPC 请求的方法。
Registry
Registry 是一个插件式的服务发现库,来查找正在运行的服务。可以选择基于 consul,etcd,内存和 kubernetes。
Selector
Selector 通过选择提供负载均衡机制。当 Client 向 Server 发出请求时,它将首先查询 Registry。这通常会返回一个表示服务的正在运行的节点列表。选择器将选择这些节点中的一个用于接收请求。多次调用 Selector 将触发平衡算法(循环法,随机哈希,黑名单)
Broker
Broker 是提供发布/订阅时间功能的插件。目前的实现包括nats,rabbitmq 和 http(用于开发)。
Transport
传输是通过点对点传输消息的插件。
微服务工具包
工具包的工具都是插件式的,作为辅助微服务开发的补充。
API
API网关是微服务的单一入口,可以用作反向代理和将 HTTP 请求转换为 RPC。
API.png
Web UI
用于Micro Web应用程序的仪表板和反向代理。
Web.png
Sidecar
一种对语言透明的RPC代理,提供了一种将其他语言应用程序集成到 Micro 世界的方法。
Sidecar.png
Bot
Hubot 风格的 bot,位于您的微服务平台中,可以通过 Slack,HipChat,XMPP等进行交互。它通过消息传递提供 CLI 的功能。可以添加其他命令来自动执行常见的操作任务。
Bot.png
CLI
一个直接的命令行界面来与你的微服务进行交互。它还使您可以利用 Sidecar 作为代理,从而不直接连接到服务注册表。
网友评论