国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

輕量級(jí) memcached緩存代理 twemproxy實(shí)踐

ninefive / 476人閱讀

摘要:本文內(nèi)容腦圖如下文章共字,閱讀大約需要分鐘概述是開源的輕量級(jí)代理服務(wù)器,本質(zhì)就是一個(gè)集群管理工具,主要用來(lái)彌補(bǔ)和對(duì)集群管理的不足,其完成的最大功勞就是通過(guò)在后端減少同緩存服務(wù)器的連接數(shù)從而增加吞吐量。本文先實(shí)踐一波讓來(lái)一群小弟時(shí)的工作情況。

本文內(nèi)容腦圖如下:

文章共 533字,閱讀大約需要 2分鐘 !

概 述

twemproxy(nutcracker) 是 Twitter開源的輕量級(jí) memcached / redis 代理服務(wù)器,本質(zhì)就是一個(gè)集群管理工具,主要用來(lái)彌補(bǔ) Redis和 Memcached對(duì)集群管理的不足,其完成的最大功勞就是通過(guò)在后端減少同緩存服務(wù)器的連接數(shù)從而增加吞吐量。我們將 Twemproxy看成一個(gè)老大哥,背后 Carry著一群 memcached / redis實(shí)例小弟,如此看來(lái),某一程序上也類似于 memcached / redis 的HA。

本文先實(shí)踐一波讓 twemproxy 來(lái) Carry一群 memcached小弟時(shí)的工作情況。

注: 本文首發(fā)于  My Personal Blog:CodeSheep·程序羊,歡迎光臨 小站

環(huán)境準(zhǔn)備

準(zhǔn)備三臺(tái)節(jié)點(diǎn):

節(jié)點(diǎn) OS 角色
192.168.199.77 CentOS 7.4 部署 memcached1實(shí)例
192.168.199.78 CentOS 7.4 部署 memcached2實(shí)例
192.168.199.79 CentOS 7.4 部署 twemproxy代理服務(wù)器

memcached 部署

安裝

yum install memcached

作為后臺(tái)服務(wù)運(yùn)行之

memcached -u root -p 11211 -m 64m -d

twemproxy 部署

安裝 m4工具

wget http://ftp.gnu.org/gnu/m4/m4-1.4.9.tar.gz
tar -zvxf m4-1.4.9.tar.gz
cd m4-1.4.9
./configure
make
make install

安裝 autoconf 工具

wget http://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz
tar zxvf autoconf-2.69.tar.gz
cd autoconf-2.69
./configure --prefix=/usr/
make && make install

安裝 twemproxy代理

wget https://github.com/twitter/twemproxy/archive/master.zip
unzip master.zip
mv twemproxy-master twemproxy
mv twemproxy /usr/local/
cd /usr/local/
cd twemproxy/
autoreconf -fvi
./configure --enable-debug=full
make
make install

查看 twemproxy幫助

nutcracker -h
[root@localhost ~]# nutcracker -h
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)

準(zhǔn)備 twemproxy配置文件

vim /usr/local/twemproxy/conf/nutcracker.yml

修改配置文件 nutcracker.yml

memcached:
  listen: 127.0.0.1:22121
  hash: fnv1a_64
  distribution: ketama
  timeout: 400
  backlog: 1024
  preconnect: true
  auto_eject_hosts: true
  server_retry_timeout: 30000
  server_failure_limit: 3
  servers:
   - 192.168.199.77:11211:1   
   - 192.168.199.78:11211:1

啟動(dòng) tewmproxy服務(wù)

nutcracker -d -c /usr/local/twemproxy/conf/nutcracker.yml

檢查啟動(dòng)情況

[root@localhost ~]# netstat -nltp | grep nutcracker
tcp        0      0 0.0.0.0:22222           0.0.0.0:*               LISTEN      12737/nutcracker    
tcp        0      0 192.168.199.79:22121    0.0.0.0:*               LISTEN      12737/nutcracker

數(shù)據(jù)讀/寫測(cè)試

首先通過(guò) twemproxy代理來(lái)寫緩存

一連存入了 6個(gè)key

[root@localhost conf]# telnet localhost 22121
Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
Connected to localhost.
Escape character is "^]".
set key1  0 0 1
1
STORED
set key2 0 0 1
2
STORED
set key3 0 0 1
3
STORED
set key4 0 0 1
4
STORED
set key5 0 0 1
5
STORED
set key6 0 0 1
6
STORED

查看發(fā)現(xiàn)所有緩存都寫到了 memcached2中

[root@localhost ~]# telnet 127.0.0.1 11211
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is "^]".
get key1
VALUE key1 0 1
1
END
get key2   
VALUE key2 0 1
2
END
get key3
VALUE key3 0 1
3
END
get key4
VALUE key4 0 1
4
END
get key5
VALUE key5 0 1
5
END
get key6
VALUE key6 0 1
6
END

接下來(lái)斷開 memcached2

[root@localhost ~]# ps -aux | grep  mem
root       634  0.0  0.0 326588  1960 ?        Ssl  15:58   0:00 memcached -u root -p 11211 -m 64m -d
root       704  0.0  0.0 112676   984 pts/0    S+   16:01   0:00 grep --color=auto mem
[root@localhost ~]# kill -9 634

繼續(xù)通過(guò) twemproxy代理來(lái)寫緩存

[root@localhost conf]# telnet localhost 22121
Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
Connected to localhost.
Escape character is "^]".
set key9 0 0 1
9
STORED
[root@localhost conf]# 

此時(shí)去memcached1查看:

[root@localhost ~]# telnet 127.0.0.1 11211
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is "^]".
get key9
VALUE key9 0 1
9
END

我們發(fā)現(xiàn) memcached2斷開后,緩存 key9寫到了 memcached1中,而對(duì)于用戶來(lái)說(shuō),由于是跟 twemproxy代理交互,因此并不能感覺到后端 memcached2實(shí)例的下線

我們?cè)僦匦聠?dòng) memcached2

然后再繼續(xù)通過(guò)代理寫數(shù)據(jù):

[root@localhost conf]# telnet localhost 22121
Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
Connected to localhost.
Escape character is "^]".
set key10 0 0 1
x
STORED
set key11 0 0 1
y
STORED

然后發(fā)現(xiàn)數(shù)據(jù)又寫到 memcached2中了

[root@localhost ~]# telnet 127.0.0.1 11211
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is "^]".
get key10 
VALUE key10 0 1
x
END
get key11
VALUE key11 0 1
y
END
從上面這個(gè)實(shí)驗(yàn)過(guò)程可以看出,一臺(tái) memcached實(shí)例掛掉后,twemproxy 能自動(dòng)移除之;而恢復(fù)后,twemproxy 能夠自動(dòng)識(shí)別并重新加入到 memcached 組中重新使用

后 記
由于能力有限,若有錯(cuò)誤或者不當(dāng)之處,還請(qǐng)大家批評(píng)指正,一起學(xué)習(xí)交流!

My Personal Blog:CodeSheep 程序羊

我的半年技術(shù)博客之路



文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/62043.html

相關(guān)文章

  • 量級(jí) memcached緩存代理 twemproxy實(shí)踐

    摘要:本文內(nèi)容腦圖如下文章共字,閱讀大約需要分鐘概述是開源的輕量級(jí)代理服務(wù)器,本質(zhì)就是一個(gè)集群管理工具,主要用來(lái)彌補(bǔ)和對(duì)集群管理的不足,其完成的最大功勞就是通過(guò)在后端減少同緩存服務(wù)器的連接數(shù)從而增加吞吐量。本文先實(shí)踐一波讓來(lái)一群小弟時(shí)的工作情況。 showImg(https://segmentfault.com/img/remote/1460000017056459); 本文內(nèi)容腦圖如下: ...

    Dogee 評(píng)論0 收藏0
  • PHP面試??純?nèi)容之Memcache和Redis(3)

    摘要:自己整理了一篇不同等級(jí)面試都問(wèn)什么的文章,關(guān)注公眾號(hào)琉憶編程庫(kù),回復(fù)等級(jí),我發(fā)給你。 你好,是我琉憶。今天是周五了,再上一天班就周末了,提前祝大家周末愉快。嘿嘿。這篇文章是本周Memcache和Redis內(nèi)存數(shù)據(jù)庫(kù)??嫉膶n}。本周一和周三更新的文章路徑:PHP面試??純?nèi)容之Memcache和Redis(1)PHP面試??純?nèi)容之Memcache和Redis(2)本周(2019.2-18至...

    Lionad-Morotar 評(píng)論0 收藏0
  • PHP面試??純?nèi)容之Memcache和Redis(3)

    摘要:自己整理了一篇不同等級(jí)面試都問(wèn)什么的文章,關(guān)注公眾號(hào)琉憶編程庫(kù),回復(fù)等級(jí),我發(fā)給你。 你好,是我琉憶。今天是周五了,再上一天班就周末了,提前祝大家周末愉快。嘿嘿。這篇文章是本周Memcache和Redis內(nèi)存數(shù)據(jù)庫(kù)??嫉膶n}。本周一和周三更新的文章路徑:PHP面試??純?nèi)容之Memcache和Redis(1)PHP面試常考內(nèi)容之Memcache和Redis(2)本周(2019.2-18至...

    zhaochunqi 評(píng)論0 收藏0
  • 緩存架構(gòu)的理論分析

    摘要:但實(shí)際情況是緩存是大型網(wǎng)站的標(biāo)配。以上分析告訴我們緩存架構(gòu)要滿足冷熱分離的特征不滿足,因?yàn)槔鋽?shù)據(jù)可能擠走熱數(shù)據(jù)。另外,眾所周知,緩存架構(gòu)還要滿足讀寫分離的特征也不滿足,因?yàn)閷懖僮鲿?huì)爭(zhēng)搶讀操作的資源。這種風(fēng)格需要緩存系統(tǒng)的支持。 問(wèn)題背景 略談服務(wù)端緩存設(shè)計(jì) 一文說(shuō)到緩存不是必須的,因?yàn)閿?shù)據(jù)庫(kù)本身就利用了內(nèi)存。但實(shí)際情況是緩存是大型網(wǎng)站的標(biāo)配。 雖然經(jīng)驗(yàn)顯示RDBMS最快時(shí)只需0~1ms...

    jeffrey_up 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<