負荷分散のためのいくつかの可能なオプションを見ています。
これまでのところ、私は次のオプションに制限されています。
DNSサーバーロードバランサー、Tomcatサーバーのクラスターへの分散、テラコッタによるセッションレプリケーション。長所-新しいキットを購入する必要はありません。短所-DNSlbは、壊れたサーバーに転送し続ける可能性があります。
Tomcatサーバーのクラスターに直接接続するハードウェアロードバランサー。長所-フェイルオーバー用の2番目のボックスがある可能性があります。短所-費用。
Apacheサーバーのロードバランサー。長所-Apacheのlbは壊れたサーバーをポーリングします。短所-Apacheサーバーは単一障害点であり、さらに別のサーバーを購入する必要があります。
私が考慮すべき他のオプションはありますか?
ありがとう。
更新:これまでの+1のすべての回答に感謝します。より多くのアイデアを出し続けるために、まだ答えを受け入れていません。
ロードバランサーアプライアンスを検討している場合、 F5 Big-IP で問題が発生することはありません。
編集:私がBig-IPを使用すると言う理由は、ネットワークアプライアンスの経験があまりないサーバー管理者にとっては素晴らしいアプライアンスだからです。それは構成とレポートのためのほぼ無制限のオプションを備えた素晴らしいウェブインターフェースを持っています。これらは、すべての「エンタープライズ」ロードバランシングオプションの中で最も信頼性が高く、最も安価です。
2007年のアプリケーション配信オプションに関する調査へのリンクは次のとおりです。 Gartner Results
HAProxy を使用することをお勧めします。非常に高速です。また、CARP(* BSD)またはUCARP/LVS(Linux)で2つのロードバランサーを使用して、単一障害点を回避することもできます。
Coyote Point Equalizers(ハードウェアロードバランサー)を何年も使用しており、非常に満足しています。 F5のすべての機能を備えているわけではありませんが、多くの機能を備えており、はるかに低コストです。パフォーマンスと信頼性はどちらも優れています。
私はハードウェアLBを選ぶ傾向があります。ハードウェアLBは大量のトラフィックを処理できることが多く、「シンプル」であることが多いため、より適切に強化でき、ハードウェアでのSYNフラッド攻撃などの他のセキュリティ問題を管理できる場合もあります。私はFoundryを使用していますが、選択肢はたくさんあります(F5、Ciscoなど)-費用はかかりますが:(
Cisco GSS(Global Site Selector)は、ヘルスチェックも行うDNSサーバです。これは明らかに標準のDNSサーバーよりも高価なオプションになるでしょう。詳細はこちらのWebページ: http://www.Cisco.com/en/US/products/hw/contnetw/ps4162/index.html
F5 has similar offerings: http://www.f5.com/products/
Cisco ACE product page: http://www.Cisco.com/en/US/products/ps8361/index.html
Chopper3が述べたように、ハードウェアベースの負荷分散はおそらくより優れたパフォーマンスを提供するでしょうが、あなたはそれに対してお金を払うでしょう。
探すことができる機能は、SSLオフロード、VLANサポート、コンテキスト、クラスタリング、ルーティングプロトコルのサポート、およびさまざまなアプリケーションとのサポート/相互作用(つまり、HTML Cookieとヘッダーの変更)です。
ldirectordを見たことがありますか?
Linuxで実行され、負荷分散されているのと同じマシンでハートビートで実行できます(したがって、冗長性が組み込まれています)。または、もちろん、それらの前にある独自のボックスで、構成が簡単で、軽量で、非常に高性能です。 。
crossroads は優れたロードバランサーであることがわかりました。ネットワーク担当者がCiscoロードバランサーのハードウェアの問題を解決する間、7か月間本番負荷を処理しました。
こんにちは@toolkitLoadBalancer(LB)クエストにNGinX/Varnishを実装したことはありますか?もしそうなら、あなたの結果は何でしたか? (私たちの他の人と共有してもかまわない場合;-)
上記を要約するだけです(そしてZMQについての言及を投げ入れてください)
基本的な負荷分散
より高度な
別のマシンを必要としないソフトウェアベースのロードバランサーを作成しました。
マイナス面は、実際には本番に対応していないということですが、テストネットワークでテストしたい場合は、嬉しく思います。
それは基本的に表面的にはMicrosoftのNLBに似ています(私はそう思います)-私にはそれらのソースがなく、それらがどのように機能するか正確にはわかりません。
もちろん、アプリケーション層を自動的に監視することはありませんが、それを実行して重みを変更したり、それに応じてノードを取り出したりするものを作成できます。
編集:あなたはどのOSを言っていませんでした、FluffyクラスターはLinuxのみです-現時点では。
keepalivedは別のLinuxロードバランサーであり、いくつかのロードバランシングアルゴリズム(明らかに)とVRRPをサポートして、ロードバランサーボックスがダウンしたときに自動フェイルオーバーを備えた冗長インスタンスを作成します
DNSMadeEasy でソリューションを設定しました。 DNSフェイルオーバーに関してはNice screencast があります。彼らはリーズナブルな価格を持っています。私たちのシステムでは、システム内のさまざまなコンポーネント(データベース、JMSキュー、S3接続)に「ping」を実行し、DNSMadeEasyが利用できるOKを返す単純なサービスを実装しました。例外が発生するたびに、DNSMadeEasyは、そのDNSルックアップで応答するサーバーのリストからそのサーバーを削除します。
お金が問題にならない場合は、ハードウェアロードバランサーを入手してください。
私が働いている会社は、Apacheを使用してTomcatサーバーを前面に出し、ロードバランサーは一部のTomcatと同じボックスにあります(tomcatは内部ポートを使用します)。専用のロードバランサーボックスに間もなく移動します。間もなくNginxに移行しますが、構成はApacheよりも簡単で、全体がはるかに軽いと思います。ネットワークアーキテクチャによっては、ロードバランサーに内部の「フローティングIP」を使用し、必要に応じてハートビートなどを実行してIPを別のボックスに切り替えることもお勧めします。これにより、DNS伝播の問題を心配することなくフェイルオーバー機能が追加されます。
ペルバルを見たことがありますか?
www.danga.com/perlbal/