日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

用magent+repcache搭建緩存集群和主備

 昵稱31103724 2016-03-01
因?yàn)槲覀児疽恢痹谟胢emcache,始終存在幾個(gè)問題,問題如下:1、單點(diǎn)問題;2、緩存無備份和緩存無法同步問題。


針對(duì)以上問題給出具體的解決方案:
1、用magent,做集群和分布式。。

magent,做集群和分布式。。

    magent-0.5.tar.gz

    libevent-1.4.14b-stable.tar.gz

    memcached-1.4.25.tar.gz

 

memcached   的安裝和依賴安裝

 

1.     安裝libevent

 

 

    tar zxvf libevent-1.4.13-stable.tar.gz

    cd libevent-1.4.13-stable

    ./configure  --prefix=/usr/local/libevent-1.4.14

    make

    make install

 

 

 

2. 安裝memcached

 

    tar zxvf memcached-1.4.5.tar.gz

    cd memcached-1.4.5.tar.gz

    ./configure  --with-libevent=/usr/local/libevent-1.4.14  ##  configure 需要加 libevent的安裝路徑世紀(jì)安裝路徑 或者在當(dāng)前路徑下用yum install libevent來安裝

    make

    make install

 安裝完成后配置路徑

  /usr/bin/install -c 'memcached'  '/usr/local/bin/memcached'   配置memcached的路徑

  /usr/bin/install -c 'memcached-debug' '/usr/local/bin/memcached-debug'  配置memcached-debug的路徑

 

 

 

安裝magent

 

mkdir magent 

tar zxvf magent-0.5.tar.gz   -C magent

/sbin/ldconfig 

sed -i "s#LIBS = -levent#LIBS = -levent -lm#g" Makefile 

make 

cp magent /usr/local/bin/magent 

cd ../ 

 

  

 

/usr/local/bin/memcached -d  -u kssadmin  -p 11211

/usr/local/bin/memcached -d  -u kssadmin  -p 11212

/usr/local/bin/memcached -d  -u kssadmin  -p 11213

 

 

/usr/local/bin/magent -u root -d   -l  192.168.20.122 -p 12000 -s 127.0.0.1:11211 -s 127.0.0.1:11212 -b 127.0.0.1:11213

 

 

 

分別在127.0.0.1機(jī)器的1121111212,11213端口啟動(dòng)3個(gè)Memcached進(jìn)程,在12000端口開啟magent代理程序

 

1121111212為主Memcached,11213為備份Memcached

 

 



2、 用repcache 主備來解決緩存?zhèn)浞莺途彺嫱絾栴}


memcached-1.2.8-repcached-2.2.tar
repcached下載地址:http://downloads./repcached

參考網(wǎng)上的例子自己安裝repcache,安裝過程中遇到各種問題一一解決并做了整理,并分享出來;首先感謝前人整理分享的資料,其次希望該資料給其他人帶來方便。


具體代碼:

# cd /home/kssadmin  進(jìn)入到當(dāng)前用戶的主目錄
#mkdir app  創(chuàng)建app
# mv /home/kssadmin/Desktop/ /home/kssadmin/app/  centos實(shí)在VM環(huán)境下搭建的,我從外部下載的安裝包,并拷貝到Desktop中,移動(dòng)到app下
#cd /home/kssadmin/app/
#ll
-rwxrwxrwx. 1 kssadmin kssadmin  227510 Jul  1  2014 memcached-1.2.8-repcached-2.2.tar.gz

準(zhǔn)備工作已完成


#tar -zxvf memcached-1.2.8-repcached-2.2.tar.gz     解壓縮
#  cd memcached-1.2.8-repcached-2.2/   
#  yum install libevent-devel    //用yum方式安裝的libevent-devel   如果提示Another app is currently holding the yum lock; waiting for it to exit...  請(qǐng)參考后面解決方案
Loaded plugins: fastestmirror, langpacks
base                                                     | 3.6 kB     00:00     
extras                                                   | 3.4 kB     00:00     
jenkins                                                  |  951 B     00:00     
updates                                                  | 3.4 kB     00:00     
extras/7/x86_64/primary_db                                 | 101 kB   00:00     
jenkins/primary                                            |  35 kB   00:01     
Loading mirror speeds from cached hostfile
 * base: mirror.bit.edu.cn
 * extras: mirrors.neusoft.edu.cn
 * updates: mirror.bit.edu.cn
