架构

未匹配的标注
本文档最新版为 3.x,旧版本可能放弃维护,推荐阅读最新版!

Micro 为微服务提供了基本的构建模块. 目标是简化分布式系统开发. 因为微服务是一种架构模式, 所以 Micro 通过工具在逻辑上进行组织

查看体系结构上的 博客文章, 获取更详细的概述.

这里有一些介绍, 解释了 Micro 是如何构建的, 以及各种包/仓库之间是如何相互关联的.

工具包

API

启用 API 作为一个网关或代理, 来作为微服务访问的单一入口. 它应该在您的基础架构的边缘运行. 它将 HTTP 请求转换为 RPC 并转发给相应的服务.

Web

UI 是 go-micro 的 web 版本, 允许通过 Web UI 交互访问. 在未来, 它也将是一种聚合微型 Web 服务的方式. 它包含一种 Web 应用程序的代理方式. 将 /[name] 通过注册表路由到相应的服务. Web UI 将前缀 “go.micro.web“(可以配置)添加到名称中, 在注册表中查找它, 然后将进行反向代理.

Sidecar

Sidecar 是 go-micro 的 HTTP 接口版本. 这是将非 Go 应用程序集成到微环境中的一种方式.

Bot

Bot Hubot 风格的机器人工具, 位于您的微服务平台中, 可以通过 Slack, HipChat, XMPP 等进行交互. 它通过消息传递提供 CLI 的功能. 可以添加其他命令来自动执行常用操作任务.

CLI

Micro CLI 是 go-micro 的命令行版本, 它提供了一种观察和与运行环境交互的方式.

Go Micro

Go-micro 是微服务的独立 RPC 框架. 它是该工具包的核心, 并受到上述所有组件的影响. 在这里, 我们将看看 go-micro 的每个特征.

Registry

注册表提供可插入的服务发现库, 来查找正在运行的服务. 当前的实现是 consul, etcd, 内存和 kubernetes. 如果您的喜欢不一样, 该接口很容易实现.

Selector

选择器通过选择提供负载均衡机制. 当客户端向服务器发出请求时, 它将首先查询服务的注册表. 这通常会返回一个表示服务的正在运行的节点列表. 选择器将选择这些节点中的一个用于查询. 多次调用选择器将允许使用平衡算法. 目前的方法是循环法, 随机哈希和黑名单.

Broker

Broker 是发布和订阅的可插拔接口, 微服务是一个事件驱动的架构, 发布和订阅事件应该是一等公民. 目前的实现包括 nats, rabbitmq 和 http(用于开发).

Transport

传输是通过点对点传输消息的可插拔接口. 目前的实现是 http, rabbitmq 和 nats. 通过提供这种抽象, 运输可以无缝地换出.

Client

客户端提供了一种制作 RPC 查询的方法. 它结合了注册表, 选择器, 代理和传输. 它还提供重试, 超时, 使用上下文等.

Server

服务器是构建正在运行的微服务的接口. 它提供了一种供 RPC 请求的方法.

Plugins

提供 go-micro 的 micro/go-plugins 相关插件.

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
taadis
讨论数量: 0
发起讨论 只看当前版本


暂无话题~