Принцип адвоката Брофловски, или облачная балансировка нагрузки своими руками

, , . … ! , .



South Park, 306, «— »


Smug Alert!



HighLoad++ Google Amazon, DNS- gdnsd. , , . , .



, , , . :





dedicated- , . — Hetzner, - , , . .



, , - :











, , , , .



, …



Chef, ?



, , . HTTP- nginx , . « » — , , .











gdnsd:



;    ,   ;    IP- service_types => { adserver => { plugin => extmon, cmd => ["/usr/local/bin/check-adserver-node-for-gdnsd", "%%IPADDR%%"] down_thresh => 4, ;   4   ?   . ok_thresh => 1, ;    ? ! interval => 20, ;   20  timeout => 5, ;   5     } ; adserver } ; service_types plugins => { multifo => { ;    1/3 ,  DNS     ; ,     -   — ,  ;  ,   «»   ;  up_thresh => 0.3, adserver-eu => { service_types => adserver, www1-de => 192.168.93.1, www2-de => 192.168.93.2, www3-de => 192.168.93.3, www4-de => 192.168.93.4, www5-de => 192.168.93.5, } ; adserver-eu } ; multifo } ; plugins
      
      





DNSゾーンファイルで結果の構成を使用します。



 eu.adserver.sample. 60 DYNA multifo!adserver-eu
      
      





nginxのサーバープールを作成し、構成をファームに展開します。



 upstream adserver-eu { server localhost:8080 max_fails=5 fail_timeout=5s; server www1-de.adserver.sample:8080 max_fails=5 fail_timeout=5s; server www2-de.adserver.sample:8080 max_fails=5 fail_timeout=5s; server www3-de.adserver.sample:8080 max_fails=5 fail_timeout=5s; server www4-de.adserver.sample:8080 max_fails=5 fail_timeout=5s; server www5-de.adserver.sample:8080 max_fails=5 fail_timeout=5s; keepalive 1000; }
      
      





ローテーションで25を超えるサーバーがある場合、同じ名前で25個のグループに分割し、 Aレコードではなくgdnsdで同義語(DYNC)を動的に選択することを忘れないでください



サーバーのリストは、必要に応じて、GDNSまたは自動化システムに従って自動的に入力できます。 たとえば、当社ではパペットが使用されており、特別なクラウンスクリプトがパペットマスターに登録されているさまざまなタイプのサーバーの最新リストを保持しています。 localhostを含む行は、エラーのためにリストが空の場合の状況から保護します。この場合、各nginxは独自のフロントエンドのみにサービスを提供し、災害は発生しません。



私たちは光る、少年たち、光!



だから、何が起こった:





プルティック氏のResみ



あなたは無料のバランスをとる必要があり、スティッキーセッションは犠牲者です。 ただし、nginxの無料バージョンはIPハッシュによるバランシングを提供し、Aerospikeなどの最新のNoSQLデータベースは、アプリケーションで使用できる、応答時間が速い信頼性の高い一般的なセッションリポジトリとして使用できます。 最後に、これは愛国的ではありませんが、 単一のルールに従って複数のバランサーにユーザーをルーティングできる HAProxyに切り替えることができます 。 一般に、スティッキーセッションが必要な場合は、利用可能な手段でそれらのために戦います。



フィギュア



現在、20コアサーバーのそれぞれが1秒あたり最大15,000のリクエストを処理しています。これは、Javaアプリケーションの実用的な上限に近いものです。 すべてのクラスターで、CDNを除き、毎秒50万を超えるリクエスト、5ギガビット/秒のインバウンドおよび4ギガビット/秒のアウトバウンドでピーク時にバランスを取り、処理します。 はい、DSPの特異性は、発信に対する発信の過剰であり、オークションのオファーはそれらに対する意味のある答え以上のものです。



igorsによる投稿



All Articles