jenkins                                                                 321/321
Resolving Dependencies
--> Running transaction check
---> Package libevent-devel.x86_64 0:2.0.21-4.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package                Arch           Version               Repository    Size
================================================================================
Installing:
 libevent-devel         x86_64         2.0.21-4.el7          base          85 k

Transaction Summary
================================================================================
Install  1 Package

Total download size: 85 k
Installed size: 357 k
Is this ok [y/d/N]: y
Downloading packages:
warning: /var/cache/yum/x86_64/7/base/packages/libevent-devel-2.0.21-4.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
Public key for libevent-devel-2.0.21-4.el7.x86_64.rpm is not installed
libevent-devel-2.0.21-4.el7.x86_64.rpm                     |  85 kB   00:03     
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
Importing GPG key 0xF4A80EB5:
 Userid     : "CentOS-7 Key (CentOS 7 Official Signing Key) <security@centos.org>"
 Fingerprint: 6341 ab27 53d7 8a78 a7c2 7bb1 24c6 a8a7 f4a8 0eb5
 Package    : centos-release-7-1.1503.el7.centos.2.8.x86_64 (@anaconda)
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
Is this ok [y/N]: y
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : libevent-devel-2.0.21-4.el7.x86_64                           1/1
  Verifying  : libevent-devel-2.0.21-4.el7.x86_64                           1/1

Installed:
  libevent-devel.x86_64 0:2.0.21-4.el7                                          

Complete!    -----到此libebvent-devel 安裝成功

# ./configure --enable-replication --program-transform-name=s/memcached/repcached/     配置和生成makefle  文件  

     checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking target system type... x86_64-unknown-linux-gnu
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
..................


     #make         
    ###make過程中如果約到一下問題:請(qǐng)參考后面解決方案,親自解決過了 貼出來跟大家分享一下。。
ed.c: In function ‘a(chǎn)dd_iov’:
memcached.c:696:30: error: ‘IOV_MAX’ undeclared (first use in this function)
         if (m->msg_iovlen == IOV_MAX ||
                              ^
memcached.c:696:30: note: each undeclared identifier is reported only once for each function it appears in
     .....
    # make install
    ......


  到此安裝完成,下面完成配置:
 # /usr/bin/install -c 'memcached'  '/usr/local/bin/repcached'   正常模式啟動(dòng)
 # /usr/bin/install -c 'memcached-debug' '/usr/local/bin/repcached-debug'  debug模式啟動(dòng)


[kssadmin@localhost  memcached-1.2.8-repcached-2.2]$ /usr/local/bin/repcached -p 11211 -v  -d   ######啟動(dòng)  占用端口  -p(-p <num>      TCP port number to listen on (default: 11211))指定端口  11211        -v (verbose (print errors/warnings while in event loop))  打印錯(cuò)誤信息和警告   -d  以守護(hù)進(jìn)程方式啟動(dòng)     (run as a daemon )
replication: listen  ## 顯示當(dāng)前信息證明啟動(dòng)成功


[kssadmin@localhost  memcached-1.2.8-repcached-2.2]$ ps -ef|grep repchache    ### 查看repchache  是否啟動(dòng)
kssadmin   3385      1  0 09:31 ?        00:00:01 /usr/bin/ibus-daemon --replace --xim --panel disable
kssadmin   9613      1  0 09:49 ?        00:00:00 /usr/local/bin/repcached -p 11211 -v -d
kssadmin   9683   3821  0 09:50 pts/0    00:00:00 grep --color=auto rep



/usr/local/bin/repcached -p 11212  -x 127.0.0.1 -v -d     啟動(dòng)備份   
replication: connect (peer=127.0.0.1:11212)
replication: marugoto copying
replication: accept
[kssadmin@localhost  memcached-1.2.8-repcached-2.2]$ replication: start  

[kssadmin@localhost memcached-1.2.8-repcached-2.2]$ ps -aux
。。。
kssadmin   9613  0.0  0.0   9564   776 ?        Ss   09:49   0:00 /usr/local/bin/repcached -p 11211 -v -d
kssadmin   9708  0.0  0.0   9516   580 ?        Ss   09:50   0:00 /usr/local/bin/repcached -p 11212 -x 127.0.0.1 -v -d
。。。。







repcache啟動(dòng)成功

測(cè)試數(shù)據(jù)是否同步  首先telnet  11211  并寫入數(shù)據(jù)     
[root@localhost Packages]# telnet localhost 11211
Trying ::1...
Connected to localhost.
Escape character is '^]'.
set seven 0 0 8    注意:最后一位給出的是字符穿個(gè)數(shù),輸入的字符串位數(shù)必須夠,否則會(huì)爆出錯(cuò)誤:CLIENT_ERROR bad data chunk 這是因?yàn)榇鎯?chǔ)的字節(jié)長(zhǎng)度與指定的長(zhǎng)度不匹配造成的   
dddddddd
STORED
get seven
VALUE seven 0 8
dddddddd
END
quit
Connection closed by foreign host.
[root@localhost Packages]# telnet localhost 11212    -- 在備份的cache中取數(shù)據(jù)   
Trying ::1...
Connected to localhost.
Escape character is '^]'.
get seven
VALUE seven 0 8
dddddddd
END




