Golang 下的微服务-第6 部分-Web Clients

在之前的文章中,我们看了一些使用 和 语言的生成的各种事件驱动的方法。 在本篇文章,我们将深入到客户端,探究一下如何创建一个能够与我们之前创建的平台交互的 客户端。

这篇文章会介绍如何使用 工具包生成 客户端从外部代理内部 方法。

我们会创建一个 接口用于生成平台的登录界面、还会创建一个接口用于使用我们的 。该界面包含了创建用户、登录、和创建 等功能。 本系列的前几篇文章已经介绍过其中的部分代码了,在这篇文章我会带大家深入了解一下。

所以让我们开始吧!

RPC 复兴

已经在网络上服务了很多年了,并且迅速成为管理客户端和服务器之间资源的途径。 正在逐渐取代已经过时的 和 。曾经必须写一个 文件的时代已经过去了。

向我们承诺了一种实用,简单和标准化的资源管理方法。 使用 协议明确了正在执行的具体 动作类型。 鼓励我们使用 错误响应码来更精确地描述服务器的响应状态。而且大多数情况下,这种方法运行良好,并没有问题。但是像所有好东西一样,有许多不足和缺点,我不打算在这里详细介绍。大家有兴趣可以参考这篇文章。

但是!随着微服务的出现, 正在卷土重来。

对于管理不同的资源非常有用,但微服务通常只处理单一资源,这一性质导致我们不需要在微服务的上下文中使用 术语。相反,我们可以专注于每个服务的单一的具体操作和交互。

Micro

我们已经在本系列教程中广泛使用了 ,现在我们将介绍 这个工具包。这个 工具包提供了的功能包括 网关、 、 代理以及其他一些很酷的功能。但是这篇文章我们使用到的功能主要是 网关。

网关将允许我们将 调用代理为 友好的 调用,然后将客户端应用程序中使用的 暴露出来。

那么以上这些炫酷功能是如何工作的?

首先要确保安装了 工具包:

$ go get -u github.com/micro/micro

环境下使用 更好的方法还是建议大家使用镜像:

$ docker pull microhq/micro

接下来可以看一下 服务的代码,我对 服务的代码做了一些错误处理和命名约定方面的修改:

现在运行 。 然后转到 运行。 一旦这两个服务都运行,运行:

这将在 容器中开一个 端口上,该端口将 作为 处理程序暴露出来,使用 作为本地的注册表,使用命名空间 , 是我们所有服务名称的第一部分。例如 或 。设置它是很重要的,因为它默认为 ,在默认情况下, 是无法找到我们需要的特定服务来进行代理的。

我们现在可以使用以下方式调用我们的 服务方法:

创建一个 :

这个请求中包含了我们想要传送给的服务名、要使用的服务方法、以及服务数据。

验证用户:

Consignment service

现在再次启动我们的 服务,。 我们不需要在这里改变任何东西,但是,运行 代理的话我们还应该 创建一个 :

Vessel service

最后为了测试用户接口界面,我们需要运行 服务,这里没有对代码有什么修改,直接运行 即可。

User interface

现在可以使用我们的刚刚创建的新 节点创建一个用户界面。本文使用了 ,当然如果你喜欢的话可以使用其余的架构。请求都是一样的。本文使用来自 的 库:

$ npm install -g react-create-app

安装完成后,执行 。 这将为您创建一个 应用程序的框架。

现在让添加我们的两个主要组件, 和 :

and…

注意:

我还将 添加到 并更改了一些。

现在运行用户界面 。 之后应该浏览器会自动打开一个界面。您现在应该可以注册并登录并查看 表单,您可以在其中创建新 。看看你的开发工具中的 选项,然后看看 方法从我们的不同微服务中触发和获取我们的数据。

第6部分到这里就结束了,如果您有任何反馈,请给我发一封电子邮件,我会尽快答复(有可能不会很及时,敬请见谅)。

via: https://ewanvalentine.io/microservices-in-golang-part-6/

作者:André Carvalho

译者:zhangyang9

校对:polaris1119

本文由 GCTT 原创编译,Go语言中文网 荣誉推出

喜欢本文的朋友们,欢迎长按下图关注订阅哦!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181105B0HEWL00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券