Networking 从本地开发到停靠的微服务

Networking 从本地开发到停靠的微服务,networking,docker,microservices,service-discovery,Networking,Docker,Microservices,Service Discovery,我开始使用停靠的微服务 其中有几个正在运行(请参阅下面的代码片段)。在我的本地测试设置中,每个服务都可以在localhost:somePort上使用。例如,前端将尝试连接到位于localhost:backend1的后端API。 现在在集装箱运输的世界里,这已经不起作用了。我是否应该运行一个完整的服务发现解决方案,如concur或etcd?或者我应该尝试使用docker的命名服务从前端访问后端吗 如果service1前端需要通过name:port访问service1后端,则需要: service1

我开始使用停靠的微服务

其中有几个正在运行(请参阅下面的代码片段)。在我的本地测试设置中,每个服务都可以在
localhost:somePort
上使用。例如,前端将尝试连接到位于
localhost:backend1
的后端API。 现在在集装箱运输的世界里,这已经不起作用了。我是否应该运行一个完整的服务发现解决方案,如
concur
etcd
?或者我应该尝试使用docker的命名服务从前端访问后端吗


如果
service1前端
需要通过
name:port
访问
service1后端
,则需要:

  • service1后端
    需要在其Dockerfile中指定端口公开
  • service1 frontend
    需要在撰写文件中有指向
    service1 backend
    的链接

  • 然后在前端,您只需使用
    service1 backend:port

    即可访问后端如果
    service1 frontend
    需要通过
    name:port
    访问
    service1 backend
    ,您需要:

  • service1后端
    需要在其Dockerfile中指定端口公开
  • service1 frontend
    需要在撰写文件中有指向
    service1 backend
    的链接

  • 然后在前端,您只需使用
    service1 backend:port

    即可访问后端。您确定没有太多的服务吗?对于这个问题,只有
    service1 backend
    service1 frontend
    相关。但是还有更多。你确定没有太多的服务吗?对于这个问题,只有
    service1后端
    service1前端
    是相关的。但是,当使用同一服务的多个实例时,这是不够的(除非您希望有额外的服务来实现负载平衡,但不建议这样做)。然后,服务需要通过其唯一的ip(172.x.x.x)进行通信。对于一个最简单的用例来说,这很好。您还可以为每个容器使用docker提供的唯一环境变量-HOSTNAME。但是,在使用同一服务的多个实例时,这是不够的(除非您希望有额外的服务来实现负载平衡,但不建议这样做)。然后,服务需要通过其唯一的ip(172.x.x.x)进行通信。对于一个最简单的用例来说,这很好。您还可以为每个容器使用docker提供的唯一环境变量-HOSTNAME。
    version: '2'
    services:
      service1-backend:
        image: service1:0.0.1
        links:
          - service1-frontend
      service1-frontend:
          image: service1-frontend:0.0.1
          links:
                - service2-frontend
          ports:
                  - "8080:80"
      service2-backend:
          image: service2-backend:0.0.1
          links:
                - service1-backend
                - service2-frontend
                - service3
      service2-frontend:
          image: service2-frontend:0.0.1
          ports:
                  - "8081:80"
      service3:
          image: service3:0.0.1