memagent實現對memcache的初級叢集管理
memagent是一款開源的memcached代理伺服器軟體
地址:
安裝memagent到/usr/local/下
cd /usr/local
mkdir memagent
cd memagent/
wget
tar zxvf memagent-0.5.tar.gz
/sbin/ldconfig
sed -i "s#LIBS = -levent#LIBS = -levent -lm#g" Makefile
make
memagent命令引數:
-h this message
-u uid
-g gid
-p port, default is 11211. (0 to disable tcp support)
-s ip:port, set memcached server ip and port
-b ip:port, set backup memcached server ip and port
-l ip, local bind ip address, default is 0.0.0.0
-n number, set max connections, default is 4096
-D don't go to background
-k use ketama key allocation algorithm
-f file, unix socket path to listen on. default is off
-i number, max keep alive connections for one memcached server, default is 20
-v verbose
啟動memagent服務
memagent -u root -n 4096 -l 127.0.0.1 -p 12000 -s 127.0.0.1:8086 -s 127.0.0.2:8086 -b 127.0.0.1:11213
memagent的hash演算法
memagent採用的是:Consistent Hashing原理,Consistent Hashing如下所示:首先求出memcached伺服器(節點)的雜湊值, 並將其配置到0~232的圓(continuum)上。 然後用同樣的方法求出儲存資料的鍵的雜湊值,並對映到圓上。 然後從資料對映到的位置開始順時針查詢,將資料儲存到找到的第一個伺服器上。 如果超過232仍然找不到伺服器,就會儲存到第一臺memcached伺服器上。
2、公司專案應用:南北各10臺前端,南北各部署一套magent服務,主要是考慮電信網通的跨網訪問
以北方為例,每個前端安裝memcached服務(大記憶體機器可以啟動多個服務),每個前端都安裝memagent服務,後端掛載全部機器的memcached服務,啟動引數:magent -p 12000 -s 127.0.0.1:8086 -s 127.0.0.2:8086 -s 127.0.0.3:8086.......-s 127.0.0.10:8086,所有前端配置都是相同的,任何一個前端只需訪問本地埠的memagent,這樣的memcache叢集對應用帶來很大便利.
比如專案的基本配置資訊,早期策略只能在中控機生成配置檔案,同步到各個前端,沒有辦法把配置資訊放到快取中,因為各個前端的memcache是不共享的,一臺機器快取更新,其它機器是不更新的,用程式去控制更新,還是存在不穩定因素,而且隨著服務增多,也不便於管理,部署了memagent後,就可以解決這個問題,任何一個前端更新資料=全域性更新
這種部署還可以解決的應用:session共享
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26273052/viewspace-1056166/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Memcache/Redis叢集管理探索與實現:美圖開源PaaS平臺資源閘道器Redis
- 通過memberlist庫實現gossip管理叢集以及叢集資料互動Go
- Hadoop叢集(第9期)_MapReduce初級案例Hadoop
- 初識kafka叢集Kafka
- 如何實現跨數百個K8s叢集的管理?K8S
- 寫給後端的Nginx初級入門教程:配置高可用叢集後端Nginx
- 管理 ES 叢集:叢集與外部間的安全通訊
- 管理 ES 叢集:叢集內部間的安全通訊
- GO實現Redis:GO實現Redis叢集(5)GoRedis
- EMR叢集上capacityscheduler的ACL實現
- Redis 叢集實現原理探討Redis
- KunlunDB叢集管理介面
- mongodb 3.4 叢集搭建升級版 五臺叢集MongoDB
- Elasticsearch叢集升級指引Elasticsearch
- MongoDB分片儲存的叢集架構實現MongoDB架構
- Kubernetes 叢集無損升級實踐
- 教你用Magent實現Memcached叢集
- Redis叢集實現方案選型分析Redis
- 快速實現 Tomcat 叢集 Session 共享TomcatSession
- orleans叢集及負載均衡實現負載
- Kafka 叢集如何實現資料同步?Kafka
- 用NodeJS實現叢集計算NodeJS
- Apache實現weblogic叢集配置(轉)ApacheWeb
- 【JAVA】ArrayList手動實現(初級)Java
- 實現一鍵部署與高效叢集管理,SphereEx-Boot 正式上線boot
- 使用Chef管理windows叢集Windows
- xCAT叢集管理配置工具
- 美團點評Kubernetes叢集管理實踐
- 基於 ZooKeeper 實現爬蟲叢集的監控爬蟲
- 叢集映象:實現高效的分散式應用交付分散式
- CoroSync + Drbd + MySQL 實現MySQL的高可用叢集薦ROSMySql
- c# 實現初級的語音識別C#
- 以Java專案為例,實現Jenkins對接CCE Autopilot叢集JavaJenkins
- 11、redis使用ruby實現叢集高可用Redis
- Oracle叢集軟體管理-新增和刪除叢集節點Oracle
- Elasticsearch系列---生產叢集的索引管理Elasticsearch索引
- 容器叢集管理平臺的比較
- 1款開源工具,實現自動化升級K3S叢集!開源工具