【问题标题】:how Amazon ECS Service Discovery discovers dynamic portsAmazon ECS 服务发现如何发现动态端口
【发布时间】:2018-09-30 12:55:34
【问题描述】:

Amazon ECS 服务发现使 ECS 服务可以使用 Amazon Route 53 中可预测且友好的 DNS 名称自动注册自己,例如 backend.corp

但是,假设基于 Web 的应用程序的用例,主机不足以与服务通信 - 还需要端口号,尤其是在主机上使用动态端口分配时(固定容器端口映射到随机主机端口)

如何使用 ECS 服务发现管理动态端口分配?当然,可以使用众所周知的端口,但限制了可以运行 docker 映像的主机数量。

【问题讨论】:

    标签: amazon-ecs


    【解决方案1】:

    ECS 服务发现将为每个任务注册一个 SRV 记录,该记录是容器名称和端口的组合(请参阅Service Discovery Considerations)。您可以查询这些值以查找可以连接的容器列表。

    更新:

    您如何查询 DNS 将在很大程度上取决于您的特定项目以及所涉及的语言和框架。例如,在 Java 中,您可以使用 JNDI,在 python 中,您可以使用 dnspython 库,而在 node 中,您可能会使用内置的 dns 模块。

    【讨论】:

    • 谢谢您的回复,杰米。我什么时候可以找到如何从 docker 中的服务器端应用程序查询容器名称和端口的示例?不幸的是,AWS ECS 参考架构(宠物商店)不使用 ECS 服务发现
    • 假设您关注Java Microservices example,我会查看Get DNS SRV Record with JNDI。我也用其他语言的示例更新了答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-11-12
    • 1970-01-01
    • 2019-02-15
    • 2018-10-31
    • 2020-03-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多