常见问题

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

常见问题#

常见问题应该提供大多数问题的的快速解答.

什么是 Micro?#

Micro 使开发人员能够构建,共享和协作分布式系统,即微服务.

开源#

Micro 构建为开源库和工具,以帮助微服务开发.

  • 框架 - 编写微服务的 Go 框架;服务发现,远程过程调用,发布 / 订阅等.
  • 运行时 - 微服务运行时环境;API 网关,cli, slackbot, service proxy, 等.
  • 插件 - 框架和运行时的插件,包括 etcd, kubernets, nats, grpc, 等.

可以在 github.com/micro 找到所有工具.

网络#

Micro 为共享和运行服务提供了开放的全球始终在线的云环境。任何人都可以加入和使用 网络. 这是在任何组织或团队之外开启公共协作的好方法.

探索 网络.

社区#

有一个 slack 的社区,有成千上万的成员。

邀请你自己加入 micro.mu/slack/

我该从哪里开始?#

go-micro 开始. readme 提供了一个简单的示例微服务.

通过阅读 入门 指南或检出 示例 来了解更多信息.

使用 micro 工具包通过 cli, web ui, slack 或 api 网关访问微服务.

谁在使用 Micro?#

查看 用户 页面,其中列出了使用 Micro 的公司 (但请注意,更新存在滞后所以可能不是最新的).

还有更多人也在使用它,但尚未公开。如果您使用的是 Micro, 请随时添加您的公司.

如何使用 Micro?#

很简单

  1. 使用 go-micro 编写服务.
  2. 通过 micro 工具包访问它们.
  3. 利润.

查看完整的 问候者 示例.

零依赖的服务发现#

多播 DNS 是内置注册的用于零配置的服务发现机制.

你不需要做任何事情!它刚刚内置,默认情况下已启用.

我可以使用某些内容而不是 MDNS 吗?#

是的!服务发现注册表是完全可插拔的. Etcd 也包含在默认插件中.

MICRO_REGISTRY=etcd MICRO_REGISTRY_ADDRESS=127.0.0.1:2379 myservice

我在哪里可以运行 Micro?#

Micro 是运行时无感知的。你可以在你喜欢的任何地方运行它。在裸机上,在 AWS 上,使用 Google 云。在你最喜欢的容器编排系统上,如 Mesos 或 Kubernetes.

事实上,在 Kubernetes 有 Micro 的演示配置。可参阅此仓库 github.com/micro/kubernetes

API, Web 和 SRV 服务之间的区别是什么?#

作为 micro 工具包的一部分,我们尝试通过分离 API, Web 仪表板和后端服务 (SRV) 的关注点,为可扩展体系结构定义一组设计模式.

API 服务#

API 服务是一个单独的服务层,用于为 http/json API 提供服务。这可能是您的客户面向公众的 api 或网络. API 服务由 micro api 提供,并符合 api 网关模式。它们编写为标准 Go Micro 服务,但使用命名空间 go.micro.api 在逻辑上分离自身.

Web 服务#

Web 服务由默认命名空间 go.micro.web 的 micro web 提供服务。我们相信 Web 应用程序是微服务领域的一等公民,因此将 Web 仪表板构建为微服务. Micro Web 是反向代理,将根据服务解析路径将 HTTP 请求转发到相应的 Web 应用.

想要了解更多,可参阅 这里

SRV 服务#

SRV 服务基本上是标准的 RPC 服务,即您通常编写的服务类型。我们通常称他们为 RPC 或后端服务,因为它们主要应该是后端体系结构的一部分,并且永远不会面向公共。默认情况下,我们使用命名空间 go.micro.srv 进行这些操作,但您应该使用域 com.example.srv.

性能如何?#

性能不是 Micro 的当前焦点,但始终是我们努力的目标。我们让更广泛的 Go 生态系统处理繁重的工作,并首先关注开发人员的工作效率。这意味着我们在底层使用 gRPC 在和 NATS 进行消息传递.

如果默认插件的性能不够,您可以使用 go-plugins 切换到您选择的工具.

Micro 支持 gRPC 吗?#

是的。在 v2 中,默认情况下使用 gRPC.

Micro vs Go-Kit#

有很多人问过这个问题. micro 和 go-kit 之间的区别是什么?

Go-kit 将自己描述为微服务的标准库。与 Go 一样,go-kit 还为您提供可用于构建应用程序的单个包. Go-kit 非常适合完全控制如何定义服务.

Go Micro 是微服务的可插拔 RPC 框架。这是一个有意见的框架,它试图简化分布式系统的通信方面,以便您可以专注于业务逻辑本身. Go-micro 非常适合快速启动和运行,同时拥有可插入的内容,无需代码更改即可切换出基础结构.

Micro 是一个微服务工具包。它就像一把用于微服务的瑞士军刀,它建立在 go-micro 的基础上,提供传统的入口点,如 http api 网关,web ui, cli, slack bot, 等. Micro 使用工具来指导体系结构中关注点的逻辑分离,推动您为公共 API 创建微服务的 API 层,并单独为 Web UI 创建 WEB 微服务层.

在需要完全控制的地方使用 go-kit. 在需要有意见的框架的地方使用 go-micro.

我在哪里可以了解更多信息?#

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

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


暂无话题~