通过consul获取endpoint通信

编写客户端代码
func main() {
    config := consulapi.DefaultConfig()
    config.Address = "192.168.1.8:8500"
    apiClient, err := consulapi.NewClient(config)
    if err != nil {
        panic(err)
    }
    client := consul.NewClient(apiClient)

    var logger log.Logger
    logger = log.NewLogfmtLogger(os.Stdout)
    tags := []string{"user"}
    instance := consul.NewInstancer(client, logger, "user", tags, true)

    factory := func(serviceURL string) (endpoint2.Endpoint, io.Closer, error) {
        target, _ := url.Parse("http://" + serviceURL)
        return transporthttp.NewClient("GET", target, transport2.GetUserInfoRequest, transport2.GetUserInfoResponse).Endpoint(), nil, nil
    }
    endpointer := sd.NewEndpointer(instance, factory, logger)
    ends, _ := endpointer.Endpoints()
    fmt.Println("服务有", len(ends))
    getUserInfo := ends[0]
    resp, err := getUserInfo(context.Background(), endpoint.UserRequest{Uid: 101})
    if err != nil {
        panic(err)
    }
    userResponse := resp.(endpoint.UserResponse)
    fmt.Println(userResponse.Result)

}

results matching ""

    No results matching ""