欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

codis集群部署實(shí)戰(zhàn)

一、概要

成都創(chuàng)新互聯(lián)公司堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的海門網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

1、折騰codis集群已經(jīng)快兩個(gè)月了,感謝一直以來(lái)codis的作者劉奇和黃東旭的耐心支持,在這里給你們點(diǎn)個(gè)贊,現(xiàn)在我司已經(jīng)有一個(gè)業(yè)務(wù)跑在了codis集群上,目前只是切了整個(gè)業(yè)務(wù)的10%的量,預(yù)計(jì)下周會(huì)全量切到codis上,這個(gè)時(shí)候大家肯定特別想知道codis穩(wěn)定嗎?有沒(méi)有什么bug啊,你想知道的也是我想知道的,搞起吧,用了才知道,反正目前我們這沒(méi)發(fā)現(xiàn)啥問(wèn)題,一些小的問(wèn)題已經(jīng)及時(shí)聯(lián)系作者改掉了,好吧,不扯淡了,寫這篇文章的目的是幫助想了解codis的初學(xué)者快速部署(官方的部署文檔對(duì)應(yīng)運(yùn)維知識(shí)弱一點(diǎn)的童鞋看來(lái)還是有點(diǎn)費(fèi)力)還有就是給自己做一個(gè)備錄以便后期集群的部署。

2、Codis 是一個(gè)分布式Redis解決方案, 對(duì)于上層的應(yīng)用來(lái)說(shuō), 連接到 Codis Proxy 和連接原生的 Redis Server 沒(méi)有明顯的區(qū)別 (有一些命令不支持), 上層應(yīng)用可以像使用單機(jī)的 Redis 一樣使用, Codis 底層會(huì)處理請(qǐng)求的轉(zhuǎn)發(fā), 不停機(jī)的數(shù)據(jù)遷移等工作, 所有后邊的一切事情, 對(duì)于前面的客戶端來(lái)說(shuō)是透明的, 可以簡(jiǎn)單的認(rèn)為后邊連接的是一個(gè)內(nèi)存無(wú)限大的 Redis服務(wù),當(dāng)然,前段時(shí)間redis官方的3.0出了穩(wěn)定版,3.0支持集群功能,codis的實(shí)現(xiàn)原理和3.0的集群功能差不多,我了解的現(xiàn)在美團(tuán)、阿里已經(jīng)用了3.0的集群功能了,我們這邊的業(yè)務(wù)主要是php,3.0集群的sdk目前貌似還沒(méi)有支持php語(yǔ)言的,大家誰(shuí)的php應(yīng)用上了3.0集群,請(qǐng)聯(lián)系我,我去取經(jīng),有關(guān)redis常見的集群技術(shù),請(qǐng)移步到 @蕭田國(guó) 蕭老師的infoq專欄Redis集群技術(shù)及Codis實(shí)踐

二、架構(gòu)

三、角色分批

zookeeper集群: 10.10.0.47 10.10.0.48 10.10.1.76 codis-config、codis-ha: 10.10.32.10:18087 codis-proxy: 10.10.32.10:19000 10.10.32.49:19000 codis-server: 10.10.32.42:6379、10.10.32.43:6380(主、從) 10.10.32.43:6379、10.10.32.44:6380(主、從) 10.10.32.44:6379、10.10.32.42:6380(主、從)

四、部署

1、安裝zookeeper

yum-yinstallzookeeperjdk##安裝服務(wù)

vim/etc/hosts##添加host 10.10.0.47ZooKeeper-node1 10.10.0.48ZooKeeper-node2 10.10.1.76ZooKeeper-node3

vim/etc/zookeeper/conf/zoo.cfg##撰寫zk的配置文件 maxClientCnxns=50 tickTime=2000 initLimit=10 syncLimit=5 dataDir=/data/zookeeper/ clientPort=2181 server.1=ZooKeeper-node1:2888:3888 server.2=ZooKeeper-node2:2888:3888 server.3=ZooKeeper-node3:2888:3888

mkdir/data/zookeeper/##創(chuàng)建zk的datadir目錄 echo"2">/data/zookeeper/myid##生成ID,這里需要注意,myid對(duì)應(yīng)的zoo.cfg的server.ID,比如ZooKeeper-node2對(duì)應(yīng)的myid應(yīng)該是2 /usr/lib/zookeeper/bin/zkServer.shstart##服務(wù)啟動(dòng)

2、go安裝(codis是go語(yǔ)言寫的,所以那些機(jī)器需要安裝你懂得)

