客户端

未匹配的标注

先初始化下编写main文件

    consulRegister := consul.NewRegistry(func(options *registry.Options) {
        options.Addrs = []string{
            "192.168.205.22:8500",
        }
    })

    //创建一个新的服务
    server := micro.NewService(
        micro.Name("client"),
        micro.Registry(consulRegister),
    )
    //初始化
    server.Init()

以上和服务端长得几乎是一模一样,micro.Registry(consulRegister),这个参数能调用consul 中的服务。

为了更贴近真实的案例,我们用Gin 框架做一个🌰栗子

go get github.com/gin-gonic/gin

完整代码

package main

import (
    "context"
    "fmt"
    "github.com/gin-gonic/gin"
    "github.com/micro/go-micro/v2"
    "github.com/micro/go-micro/v2/registry"
    "github.com/micro/go-plugins/registry/consul/v2"
    "github.com/syyongx/php2go"
    OrderService "order-micro/proto"
)

func main()  {

    consulRegister := consul.NewRegistry(func(options *registry.Options) {
        options.Addrs = []string{
            "192.168.205.22:8500",
        }
    })

    //创建一个新的服务
    server := micro.NewService(
        micro.Name("client"),
        micro.Registry(consulRegister),
    )
    //初始化
    server.Init()
    //
    r := gin.Default()

    r.GET("/createOrder", func(c *gin.Context) {

        order := OrderService.NewOrderService("order.service", server.Client())

        response, err := order.CreateOrder(context.TODO(), &OrderService.Request{
            GoodsId: php2go.Md5("123"),
            BuyNum:"1",
        })
        if err != nil {
            fmt.Println(err)
        }
        fmt.Println(response)

        c.JSON(200, gin.H{
            "message":response,
        })
    })
    r.Run(":8080") // listen and serve on 0.0.0.0:8080

}

其中


order := OrderService.NewOrderService("order.service", server.Client())

response, err := order.CreateOrder(context.TODO(), &OrderService.Request{
    GoodsId: php2go.Md5("123"),
    BuyNum:"1",
})
if err != nil {
    fmt.Println(err)
}
fmt.Println(response)

这块代码调用了服务端 order.service

Go Go Go !!!跑起来看看

在这里插入图片描述

访问

http://127.0.0.1:8080/createOrder

在这里插入图片描述

完美,成功请求到了服务端。

git add .
git commit -m "客户端编写"

文档列表

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

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


暂无话题~