Micro v3 入门教程

本文翻译自官网

本文将通过全球入门实例 Hello World 的方式,来带领大家入门Micro v3。

依赖关系

Micro 是通过 protoc-gen-micro 来进行代码生成的,因此我们需要安装上对应的依赖库。

安装

使用 Go 进行安装

二进制方式安装

Docker镜像

Helm Chart

运行服务

在开始服务程序之前,我们先运营一个现有的服务。

首先我们必须先执行 micro server,启动服务:

micro server 启动的服务进行交互之前,我们需要先进行登陆,账号是 admin,密码是 micro

为了验证是否运行成功,执行 micro services 是否运行了以下服务:

github.com/micro/services 下面我们会看到有许多 Micro 作者写的各种服务,其中我们今天演示的例子 Hello World 就在这个下面。

接下来我们就来运行我们的 Hello World 了。

我们会使用 micro run 来运行我们的 Hello World

查看运行服务的状态:

查看指定服务的运行日志:

到这里你的服务都是正常输出了这些信息,执行也没有问题的话,那么下面我们就要尝试调用这个服务了。

调用服务

CLI 命令行工具

Micro会以以下格式自动为您的服务生成CLI命令:micro [service] [method],默认方法是 “Call”。

我们可以使用以下命令调用服务:

查看命令行管理服务的帮助信息:

查看命令行管理服务 方法 的帮助信息:

API 接口

Micro在端口8080上公开了http API,因此可以直接通过8080访问对应的服务。

其他服务

我们写一个小的客户端,来调用helloworld服务。

将示例保存在本地。

进入到新建的服务目录里面,然后执行 go mod init example ,并且使用 micro run运行服务。

查看运行状态,到这里正常来说,我们应该有两个服务才对呢。

查看我们刚刚写的示例服务的日志,会返回 Hello World 服务的返回值,因为我们是调用的 Hello World

支持多种语言的客户端

不久,我们将发布由多语言grpc生成的客户端,以查询服务并也使用micro。

新建服务

使用 micro new 来新建服务:

从上面的输出可以看出,在构建第一个服务之前,必须安装以下工具,前面如果安装过了,此处可以省略:

安装以上三个库,是因为proto文件转Go语言代码需要用到。

使用以下命令从proto文件生成Go代码:

存储

除其他有用的内置服务外,Micro还包括用于对数据进行持久化存储的服务。

CLI 命令行工具

首先,让我们看一下更基本的store CLI命令。

要保存一个值,我们使用write命令:

UNIX风格的无输出表示它被愉快地保存了。

读取数据:

可以使用–verbose或-v,来进行更人性化的数据展示。

我们可以使用–prefix或-p,搜索键具有某些前缀的数据。

为了验证这一点,我们先保存另一个值:

然后,我们可以列出key1和key2键,因为它们都共享通用前缀:

其他服务

刚刚我们工作命令的方式从Go Micro服务中非常简单的进行数据的存取。

接下来我们创建一个服务可以读取的条目。 然而这次我们还将为Go Micro存储服务写命令指定表,因为每个服务在存储区中都有自己的表:

让我们修改我们先前编写的示例服务,以便它从存储中读取上述值,而不是调用服务。

更新服务

我们刚刚修改了我们的示例服务,也就是 example 服务。并且这个服务正在运行中,因此我们无法使用 micro run 再次运行这个服务,因此我们需要使用 micro update 来更新服务。

我们可以直接使用update命令进行更新,但是需要注意的是,一定要切换回示例服务的根目录:

查看状态:

如果因为某些原因导致程序卡死了,可以使用以下方式进行重启:

现在我们重新查看日志,如果返回的是存储的数据,那么就说明我们更新成功了。

配置

配置信息和密钥信息是任何生产系统中重要的组成部分,下面我们就来看下Go Micro Config是如何进行工作的。

CLI 命令行工具

简单使用:

仅仅这种健值对的形式就已经满足了很多的应用场景。

同时 Go Micro Config 还支持嵌套的方式,如下:

当我们获取这种嵌套配置的时候,会以Json的方式为我们返回数据。

新增一组配置,依然是以JSON的数据格式返回。

其他服务

在其他服务中调用,其实也是类似的。

使用上面的方式更新服务,更新成功后,会输出一下结果。

本文为原创文章,未经授权禁止转载本站文章。
原文出处:兰玉磊的个人博客
原文链接:https://www.fdevops.com/2020/12/31/micro-19519
版权:本文采用「署名-非商业性使用-相同方式共享 4.0 国际」知识共享许可协议进行许可。

发表评论

邮箱地址不会被公开。 必填项已用*标注

评论列表(1条)

  • 周星驰
    周星驰 2021年3月16日 13:36

    官网很多东西都存在兼容性问题.