如何与普通数据库进行负载均衡

时间:2017-07-09 05:17:37

标签: postgresql nginx docker flask redis

我正在使用Docker为以下各项创建容器: NGINX,Flask Application,Redis,PostgreSQL。我意识到Flask没有单个节点那么强大,所以我想在多个Flask实例之间进行负载平衡。我想知道这将如何运作。

我应该使用Flask容器创建多个服务器吗?如何确保它们都使用相同的Redis实例和PostgreSQL数据库?这是一个功能设置吗?

服务器容器:

Server 1: NGINX, Flask, Redis, PostgreSQL
Server 2: Flask
Server 3: Flask

还有其他想法和提示吗?

2 个答案:

答案 0 :(得分:1)

经过相当多的研究,我发现了最符合我需求的设置。

Server 1: NGINX
Server 2: Flask
Server 3: Flask
Server 4: Redis and PostgreSQL

这样,所有请求都转到NGINX,它在2个Flask服务器之间进行负载平衡。最后,Flask服务器访问具有Redis和PostgreSQL的公共数据服务器。

@VonC感谢您的主张。不幸的是,我已经完成了有关容器组织和SSL的所有设置。我只是不知道如何组织它们!

答案 1 :(得分:0)

您可以在Traefik后面运行容器,这是一个" HTTP反向代理和负载均衡器,可轻松部署微服务"。

例如参见" Running your application over HTTPS with traefik"。
他的项目beenje/flask_traefik_letsencrypt使用flask containertraefik settings

然后,您可以将该服务扩展到多个烧瓶容器。