其次測(cè)試在備分緩存集成中寫入數(shù)據(jù)是否會(huì)同步到主緩存中

[root@localhost Packages]# telnet localhost 11212
Trying ::1...
Connected to localhost.
Escape character is '^]'.
set back 0 0 6
------
STORED
get back
VALUE back 0 6
------
END
quit
Connection closed by foreign host.
[root@localhost Packages]# telnet localhost 11211
Trying ::1...
Connected to localhost.
Escape character is '^]'.
get back
VALUE back 0 6
------
END
quit
Connection closed by foreign host.












#  yum install libevent-devel    //用yum方式安裝的libevent-devel  
安裝過過程中一直遇到如下問題,提示app被鎖了,另外京城在占用這,如果遇到了可以選擇殺掉 的進(jìn)程或者直接結(jié)束上一次操作直接執(zhí)行  rm -f /var/run/yum.pid
Loaded plugins: fastestmirror, langpacks
Existing lock /var/run/yum.pid: another copy is running as pid 4497.
Another app is currently holding the yum lock; waiting for it to exit...
  The other application is: PackageKit
    Memory : 132 M RSS (1.4 GB VSZ)
    Started: Wed Feb 24 09:34:01 2016 - 04:48 ago
    State  : Sleeping, pid: 4497
Another app is currently holding the yum lock; waiting for it to exit...
  The other application is: PackageKit
    Memory : 132 M RSS (1.4 GB VSZ)
    Started: Wed Feb 24 09:34:01 2016 - 04:50 ago
    State  : Sleeping, pid: 4497
Another app is currently holding the yum lock; waiting for it to exit...
  The other application is: PackageKit
    Memory : 132 M RSS (1.4 GB VSZ)
    Started: Wed Feb 24 09:34:01 2016 - 04:52 ago
    State  : Sleeping, pid: 4497


#make
make && make install
提示編譯出錯(cuò):   
make all-recursive   
make[1]: Entering directory `/usr/local/memcached'   
Making all in doc   
make[2]: Entering directory `/usr/local/memcached/doc'   
make[2]: Nothing to be done for `all'.   
make[2]: Leaving directory `/usr/local/memcached/doc'   
make[2]: Entering directory `/usr/local/memcached'   
gcc -DHAVE_CONFIG_H -I. -DNDEBUG -m64 -g -O2 -MT memcached-memcached.o -MD     
MP -MF .deps/memcached-memcached.Tpo -c -o memcached-memcached.o `test -f     
memcached.c' || echo './'`memcached.c   
memcached.c: In function ‘a(chǎn)dd_iov’:   
memcached.c:697: error: ‘IOV_MAX’ undeclared (first use in this function)   
memcached.c:697: error: (Each undeclared identifier is reported only once   
memcached.c:697: error: for each function it appears in.)   
make[2]: *** [memcached-memcached.o] Error 1   
make[2]: Leaving directory `/usr/local/memcached'   
make[1]: *** [all-recursive] Error 1   
make[1]: Leaving directory `/usr/local/memcached'   
make: *** [all] Error 2

解決方案:   

vi memcached.c

將下面的幾行   

/* FreeBSD 4.x doesn't have IOV_MAX exposed. */   
#ifndef IOV_MAX   
#if defined(__FreeBSD__) || defined(__APPLE__)   
# define IOV_MAX 1024   
#endif   
#endif

修改為   

/* FreeBSD 4.x doesn't have IOV_MAX exposed. */   
#ifndef IOV_MAX   
# define IOV_MAX 1024   
#endif

重新編譯和安裝:   

make && make install

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多