我有多个烧瓶微服务,都可以相互沟通,我将如何配置泊坞窗?
我有多个烧瓶微服务(这显然是混淆保护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文件?每个微服务都相互通信。任何和所有
为了遵守docker的理念并充分利用微服务架构所提供的所有优点,您应该将每个微服务放在它自己的容器中。
有些微服务架构的优势:
- 提高故障隔离
- 消除长期致力于单一的技术栈
- 更容易为新的开发人员了解的功能 服务
- 更容易升级管理
- 安全性提高
- Resiliance
- 更易缩放
- 更易于部署
- ...
为了做到这一点,您应该首先创建您的相关容器一个用户定义的网络。用户定义的网络具有内部DNS,因此您可以通过名称解析同一网络上的其他容器IP。
然后你需要将你的api_starter
分成微服务特定的。
其他工作要做:
- 指定每个微服务持久性数据路径(如果适用)
- 指定网络端口暴露。
非常感谢您的回答!这是我寻找的最佳答案!一旦我将每个人都变成了自己的码头集装箱,我会把码头工人组成一个目录的根目录吗? –
多数民众赞成在正确的,你需要创建码头组成文件,指定网络,容器,图像(你也可以建立在飞行) –
太棒了!非常感谢:)你知道一个很好的指南,我可以更多地了解这样做吗? –
这些服务是相互导入还是通过tcp端口进行通信? –
目前通过基本上只使用http请求的气流管道进行通信(虽然tcp更好) –
真的,如果没有更多的信息,很难提供帮助。是的,每个都需要Dockerfile和EXPOSE适当的端口。或者你可以使用一个Dockerfile,公开所有的端口,并通过'python'二进制运行相应的服务。 –