wgethttps://storage.googleapis.com/golang/go1.4.1.linux-amd64.tar.gz tar-zxvfgo1.4.1.linux-amd64.tar.gz mvgo/usr/local/ cd/usr/local/go/src/ bashall.bash cat>>~/.bashrc<<_bashrc_export exportGOROOT=/usr/local/go exportPATH=$PATH:$GOROOT/bin exportGOARCH=amd64 exportGOOS=linux _bashrc_export source~/.bashrc

3、下載并編譯codis(codis-config、codis-proxy、codis-server所在的機(jī)器)

mkdir/data/go exportGOPATH=/data/go /usr/local/go/bin/gogetgithub.com/wandoulabs/codis cd/data/go/src/github.com/wandoulabs/codis/ ./bootstrap.sh makegotest

五、服務(wù)啟動(dòng)及初始化集群

1、啟動(dòng) dashboard(codis-config上操作)

cat/etc/codis/config_10.ini##撰寫配置文件 zk=10.10.0.47:2181,10.10.0.48:2181,10.10.1.76:2181 product=zh_news proxy_id=codis-proxy_10 net_timeout=5000 proto=tcp4 dashboard_addr=10.10.32.10:18087

cd/data/go/src/github.com/wandoulabs/codis/&&./bin/codis-config-c/etc/codis/config_10.inidashboard&

2、初始化 slots(codis-config上操作)

cd/data/go/src/github.com/wandoulabs/codis/&&./bin/codis-config-c/etc/codis/config_10.inislotinit

3、啟動(dòng) Codis Redis , 和官方的Redis Server參數(shù)一樣(codis-server上操作)

cd/data/go/src/github.com/wandoulabs/codis/&&./bin/codis-server/etc/redis_6379.conf&

4、添加 Redis Server Group , 每一個(gè) Server Group 作為一個(gè) Redis 服務(wù)器組存在, 只允許有一個(gè) master, 可以有多個(gè) slave, group id 僅支持大于等于1的整數(shù)(codis-config上操作)

cd/data/go/src/github.com/wandoulabs/codis/ ./bin/codis-config-c/etc/codis/config_10.iniserveradd110.10.32.42:6379master ./bin/codis-config-c/etc/codis/config_10.iniserveradd110.10.32.43:6380slave ./bin/codis-config-c/etc/codis/config_10.iniserveradd210.10.32.43:6379master ./bin/codis-config-c/etc/codis/config_10.iniserveradd210.10.32.44:6380slave ./bin/codis-config-c/etc/codis/config_10.iniserveradd310.10.32.44:6379master ./bin/codis-config-c/etc/codis/config_10.iniserveradd310.10.32.42:6380slave

5、設(shè)置 server group 服務(wù)的 slot 范圍 Codis 采用 Pre-sharding 的技術(shù)來(lái)實(shí)現(xiàn)數(shù)據(jù)的分片, 默認(rèn)分成 1024 個(gè) slots (0-1023), 對(duì)于每個(gè)key來(lái)說(shuō), 通過(guò)以下公式確定所屬的 Slot Id : SlotId = crc32(key) % 1024 每一個(gè) slot 都會(huì)有一個(gè)特定的 server group id 來(lái)表示這個(gè) slot 的數(shù)據(jù)由哪個(gè) server group 來(lái)提供.(codis-config上操作)

cd/data/go/src/github.com/wandoulabs/codis/ ./bin/codis-config-c/etc/codis/config_10.inislotrange-set03001online ./bin/codis-config-c/etc/codis/config_10.inislotrange-set3017002online ./bin/codis-config-c/etc/codis/config_10.inislotrange-set70110233online

6、啟動(dòng) codis-proxy (codis-proxy上操作)

cat/etc/codis/config_10.ini##撰寫配置文件 zk=10.10.0.47:2181,10.10.0.48:2181,10.10.1.76:2181 product=zh_news proxy_id=codis-proxy_10##10.10.32.49上改成codis-proxy_49,多個(gè)proxy,proxy_id需要唯一 net_timeout=5000 proto=tcp4 dashboard_addr=10.10.32.10:18087

cd/data/go/src/github.com/wandoulabs/codis/&&./bin/codis-proxy-c/etc/codis/config_10.ini-L/data/log/codis-proxy_10.log--cpu=4--addr=0.0.0.0:19000--http-addr=0.0.0.0:11000& cd/data/go/src/github.com/wandoulabs/codis/&&./bin/codis-proxy-c/etc/codis/config_49.ini-L/data/log/codis-proxy_49.log--cpu=4--addr=0.0.0.0:19000--http-addr=0.0.0.0:11000&

OK,整個(gè)集群已經(jīng)搭建成功了,截圖給你們show show

六、codis-server的HA

codis-ha實(shí)現(xiàn)codis-server的主從切換,codis-server主庫(kù)掛了會(huì)提升一個(gè)從庫(kù)為主庫(kù),從庫(kù)掛了會(huì)設(shè)置這個(gè)從庫(kù)從集群下線

