twemproxyに基づくredisクラスタスキームの実践
5753 ワード
Twemproxyはnutcrakerとも呼ばれ、Twtterによってオープンソースであり、mycatと同様のエージェントスライスメカニズムのミドルウェアであり、主にRedis Memcachedクラスタを管理するために使用され、複数のクライアントからの要求を受け入れることができ、ルーティング規則に従ってバックエンドcacheノードに転送され、クライアントとcacheサーバの直接接続数を減少させる.
一、twemproxy特性
1、メリット快速です. 軽量級. は、サーバとの長い接続を維持します. キャッシュサーバに直接接続する接続数を減らす .パイプpipeliningリクエストと応答を有効にします. は、複数のサーバへのプロキシをサポートします. は、複数のサーバプールを同時にサポートします. は、複数のサーバにわたってデータを自動的に共有します. は、完全なmemcached asciiおよびredisプロトコルを実現する. yamlファイルでサーバプールを簡単に構成できます. は、一貫したハッシュおよび分布を含む複数のハッシュ・モードをサポートする. は、障害時にノードを無効にするように構成することができる. は、ポートを介してステータスを監視することができる. は、Linux、*BSD、OS X、およびSmartOS(Solaris) で実行することができる.
2、短所は、setsのサブ交差補完などの の複数の値に対する動作をサポートしない. Redisのトランザクション操作はサポートされていません エラーメッセージ、ログ情報が不足し、問題の調査が困難 友好的な管理インタフェースがなく、メンテナンス操作が困難である は拡張をスムーズにできません.新しいノードを追加するには、サービス を再起動する必要があります.
二、twemproxyインストール
Autoconfは、複数のUNIXクラスシステムに適応するためのソフトウェアソースパッケージを自動的に構成できるshellスクリプトを生成するためのツールであるため、autoconfをインストールする.
1、autoconfをチェックする
Autoconf:rpm-qa|grep-i autoconfがインストールされているかどうかを確認します.autoconf-2.63-5.1が表示されます.el6.noarch
インストール済みバージョンが2.64未満の場合は、rpm-e--nodeps autoconf-*をアンインストールします.
インストールされていない場合は、http://ftp.gnu.org/gnu/autoconf/現在の最新バージョンautoconf-2.69をダウンロードします.tar.gzインストール
tar-zxvf autoconf-2.69を解凍する.tar.gz後ルートディレクトリcd autoconf-2.69構成:./configure
コンパイル:make
インストール:make install
ステップごとにエラーが発生しないことを確認
2、twemproxyインストール
行くhttps://github.com/twitter/twemproxyソースパッケージのダウンロード、wgethttps://codeload.github.com/twitter/twemproxy/zip/master
解凍:unzip master,
解凍ディレクトリへのアクセス:cd twemproxy-master
ソースパケットの生成:autoreconf-fvi
構成:./configure --prefix=/usr/local/twemproxy
コンパイル:make
インストール:make install
三、nutcrackerの構成
1、パラメータの意味 listen:サーバプールのアドレスとポートまたはsockファイルの絶対的な回路力(例えば/var/run/nutcracker.sock) を傍受する. client_connections:Redisクライアントから取得できる最大接続数.デフォルトは制限されません.オペレーティングシステムが強制する制限 にも適用されます. hash:ハッシュ関数名.値は次の です. one_at_a_time md5 crc16 crc32 (crc32 implementation compatible with libmemcached) crc32a (correct crc32 implementation as per the spec) fnv1_64 fnv1a_64 fnv1_32 fnv1a_32 hsieh murmur jenkins hash_tag:ハッシュに使用するkey部分を指定する2文字の文字列.たとえば、「{}」または「$$」です.ハッシュタグは、タグ内の鍵部分が同じ である限り、異なる鍵を同じサーバにマッピングすることを可能にする. distribution:keyの配布モード.可能な値は次のとおりです: ketama modula random timeout:サーバとの接続またはサーバからの応答の受信を待つタイムアウト値(ミリ秒).デフォルトは まで待機しています. backlog:tcp backlogパラメータ.デフォルトは512です. preconnect:twemproxyがプロセスの開始時にこのプールにプリ接続するすべてのサーバを制御します.デフォルトはfalse redis:サーバプールがredisまたはmemcachedプロトコルを使用するかどうか.デフォルトはfalseです. redis_auth:接続時にredisサーバを認証する. redis_db:プール・サーバで使用するデータベース番号.既定値は0です.twemproxyは、クライアント に常にdb 0として提示される. server_connections:各サーバに開く最大接続数.デフォルトでは、最大1つのサーバ接続を開く auto_eject_hosts:サーバの連続要求が制限回数を超えた場合にサーバを無効にするかどうかを指定します.デフォルトはfalse server_retry_timeout:auto_eject_hostsがtrueの場合、サーバでの再試行を無効にする前に待機するタイムアウト値(ミリ秒).デフォルトは30000ミリ秒です. server_failure_Limit:auto_eject_hostsがtrueの場合、連続要求に失敗した超過回数は、そのredisノードが無効になります.既定値は2です. servers:サーバプールのサーバアドレス、ポート、ウェイト.
2、nutcrackerを配置する.yml
インストール後、/usr/local/twemproxyでsbin share、sbinでnutcrakerコマンド、shareでnutcrakerが生成されます.8コマンド
twemproxy-master下confの構成nutcrackerが必要です.ymlを/usr/local/twemproxyにコピー
vim/usr/local/twemproxy/conf/nutcrackerを編集ymlプロファイルは次のとおりです.
Listenの後はtwmeproxyが存在するノード、serversはredisノードごと、distributionはコンシステンシハッシュアルゴリズムketamaを採用する
3、テスト構成
構成が完了しましたnutcracker.をテストします.yml文法に間違いはないか
/usr/local/twemproxy/sbin/nutcracker -t/usr/local/twemproxy/conf/nutcracker.yml
次のように正しく表示されます.
nutcracker: configuration file 'conf/nutcracker.yml' syntax is ok
四、nutcrackerを起動する
インストールパス/usr/local/twemproxyの下に進みます
起動コマンド:sbin/nutcracker-d-c conf/nutcracker.yml -o logs/log.log -p ./twemproxy.pid
-dデーモンが起動し、-cはプロファイルを指定し、oはログファイルのパスを指定し、ログは自分で作成する必要があります.-pはpid保存パスを指定します.
/usr/local/twemproxy/sbin/nutcracker--helpコマンド詳細パラメータは次のとおりです.
参照先:https://github.com/twitter/twemproxy
一、twemproxy特性
1、メリット
2、短所
二、twemproxyインストール
Autoconfは、複数のUNIXクラスシステムに適応するためのソフトウェアソースパッケージを自動的に構成できるshellスクリプトを生成するためのツールであるため、autoconfをインストールする.
1、autoconfをチェックする
Autoconf:rpm-qa|grep-i autoconfがインストールされているかどうかを確認します.autoconf-2.63-5.1が表示されます.el6.noarch
インストール済みバージョンが2.64未満の場合は、rpm-e--nodeps autoconf-*をアンインストールします.
インストールされていない場合は、http://ftp.gnu.org/gnu/autoconf/現在の最新バージョンautoconf-2.69をダウンロードします.tar.gzインストール
tar-zxvf autoconf-2.69を解凍する.tar.gz後ルートディレクトリcd autoconf-2.69構成:./configure
コンパイル:make
インストール:make install
ステップごとにエラーが発生しないことを確認
2、twemproxyインストール
行くhttps://github.com/twitter/twemproxyソースパッケージのダウンロード、wgethttps://codeload.github.com/twitter/twemproxy/zip/master
解凍:unzip master,
解凍ディレクトリへのアクセス:cd twemproxy-master
ソースパケットの生成:autoreconf-fvi
構成:./configure --prefix=/usr/local/twemproxy
コンパイル:make
インストール:make install
三、nutcrackerの構成
1、パラメータの意味
2、nutcrackerを配置する.yml
インストール後、/usr/local/twemproxyでsbin share、sbinでnutcrakerコマンド、shareでnutcrakerが生成されます.8コマンド
twemproxy-master下confの構成nutcrackerが必要です.ymlを/usr/local/twemproxyにコピー
vim/usr/local/twemproxy/conf/nutcrackerを編集ymlプロファイルは次のとおりです.
alpha:
listen: 192.168.172.71:22121
hash: fnv1a_64
distribution: ketama
auto_eject_hosts: true
redis: true
server_retry_timeout: 3000
server_failure_limit: 3
servers:
- 192.168.172.72:6379:1
- 192.168.172.73:6379:1
- 192.168.172.74:6379:1
Listenの後はtwmeproxyが存在するノード、serversはredisノードごと、distributionはコンシステンシハッシュアルゴリズムketamaを採用する
3、テスト構成
構成が完了しましたnutcracker.をテストします.yml文法に間違いはないか
/usr/local/twemproxy/sbin/nutcracker -t/usr/local/twemproxy/conf/nutcracker.yml
次のように正しく表示されます.
nutcracker: configuration file 'conf/nutcracker.yml' syntax is ok
四、nutcrackerを起動する
インストールパス/usr/local/twemproxyの下に進みます
起動コマンド:sbin/nutcracker-d-c conf/nutcracker.yml -o logs/log.log -p ./twemproxy.pid
-dデーモンが起動し、-cはプロファイルを指定し、oはログファイルのパスを指定し、ログは自分で作成する必要があります.-pはpid保存パスを指定します.
/usr/local/twemproxy/sbin/nutcracker--helpコマンド詳細パラメータは次のとおりです.
This is nutcracker-0.4.1
Usage: nutcracker [-?hVdDt] [-v verbosity level] [-o output file]
[-c conf file] [-s stats port] [-a stats addr]
[-i stats interval] [-p pid file] [-m mbuf size]
Options:
-h, --help : this help
-V, --version : show version and exit
-t, --test-conf : test configuration for syntax errors and exit
-d, --daemonize : run as a daemon
-D, --describe-stats : print stats description and exit
-v, --verbose=N : set logging level (default: 5, min: 0, max: 11)
-o, --output=S : set logging file (default: stderr)
-c, --conf-file=S : set configuration file (default: conf/nutcracker.yml)
-s, --stats-port=N : set stats monitoring port (default: 22222)
-a, --stats-addr=S : set stats monitoring ip (default: 0.0.0.0)
-i, --stats-interval=N : set stats aggregation interval in msec (default: 30000 msec)
-p, --pid-file=S : set pid file (default: off)
-m, --mbuf-size=N : set size of mbuf chunk in bytes (default: 16384 bytes)
参照先:https://github.com/twitter/twemproxy