rpmをつくりつつちょいApache期
2006年に書いていたpatchが当てる事ができなくなっていたので、直してみた。
mod_proxy_balancerで、接続ができなくなったサーバに対して一定間隔で再接続を試みるretryオプションがあります。これはretryで指定した秒数間隔でバックエンドに接続をします。
このpatchをあてることで、指定した回数だけ短い時間でretryを試みて、それを超えると通常のretry間隔にすることができます。何がうれしいかというと、バックエンドのサーバをDeployなどの理由で再起動した際になるべく高速に復帰しつつ、万が一障害で接続できなくなった時にサービスへの影響を最小限にできます。
<Proxy balancer://mycluster>
BalancerMember http://192.168.67.10:5000 connectiontimeout=5 retry=60 quick_retry=2 quick_retry_max=10
BalancerMember http://192.168.67.11:5000 connectiontimeout=5 retry=60 quick_retry=2 quick_retry_max=10
</Proxy>
図にするとこんな感じ。
patchはgithubに置いておいた。これまで作ったApacheへのpatchも一緒にあります。
https://github.com/kazeburo/apache-httpd-patch
実際のところ、balancer-managerにDeployツールがアクセスして自動でサーバのdrop/addを行うとかがいいと思うし、最近ではServer::Starter使ってhot-deployもできるので保険的な使い方しか使い道なさそうな2011年冬。