6

Django アプリがあり、環境変数ストレージを etcd にオフロードしたとします。新しいサーバーをデプロイすると、アプリは etcd から読み取り、(たとえば) アプリの起動時に条件付きでロードできる Python ファイルに変数を書き込むことができます。このくらいは許容範囲です。

ただし、構成がいつ変更されるかはわかりません。Afaik、etcd は変更をブロードキャストしません。値の変更時にアプリをポーリングしてリロードするデーモンを設定する必要がありますか? これらのパラメーターのいずれかを使用する必要があるときはいつでも、etcd に照会する必要がありますか? 人々はこれをどのように処理しますか?

4

2 に答える 2

1

ETCD を設定のバックエンドとして使用できますが、Django が実行時に (つまり、再起動/リロードなしで) 構成の変更を取得できるようにするには、設定を読み取り続けるバックグラウンド メカニズムをセットアップする必要があります。

パッケージdjango-etcd-settingsは、ETCD からキーを読み取り、設定を最新の状態に保つためにロング ポーリング接続をセットアップするデーモン スレッドを開始することによってこれを行います。

于 2018-06-27T08:37:34.303 に答える
0

私は CoreOS や Docker を使用したことはありませんが、多くのことを読んで、非常に魅力的なものだと思います。解決策は、アプリの設定方法に依存すると思います。多くのアプリサーバー (uWSGI f.ex.) で見られるのと同じ種類の「タッチリロード」サポートがある場合は、/etc/etcd/etcd.conf に key_file を設定し、アプリサーバーにそれを監視させることができます。これは、本来あるべきよりもずっと重く感じます。プラットフォームの経験がある人なら、もっと良いものを思い付くことができると確信しています。

于 2014-10-28T15:12:07.253 に答える