概要
会社の公式ブログに投稿したのでその紹介です。
AWAではサブスクリプション(定期購読)型の課金体系をとっているのでそういったサービスを出す方の参考になれば幸いです。
続きを読む先日リリースされた1.11でソケットオプションを設定できるようになりました。
これによってLinux 3.9から導入されたSO_REUSEPORT
という、同じポートでbindすることが可能になる機能が利用可能になります。
一言で言うとGraceful Restartが可能になるという点です。
通常サーバプロセスを再起動するとその瞬間はリクエストを捌けなくなります。
Rolling updateのような事ができる環境であればいいですが、そうではない場合
SO_REUSEPORT
を使うといった手段でデプロイ時に一時的に古いプロセスを残したまま新しいプロセスを起動し、起動完了後に古いプロセスを落とすといった形で実現する必要があります。
ただし a
, b
のような手段でないと bind error で新しいプロセスの方は起動できません。通常使用中のポートは別プロセスで利用できないからです。
今回リリースされたgolang 1.11では b
を自前でサクッと対応できるようになります。
ローカルでサクッとfluentdの検証をしたい時に毎回調べ直していたのでメモ。
fluentd.conf
という名前で設定を用意します。
forwardされたログをstdout
に出力します。
<source> @type forward port 24224 bind 0.0.0.0 </source> <match *.*> @type stdout </match>続きを読む