【发布时间】:2017-03-23 04:26:09
【问题描述】:
我们有一个烧瓶应用程序在 uwsgi 后面运行,有 4 个进程。它是一个 API,用于提供来自我们两个 ElasticSearch 集群之一的数据。
在应用引导时,每个进程从外部数据库中提取配置以检查哪个 ES 集群处于活动状态并连接到它。
Evey 不时发出 POST 请求(来自 aws SNS 服务),通知所有客户端切换 ES 集群。这会触发与 bootstrap 相同的功能 - 从 DB 拉取配置重新连接到活动的 ES 集群。
它作为单个进程运行良好,但是当我们有多个进程运行时,只有其中一个会得到更新(接收 POST 请求的那个)......其他进程仍然连接到非活动集群。
在每个请求上拉取配置以确保我们使用的 ES 集群处于活动状态会很慢。我正在考虑在本地安装 redis 并将 active_es_cluster 存储在那里......还有其他想法吗?
【问题讨论】:
标签: python flask multiprocessing uwsgi