分布式缓存需考虑如下三点:
1、缓存本身的水平线性扩展的问题。
2、缓存大病罚下的本身性能问题。
3、避免缓存的单点鼓掌问题。
分布式缓存存在的问题:
1、内存本身的管理问题。内存的分配,管理和回收机制。
2、分布式管理和分布式算法。
3、缓存键值管理和路由。

常见分布式算法

Memcached在实现分布集群部署时,Memcached服务端的之间是没有通讯的,服务端是伪分布式,实现分布式是由客户端实现的,客户端实现了分布式算法把数据保存到不同的Memcached 服务端。 

1.取模

currServer = serverList[ hash(key) % sizeof(serverList) ]
余数计算的方法简单,数据的分散性也相当优秀,但也有其缺点。那就是当添加或移除服务器时,缓存重组的代价相当巨大。添加服务器后,余数就会产生巨变,这样就无法获取与保存时相同的服务器,从而影响缓存的命中。

2.一致性hash

原理,首先求出memcached 服务器(节点)的哈希值,并将其配置到0~232的圆(continuum)上。然后用同样的方法求出存储数据的键的哈希值,并映射到圆上。然后从数据映射到的位置开始顺时针查找,将数据保存到找到的第一个服务器上。如果超过232 仍然找不到服务器,就会保存到第一台memcached 。 

二、多副本、故障转移

memcached对容错不做处理的,也就是说当Memcached 服务端挂掉或者 Memcached 重启复活,由于Memcached重启后无数据,对高并发的大型系统中,是没办法接受的,我们在集群的情况下,要做到负载均衡和容错 ,这种情况下, 服务器端挂掉,负载就不那么均衡,缓存数据也会丢失 ,重新对数据库进行操作,加大的系统的性能, 数据丢失容错也没做得那么好。 Memcache自身并没有实现集群功能,如果想用Memcahce实现集群需要借助第三方软件或者自己设计编程实现,如repcached、memagent、 memcached-ha等。

Memcache 分布式高可用集群介绍相关推荐

  1. 部署Ceph分布式高可用集群中篇

    前言 如何快速部署Ceph分布式高可用集群 Ceph分布式存储底层实现原理 上文介绍了ceph的原理以及ceph的部署(部署了一个mon角色)本文继续介绍下ceph的部署 部署OSD 查看磁盘使用情况 ...

  2. Java后台架构-分布式-高可用-集群-负载均衡-正向代理和反向代理

    双 11 即将来临,本文以设计淘宝网的后台架构为例,介绍从一百个并发到千万级并发情况下服务端的架构的14次演进过程,同时列举出每个演进阶段会遇到的相关技术,让大家对架构的演进有一个整体的认知. 文章最 ...

  3. 2019/06/04 M企业级高可用集群介绍以及开源软件应用

    负载集群的调度器试整个集群的单点,整个节点出来故障会导致整个集群不可用,应该给调度器做冗余 ,节点也要对后端服务器做检测,任何一台主机出了故障,也能把请求调度到其他服务器上去,如果不考虑调度器故障,的 ...

  4. OpenStack如何实现高可用集群介绍

    OpenStack是目前基于开源的,一个非常流行的云管理平台项目.这个项目由几个主要的组件组合起来完成一些具体的工作.因此它的集群比较复杂,也有多种选择方式.OpenStack 作为一个类似于 Ama ...

  5. Hbase完全分布式高可用集群安装配置

    1.准备安装软件 OS:centos7 Hadoop:hadoop-2.7.3 HBase:hbase-1.2.6 JDK:jdk-8u121-linux-x64 集群机器: 主机 IP地址 系统 软 ...

  6. 2021-11-10如何快速部署Ceph分布式高可用集群

    基础概念 目前Ceph官方提供三种部署Ceph集群的方法,分别是ceph-deploy,cephadm和手动安装 ceph-deploy 一个集群自动化部署工具,使用较久,成熟稳定,被很多自动化工具所 ...

  7. 面试精讲之面试考点及大厂真题 - 分布式专栏 09 缓存必问:Reids持久化,高可用集群

    09缓存必问:Reids持久化,高可用集群 宝剑锋从磨砺出,梅花香自苦寒来. 引言 Redis 的优点中提到 Redis 支持持久化数据,宕机后可恢复数据,持久化就是基于内存读写的 Redis 数据一 ...

  8. 安排,谷粒商城java分布式开发基础篇高级篇与高可用集群架构篇2020

    来源: 来自网络,如侵权请告知博主删除????. 仅学习使用,请勿用于其他- 最近有小伙伴管我要分布式这类的项目,还有一些要商城的,还有要springboot,springcloud,k8s等,几乎涵 ...

  9. linux集群-keepalived介绍-用keepalived配置高可用集群

    2019独角兽企业重金招聘Python工程师标准>>> linux集群介绍: 以功能划分:高可用和负载均衡 高可用集群:通常为两台服务器,一台工作,另外一台作为冗余.实现高可用的开源 ...

最新文章

  1. python使用matplotlib可视化余弦曲线cosine、使用plot函数可视化余弦曲线
  2. linux sftp没有读写权限,sftp服务器上的Linux权限问题
  3. Linux 的命令终端(CMD)的快捷键(Keyboard of MacBook)
  4. php fast cgi nginx,通过fast-cgi连接php-fpm和nginx之间的连接是持...
  5. html浮动代码_(10)让“盒子”动起来:① 浮动 | CSS
  6. springboot旅游系统设计技术描述_5A旅游景区标识标牌系统业材料的工艺技术
  7. 远程访问树莓派的摄像头实现远程监控
  8. 系统运维工程师的法宝:python paramiko
  9. 各大编程语言,不管你学习的是哪一个语言 我相信手机里应该有个它
  10. 方格网的填方和挖方计算
  11. 老挑毛 win7 linux,老挑毛u盘启动工具下载
  12. 使用uniapp做海报的坑
  13. 算法基础课【合集2】
  14. 300大作战怎么在电脑上玩 300大作战电脑版玩法教程
  15. python源代码文件后缀,python源文件后缀是什么-Python教程
  16. C语言定积分 tan(x) e^x
  17. 局域网下载控制好帮手--超级嗅探狗
  18. 造成电脑非正常关机的常见五大原因剖析
  19. php中文汉字与16进制编码转换三种方法
  20. 闰年判断(输入一个年份,判断是否为闰年)

热门文章

  1. C++morse code 摩尔斯电码算法(附完整源码)
  2. QT的QFileOpenEvent类的使用
  3. c++构造函数和析构函数的调用顺序研究
  4. C语言中的变量是怎么回事?
  5. python爬取考研成绩什么时候出来_用Python爬取了考研吧1000条帖子,原来他们都在讨论这些!...
  6. vs为什么打了断点不断_为什么西餐厅里的牛排又嫩又多汁?原来大厨都做了“这一步”...
  7. 「Github」Linux/Ubuntu下终端Github教程与手册
  8. svn数据仓库配置,权限配置
  9. 缓冲池和String池
  10. Struts2 控制台不打印异常的解决方案