使用etcd管理Django设置

6
假设我有一个Django应用程序,并且我已经将环境变量存储转移到了etcd。当我部署新服务器时,应用程序可以从etcd读取,将变量写入(例如)Python文件中,在应用程序启动时可以有条件地加载。到此为止,都是可以接受的。
然而,当配置更改时,我无法知道。据我所知,etcd不会广播更改。我需要设置一个守护进程来轮询并在值更改时重新加载我的应用程序吗?我应该在需要使用这些参数之前查询etcd吗?人们如何处理这个问题?
2个回答

1
你可以将ETCD用作设置后端,但为了让Django在运行时(即不需要重启/重新加载)捕获配置更改,您需要设置一个后台机制来持续读取设置。 django-etcd-settings包通过启动守护线程来实现此功能,然后建立长轮询连接以从ETCD读取键并保持设置最新。

0

我没有使用过CoreOS或Docker,但读了很多资料并认为这是非常有吸引力的东西。我想解决方案取决于你如何设置你的应用程序。如果你有许多应用服务器(例如uWSGI)中看到的相同类型的“触摸重新加载”支持,你可以在/etc/etcd/etcd.conf中设置key_file,并让你的应用服务器监视它。但这感觉比它应该重得多。我相信有经验的平台用户可以想出更好的解决方案。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接