在之前的文章中,我们看了一些使用 和 语言的生成的各种事件驱动的方法。 在本篇文章,我们将深入到客户端,探究一下如何创建一个能够与我们之前创建的平台交互的 客户端。
这篇文章会介绍如何使用 工具包生成 客户端从外部代理内部 方法。
我们会创建一个 接口用于生成平台的登录界面、还会创建一个接口用于使用我们的 。该界面包含了创建用户、登录、和创建 等功能。 本系列的前几篇文章已经介绍过其中的部分代码了,在这篇文章我会带大家深入了解一下。
所以让我们开始吧!
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语言中文网 荣誉推出
喜欢本文的朋友们,欢迎长按下图关注订阅哦!
领取专属 10元无门槛券
私享最新 技术干货