首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为微服务应用配置docker的暴露端口?

如何为微服务应用配置docker的暴露端口?
EN

Stack Overflow用户
提问于 2019-02-21 15:11:08
回答 1查看 252关注 0票数 1

对不起,我已经学习了go-micro,并且知道微服务客户端不需要知道微服务部署在哪个ip和端口上,服务是自己运行的,端口是随机设置的,服务是通过它的服务名称来定位的,就像go.micro.api.user一样。

服务端的运行方式如下:

代码语言:javascript
复制
     userService := micro.NewService(micro.Name("go.micro.api.user"))
     userService.Init()
     user.RegisterUserHandler(userService.Server(), new(User), api.WithEndpoint(&api.Endpoint{
          Name: "User.GetToken",
          Path: []string{"/user/token/"},
          Method: []string{"POST"},
          Handler: http.Handler,
     }),api.WithEndpoint(&api.Endpoint{
          Name: "User.GetUserName",
          Path: []string{"/user/username/"},
          Method: []string{"GET"},
          Handler: http.Handler,
     }))

    if er := userService.Run(); er != nil {
        panic(er)
    }

客户端如下:

代码语言:javascript
复制
    service := micro.NewService(micro.Name("go.micro.api.user"))
    service.Init()

    // Create new greeter client
    userService := user.NewUserService("go.micro.api.user", service.Client())

    // Call the greeter
    rsp, err := userService.GetToken(context.TODO(), &user.Request{Username: "John", Password: "123"})
    if err != nil {
        fmt.Println(err)
        return
    }

    // Print response
    fmt.Println(rsp)

要在docker中部署微服务,我不知道如何在docker容器中配置端口。

EN

回答 1

Stack Overflow用户

发布于 2019-02-21 21:38:05

您可以使用server_address标志(参见其cli package)或MICRO_SERVER_ADDRESS环境变量(参见cmd doc)为go-micro服务器设置端口。

一旦你这样做了,我建议你先在没有Docker的情况下尝试连接到你的服务。一旦一切正常,你可以用Docker,using the -p flag来运行它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54801203

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档