摘要:部署實現(xiàn)高可用常用的兩個工具連接多個,請求轉(zhuǎn)發(fā)單單,互為主輔結(jié)構(gòu)結(jié)構(gòu)主要部署步驟使用啟動個每個容器初始化腳本得到另一個節(jié)點的因為就兩個節(jié)點,不是就是判斷另一個節(jié)點的監(jiān)聽狀態(tài)如果在監(jiān)聽說明是主節(jié)點需要復(fù)制它,否則反之復(fù)制節(jié)點
部署Memcached
memcached實現(xiàn)高可用常用的兩個工具:magent+memcached結(jié)構(gòu) repcache+memcached結(jié)構(gòu) 主要部署步驟(repcache+memcached) 使用statefulset啟動2個memcached
1)magent:連接多個memcached,請求轉(zhuǎn)發(fā)
2)repcached:單master單slave,互為主輔
md-5c107eeae9fb1-0 1/1 Running 0 59s md-5c107eeae9fb1-1 1/1 Running 0 49s每個容器初始化腳本
#得到另一個節(jié)點的HOSTNAME(因為就兩個節(jié)點,不是0就是1) PARTNER=${HOSTNAME##*-} if [ "${PARTNER}" = "0" ]; then PARTNER=${MY_POD_NAME}-1 fi if [ "${PARTNER}" = "1" ]; then PARTNER=${MY_POD_NAME}-0 fi #判斷另一個節(jié)點的監(jiān)聽狀態(tài)(如果在監(jiān)聽說明是主節(jié)點需要復(fù)制它,否則反之) 測試 主備切換//啟動主節(jié)點后狀態(tài)為Listen,設(shè)置同步端口為22222 root@md-5c107eeae9fb1-0:/# memcached -p 11211 -X 22222 -v -d -u root -m 512 root@md-5c107eeae9fb1-0:/# replication: listen Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:11211 0.0.0.0:* LISTEN 260/memcached tcp 0 0 0.0.0.0:22222 0.0.0.0:* LISTEN 260/memcached tcp6 0 0 :::11211 :::* LISTEN 260/memcached //啟動復(fù)制節(jié)點,同樣設(shè)置同步端口為22222 root@md-5c107eeae9fb1-1:/# memcached -p 11211 -X 22222 -x md-5c107eeae9fb1-0.md-5c107eeae9fb1.itfarm3.svc.cluster.local -v -d -u root -m 512 root@md-5c107eeae9fb1-1:/# replication: connect (peer=10.244.5.50:22222) replication: marugoto copying replication: start //從節(jié)點加入后,主節(jié)點狀態(tài)為accept并取消對22222的監(jiān)聽 root@md-5c107eeae9fb1-0:/# replication: listen replication: accept Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:11211 0.0.0.0:* LISTEN 263/memcached tcp6 0 0 :::11211 :::* LISTEN 263/memcached //kill掉主節(jié)點 root@md-5c107eeae9fb1-0:/# kill 263 replication: cleanup start replication: close root@md-5c107eeae9fb1-0:/# replication: cleanup complete //此時從節(jié)點成Listen狀態(tài),監(jiān)聽復(fù)制端口22222,等待加入 root@md-5c107eeae9fb1-1:/# replication: connect (peer=10.244.5.50:22222) replication: marugoto copying replication: start replication: close replication: listen Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:11211 0.0.0.0:* LISTEN 258/memcached tcp 0 0 0.0.0.0:22222 0.0.0.0:* LISTEN 258/memcached tcp6 0 0 :::11211 :::* LISTEN 258/memcached高可用//啟動2個節(jié)點(一主一備) md-5c107eeae9fb1-0 1/1 Running 0 59s md-5c107eeae9fb1-1 1/1 Running 0 49s //在主節(jié)點中添加item $ telnet md-5c107eeae9fb1-0.md-5c107eeae9fb1.itfarm3.svc.cluster.local 11211 Trying 10.244.4.162... Connected to md-5c107eeae9fb1-0.md-5c107eeae9fb1.itfarm3.svc.cluster.local. Escape character is "^]". set name 0 0 8 zhangsan STORED quit Connection closed by foreign host. //從節(jié)點查看item $ telnet md-5c107eeae9fb1-1.md-5c107eeae9fb1.itfarm3.svc.cluster.local 11211 Trying 10.244.3.176... Connected to md-5c107eeae9fb1-1.md-5c107eeae9fb1.itfarm3.svc.cluster.local. Escape character is "^]". get name VALUE name 0 8 zhangsan END //模擬故障 $ kubectl.exe delete po md-5c107eeae9fb1-0 pod "md-5c107eeae9fb1-0" deleted //重啟后數(shù)據(jù)恢復(fù) $ telnet md-5c107eeae9fb1-0.md-5c107eeae9fb1.itfarm3.svc.cluster.local 11211 Trying 10.244.4.162... Connected to md-5c107eeae9fb1-0.md-5c107eeae9fb1.itfarm3.svc.cluster.local. Escape character is "^]". get name VALUE name 0 8 zhangsan END部署sasl安全認(rèn)證的memcached 測試//使用statefulset啟動N個memcached md-5c11b67a6ae9b-0 1/1 Running 0 1h md-5c11b67a6ae9b-1 1/1 Running 0 1h md-5c11b67a6ae9b-2 1/1 Running 0 1h使用python連接memcached$ python3 Python 3.5.2 (default, Nov 23 2017, 16:37:01) [GCC 5.4.0 20160609] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import bmemcached >>> client = bmemcached.Client(("md-5c11b67a6ae9b-ha:11211"), "md-5c11b67a6ae9b", "ZcUu1AVGbB3PnDzhxfOjRLJhatugwZBe") >>> client.set("name", "zhangsan") True >>> client.get("name") "zhangsan" >>>分布式存儲 使用無頭服務(wù)來區(qū)分多個memcache#!/usr/bin/env python3 import bmemcached client = bmemcached.Client(("md-5c11b67a6ae9b-0.md-5c11b67a6ae9b.itfarm3.svc.cluster.local:11211", "md-5c11b67a6ae9b-1.md-5c11b67a6ae9b.itfarm3.svc.cluster.local:11211", "md-5c11b67a6ae9b-1.md-5c11b67a6ae9b.itfarm3.svc.cluster.local:11211"), "md-5c11b67a6ae9b", "ZcUu1AVGbB3PnDzhxfOjRLJhatugwZBe") print(client.set("name", "zhangsan")) print(client.get("name"))運行$ python3 test.py True zhangsan各客戶端連接開啟了sasl安全認(rèn)證的memcached方案
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/32811.html
摘要:有了分布式數(shù)據(jù)庫可以使數(shù)據(jù)庫的性能可以隨著節(jié)點增加線性地增加。分布式數(shù)據(jù)庫最最下面是,是主備的,通過的內(nèi)核開發(fā)能力,我們能夠?qū)崿F(xiàn)主備切換數(shù)據(jù)零丟失,所以數(shù)據(jù)落在這個里面,是非常放心的,哪怕是掛了一個節(jié)點,切換完了以后,你的數(shù)據(jù)也是不會丟的。 此文已由作者劉超授權(quán)網(wǎng)易云社區(qū)發(fā)布。 歡迎訪問網(wǎng)易云社區(qū),了解更多網(wǎng)易技術(shù)產(chǎn)品運營經(jīng)驗 三、微服務(wù)化的十個設(shè)計要點 微服務(wù)有哪些要點呢?第一張圖是...
摘要:跨集群服務(wù)能夠分布在不同的地理位置,使得混合和多云成為可能,相對于單一集群多可用區(qū)部署,更好地保證高可用。注例子中,我們利用谷歌容器引擎提供的集群,在該平臺上,你可以把部署到想要的地區(qū)。 編者按:這篇文章是關(guān)于Kubernetes 1.3新功能的一系列深入文章的一部分。本文是第七篇。 用戶使用Kubernetes 對生產(chǎn)環(huán)境上的部署進行彈性伸縮,同時我們聽到一個明確的聲音:希望跨區(qū)域、...
摘要:本文內(nèi)容節(jié)選自由主辦的第七屆,架構(gòu)師高欣分享的的實踐實錄。當(dāng)然,在部署完成后,我們要做一個監(jiān)測以便掌握它的運行狀況。規(guī)劃配置運行環(huán)境在正式部署前,還要考慮如何規(guī)劃并配置好運行環(huán)境。在使用部署時,可以利用這些命令做驗證,檢驗部署是否正常。 showImg(https://segmentfault.com/img/bVblRHj?w=2880&h=1920); 本文內(nèi)容節(jié)選自由msup主辦...
摘要:使用緩存兩個前提條件數(shù)據(jù)訪問熱點不均衡數(shù)據(jù)某時段內(nèi)有效,不會很快過期反向代理本地緩存分布式緩存異步旨在系統(tǒng)解耦。 大型網(wǎng)站技術(shù)架構(gòu)-入門梳理 標(biāo)簽 : 架構(gòu)設(shè)計 [TOC] 羅列了大型網(wǎng)站架構(gòu)涉及到的概念,附上了簡單說明 前言 本文是對《大型網(wǎng)站架構(gòu)設(shè)計》(李智慧 著)一書的梳理,類似文字版的思維導(dǎo)圖 全文主要圍繞性能,可用性,伸縮性,擴展性,安全這五個要素 性能,可用性,伸縮性...
閱讀 2346·2021-11-24 10:27
閱讀 3588·2019-08-30 15:55
閱讀 3350·2019-08-30 15:53
閱讀 2351·2019-08-29 17:27
閱讀 1442·2019-08-26 13:47
閱讀 3556·2019-08-26 10:28
閱讀 921·2019-08-23 15:59
閱讀 2861·2019-08-23 15:19