溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Linux下如何安裝配置Twemproxy

發(fā)布時間:2022-02-16 14:59:42 來源:億速云 閱讀:148 作者:小新 欄目:開發(fā)技術(shù)

這篇文章給大家分享的是有關(guān)Linux下如何安裝配置Twemproxy的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

Twemproxy是一種代理分片機制,由Twitter開源。Twemproxy作為代理,可接受來自多個程序的訪問,按照路由規(guī)則,轉(zhuǎn)發(fā)給后臺的各個Redis服務(wù)器,再原路返回。該方案很好的解決了單個Redis實例承載能力的問題。

Linux下如何安裝配置Twemproxy

首先需要安裝autoconf、automake、libtool工具,比如ubuntu可以使用如下命令安裝

yum install autoconf automake  
yum install libtool

下載Twemproxy并安裝

cd /usr/servers  
wget https://github.com/twitter/twemproxy/archive/v0.4.0.tar.gz  
tar -xvf v0.4.0.tar.gz    cd twemproxy-0.4.0/  
autoreconf -fvi  
./configure && make

此處根據(jù)要注意,如上安裝方式在有些服務(wù)器上可能在大量如mset時可能導(dǎo)致Twemproxy崩潰,需要使用如 CFLAGS=”-O1″ ./configure && make或CFLAGS=”-O3 -fno-strict-aliasing” ./configure && make安裝。

配置

vim /usr/servers/twemproxy-0.4.0/conf/nutcracker.yml

server1:  
 listen: 127.0.0.1:1111  
 hash: fnv1a_64  
 distribution: ketama  
 redis: true  
 servers:  
  - 127.0.0.1:6379:1

啟動Twemproxy代理

/usr/servers/twemproxy-0.4.0/src/nutcracker  -d -c /usr/servers/twemproxy-0.4.0/conf/nutcracker.yml

-d指定后臺啟動 -c指定配置文件;此處我們指定了代理端口為1111

查看是否啟動成功

ps -aux | grep nutcracker

進入Redis客戶端

/usr/servers/redis-2.8.19/src/redis-cli  -p 1111

執(zhí)行如下命令

127.0.0.1:1111> set i 1  
OK  
127.0.0.1:1111> get i  "1"

設(shè)置

基本配置

其使用YML語法,如:

server1:  
 listen: 127.0.0.1:1111  
 hash: fnv1a_64  
 distribution: ketama  
 timeout:1000  
 redis: true  
 servers:  
  - 127.0.0.1:6660:1  
  - 127.0.0.1:6661:1  

server1:是給當前分片配置起的名字,一個配置文件可以有多個分片配置;
listen : 監(jiān)聽的ip和端口;hash:散列算法;
distribution:分片算法,比如一致性Hash/取模;
timeout:連接后端Redis或接收響應(yīng)的超時時間;
redis:是否是redis代理,如果是false則是memcached代理;
servers:代理的服務(wù)器列表,該列表會使用distribution配置的分片算法進行分片;

分片算法

 #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 #分片算法:   ketama(一致性Hash算法)   modula(取模)   random(隨機算法)

服務(wù)器列表

  servers:    - ip:port:weight alias如 servers:  - 127.0.0.1:6660:1  - 127.0.0.1:6661:1或者 servers:  - 127.0.0.1:6660:1 server1  - 127.0.0.1:6661:1 server2

HashTag

比如一個商品有:商品基本信息(p?)、商品介紹(d?)、顏色尺碼(c?)等,假設(shè)我們存儲時不采用HashTag將會導(dǎo)致這些數(shù)據(jù)不會存儲到一個分片,而是分散到多個分片,這樣獲取時將需要從多個分片獲取數(shù)據(jù)進行合并,無法進行mget;那么如果有了HashTag,那么可以使用“::”中間的數(shù)據(jù)做分片邏輯,這樣id一樣的將會分到一個分片。

nutcracker.yml配置如下:

server1:   listen: 127.0.0.1:1111   hash: fnv1a_64   distribution: ketama   redis: true   hash_tag: "::"   servers:    - 127.0.0.1:6660:1 server1    - 127.0.0.1:6661:1 server2

連接Twemproxy

/usr/servers/redis-2.8.19/src/redis-cli  -p 1111

在我的服務(wù)器上可以連接6660端口

/usr/servers/redis-2.8.19/src/redis-cli  -p 6660  
127.0.0.1:6660> get p:12:  "1"  
127.0.0.1:6660> get d:12:  "1"  
127.0.0.1:6660> get c:12:  "1"

感謝各位的閱讀!關(guān)于“Linux下如何安裝配置Twemproxy”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI