我有多个烧瓶微服务,都可以相互沟通,我将如何配置泊坞窗?

我有多个烧瓶微服务,都可以相互沟通,我将如何配置泊坞窗?

问题描述:

我有多个烧瓶微服务(这显然是混淆保护IP)正在由api_starter运行这些微服务的我有多个烧瓶微服务,都可以相互沟通,我将如何配置泊坞窗?

├── README.md 
├── api_starter.py 
├── app_api.py 
├── service1 
│   ├── __init__.py 
│   ├── api.py 
│   └── service1.py 
├── service2 
│   ├── __init__.py 
│   ├── api.py 
│   ├── service2.py 
├── dags 
│   ├── airflow_pipeline_runner.py 
├── service3 
│   ├── __init__.py 
│   ├── api.py 
│   ├── service3.py 
├── service4 
│   ├── __init__.py 
│   ├── api.py 
│   └── service4.py 
├── service5 
│   ├── __init__.py 
│   ├── api.py 
│   └── service5.py 
├── service6 
│   ├── __init__.py 
│   ├── api.py 
│   └── service6.py 
├── requirements.txt 
└── service7 
    ├── __init__.py 
    ├── api.py 
    └── service7.py 

每一个。每个微服务都相互通信。 dockerize这个应用程序的最佳方式是什么?我是否为每个微服务提供了一个docker文件,然后在目录的根目录中有一个docker-compose.yml文件?每个微服务都相互通信。任何和所有

+0

这些服务是相互导入还是通过tcp端口进行通信? –

+0

目前通过基本上只使用http请求的气流管道进行通信(虽然tcp更好) –

+0

真的,如果没有更多的信息,很难提供帮助。是的,每个都需要Dockerfile和EXPOSE适当的端口。或者你可以使用一个Dockerfile,公开所有的端口,并通过'python'二进制运行相应的服务。 –

为了遵守docker的理念并充分利用微服务架构所提供的所有优点,您应该将每个微服务放在它自己的容器中。

有些微服务架构的优势:

  • 提高故障隔离
  • 消除长期致力于单一的技术栈
  • 更容易为新的开发人员了解的功能 服务
  • 更容易升级管理
  • 安全性提高
  • Resiliance
  • 更易缩放
  • 更易于部署
  • ...

为了做到这一点,您应该首先创建您的相关容器一个用户定义的网络。用户定义的网络具有内部DNS,因此您可以通过名称解析同一网络上的其他容器IP。

然后你需要将你的api_starter分成微服务特定的。

其他工作要做:

  • 指定每个微服务持久性数据路径(如果适用)
  • 指定网络端口暴露。
+0

非常感谢您的回答!这是我寻找的最佳答案!一旦我将每个人都变成了自己的码头集装箱,我会把码头工人组成一个目录的根目录吗? –

+0

多数民众赞成在正确的,你需要创建码头组成文件,指定网络,容器,图像(你也可以建立在飞行) –

+0

太棒了!非常感谢:)你知道一个很好的指南,我可以更多地了解这样做吗? –