1、安裝

exportGOPATH=/data/go /usr/local/go/bin/gogetgithub.com/ngaut/codis-ha cd/data/go/src/github.com/ngaut/codis-ha gobuild cpcodis-ha/data/go/src/github.com/wandoulabs/codis/bin/ 使用方法: codis-ha--codis-config=dashboard地址:18087--productName=集群項(xiàng)目名稱

2、使用supervisord管理codis-ha進(jìn)程

yum-yinstallsupervisord

/etc/supervisord.conf中添加如下內(nèi)容: [program:codis-ha] autorestart=True stopwaitsecs=10 startsecs=1 stopsignal=QUIT command=/data/go/src/github.com/wandoulabs/codis/bin/codis-ha--codis-config=10.10.32.17:18087--productName=dh_tianqi user=root startretries=3 autostart=True exitcodes=0,2

3、啟動(dòng)supervisord服務(wù)

/etc/init.d/supervisordstart chkconfigsupervisordon

此時(shí),ps -ef |grep codis-ha 你回發(fā)現(xiàn)codis-ha進(jìn)程已經(jīng)啟動(dòng),這個(gè)時(shí)候你去停掉一個(gè)codis-server的master,看看slave會(huì)不會(huì)提升為master呢

七、關(guān)于監(jiān)控

關(guān)于整個(gè)codis集群的監(jiān)控,我們這邊用的是zabbix,監(jiān)控的指標(biāo)比較簡(jiǎn)單,所以這塊大家有什么好的建議多給我提提哈

zookeeper:監(jiān)控各個(gè)節(jié)點(diǎn)的端口聯(lián)通性(以后想著把進(jìn)程也監(jiān)控上)

codis-proxy:監(jiān)控了端口的聯(lián)通性,這個(gè)監(jiān)控遠(yuǎn)遠(yuǎn)不夠呀

codis-server:監(jiān)控了內(nèi)存使用率、連接數(shù)、聯(lián)通性

codis-ha:監(jiān)控進(jìn)程

dashboard:監(jiān)控端口聯(lián)通性

八、使用過(guò)程中遇到的問(wèn)題

1、codis-proxy的日志切割,codis-proxy的默認(rèn)日志級(jí)別是info,日志量很大,我們這邊每天產(chǎn)生50多G日志,目前codis-proxy還不支持熱重啟,想修改啟動(dòng)參數(shù)還是比較麻煩的,日志切割推薦用logrotate

2、codis-proxy的監(jiān)聽地址默認(rèn)沒(méi)有具體ipv4,也就是codis-proxy啟動(dòng)之后沒(méi)有0.0.0.0:19000這樣的監(jiān)聽,這樣會(huì)導(dǎo)致的問(wèn)題就是前端lvs沒(méi)有辦法負(fù)載均衡codis-proxy,不能轉(zhuǎn)發(fā)請(qǐng)求過(guò),這個(gè)問(wèn)題已聯(lián)系作者處理了,在codis-proxy啟動(dòng)的配置文件中加上proto=tcp4這個(gè)參數(shù)就支持監(jiān)聽ipv4了

3、添加 Redis Server Group的時(shí)候,非codis-server(原生的redis)竟然也能加入到codis集群里面,在redis和codis-server共存在一個(gè)物理機(jī)上的清楚,很容易加錯(cuò),希望能有個(gè)驗(yàn)證,非codis-server不能加入到codis集群

4、codis集群內(nèi)部通訊是通過(guò)主機(jī)名的,如果主機(jī)名沒(méi)有做域名解析那dashboard是通過(guò)主機(jī)名訪問(wèn)不到proxy的http-addr地址的,這會(huì)導(dǎo)致從web界面上看不到OP/s的數(shù)據(jù),至于還有沒(méi)有其他問(wèn)題,目前我這邊還沒(méi)有發(fā)現(xiàn),建議內(nèi)部通訊直接用內(nèi)網(wǎng)IP

PS:我已建立一個(gè)管理codis的QQ群,對(duì)codis感興趣的可以加入一起交流,群號(hào):183613045

本文出自 “?絲運(yùn)維男” 博客,請(qǐng)務(wù)必保留此出處http://navyaijm.blog.51cto.com/4647068/1637688

標(biāo)題名稱:codis集群部署實(shí)戰(zhàn)
轉(zhuǎn)載來(lái)源:http://www.chinadenli.net/article0/cgjdoo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)移動(dòng)網(wǎng)站建設(shè)軟件開發(fā)網(wǎng)站建設(shè)品牌網(wǎng)站制作網(wǎng)站內(nèi)鏈

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

小程序開發(fā)