• go-micro教程 — 第一章 快速入门


    一、所需依赖

    go-micro 需要 protoc-gen-micro 来生成代码。所以需要一下依赖:

    • protobuf
    • protoc-gen-go
    • protoc-gen-micro

    下载最新版本的依赖

    go get https://github.com/protocolbuffers/protobuf/releases
    go get github.com/golang/protobuf/protoc-gen-go
    go get github.com/micro/micro/v3/cmd/protoc-gen-micro

    二、安装 micro

    目前最新版本的micro是3.0版本的,所以这里我们安装的也是3.0版本的micro。

    2.1 Go Get方式安装:

    go install github.com/micro/micro/v3@latest
    
    • 1

    2.2 二进制版本

    # MacOS
    curl -fsSL https://raw.githubusercontent.com/micro/micro/master/scripts/install.sh | /bin/bash
    
    # Linux
    wget -q  https://raw.githubusercontent.com/micro/micro/master/scripts/install.sh -O - | /bin/bash
    
    # Windows
    powershell -Command "iwr -useb https://raw.githubusercontent.com/micro/micro/master/scripts/install.ps1 | iex"
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    2.3 Docker 镜像

    docker pull micro/micro
    
    • 1

    三、运行 micro 服务

    在开始编写服务之前,让我们运行一个现有的服务,因为它只需几个命令!

    3.1 启动 micro server 服务

    首先,我们必须启动micro server。执行此操作的命令是:

    micro server
    
    • 1

    3.2 登录

    在使用 micro server 前需要先登录服务,默认的账号密码如下:

    账号/密码:admin/micro

    E:\Goland\go-micro-demo>micro login
    Enter username: admin
    Enter password:
    Successfully logged in.
    
    • 1
    • 2
    • 3
    • 4

    查看 micro server 中正在运行的服务,命令:

    E:\Goland\go-micro-demo>micro services
    api
    auth
    broker
    config
    events
    network
    proxy
    registry
    runtime
    store
    web
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    一共11个,所有这些服务都是micro server中的子模块,在浏览器端查看 localhost:8082

    这很酷,但它仍然不是我们推出的东西!让我们开始一项服务,我们可以真正相信它的存在。如果我们去github.com/micro/services,我们会看到一堆由微作者编写的服务。其中之一是helloworld。

    3.3 运行 helloworld

    运行服务的命令是micro run

    micro run github.com/micro/services/helloworld
    
    • 1

    查看正在运行的服务的状态:

    E:\Goland\go-micro-demo>micro status
    NAME		VERSION	SOURCE					STATUS	BUILD	UPDATED	METADATA
    helloworld	latest	github.com/micro/services/helloworld	running	n/a	4s ago	owner=admin, group=micro
    
    • 1
    • 2
    • 3

    我们还可以查看服务的日志以验证它是否正在运行:

    E:\Goland\go-micro-demo>micro logs helloworld
    2022-6-06 17:52:21  file=service/service.go:195 level=info Starting [service] helloworld
    2022-6-06 17:52:21  file=grpc/grpc.go:902 level=info Server [grpc] Listening on [::]:33975
    2022-6-06 17:52:21  file=grpc/grpc.go:732 level=info Registry [service] Registering node: helloworld-67627b23-3336-4b92-a032-09d8d13ecf95
    
    • 1
    • 2
    • 3
    • 4

    四、调用服务

    Micro 自动为您的服务生成 CLI 命令,格式为:micro [service] [method],默认方法为“调用”。参数可以作为标志传递,因此我们可以使用以下方式调用我们的服务:

    $ micro helloworld call --name=Jane
    {
    	"msg": "Hello Jane"
    }
    
    • 1
    • 2
    • 3
    • 4

    如果我们想知道服务有哪些节点,我们可以运行以下命令:

    E:\Goland\go-micro-demo>micro helloworld --help
    NAME:
    	micro helloworld
    
    VERSION:
    	latest
    
    USAGE:
    	micro helloworld [command]
    
    COMMANDS:
    	call
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    使用 API 方式调用:
    Micro 在 8080端口上开放了一个 http API,所以可以使用 curl 方式调用。

    curl "http://localhost:8080/helloworld?name=John"
    
    • 1
  • 相关阅读:
    Linux:实用操作
    在系统识别 App 中估计传递函数模型
    T288401 B-莲子的机械动力学
    推荐系统笔记(十一):使用coo_matrix函数遇到的坑
    ansible角色部署lamp架构
    论文翻译:2020_Lightweight Online Noise Reduction on Embedded Devices using Hierarchical Recurrent Neural Networks
    使用docker安装redis
    vue3 联合搜索
    企业架构MySQL数据库架构读写分离
    使用burp对Tomcat 弱密码爆破
  • 原文地址:https://blog.csdn.net/Mr_XiMu/article/details/125533980