宿迁腾云网络网站建设公司

腾云网络 八年经验专注网站建设
  • 首页
  • 服务项目
    • 网站建设
    • 微信小程序
    • APP开发
    • SEO优化
  • 建站费用
  • 成功案例
    • 网站建设案例
    • 小程序案例
    • APP开发案例
    • SEO优化案例
  • 行业动态
    • 网站建设
    • SEO优化
    • 技术日志
  • 联系我们
    • 关于我们
首页 > 行业动态 > 技术日志 > 一个的单点缓存系统是什么?怎么确定把某个具体的请求转发到对应的

一个的单点缓存系统是什么?怎么确定把某个具体的请求转发到对应的

2021-08-24

是一个集中式单点缓存系统,不具备集群功能。此操作主要由客户端完成。

所以说到分布式,肯定会提到客户端。看下图:

简单来说,这里的客户端做了一个路由功能,负责将不同的请求转发到对应的机器(实例)。

那么客户端如何确定将特定请求转发到哪台机器?

在上面的场景中,我们可以在每次访问数据时根据缓存key计算出hash值一致性hash算法php开源,然后根据实际的机器数量来定位我们想要的机器(这里只是举例,实际环境往往更复杂),

而且,在存储数据和获取数据时,同一台机器定位。它会满足我们的需求吗?

是的,正常情况下可以满足我们的需求,为什么是正常的?

因为在实际生产环境中肯定会出现一些意外情况。比如上面三台机器中的一台突然宕机了,或者我想加一台,会不会出现这个问题?起来了?

由于机器数量的变化,所有原来的缓存无法正确定位,无法再使用。这在一些高并发系统中往往是致命的。

有没有更好的方法可以在机器宕机的情况下进行平滑升级并尽可能保持正常运行?

一个的单点缓存系统是什么?怎么确定把某个具体的请求转发到对应的(图1)

这个当然有,就是我们接下来要讲的一致性哈希算法。

当我第一次看到一致性哈希算法这个词时,我脑海中的第一反应就是上面的实现。事实上,事实并非如此。更准确地说,一致性哈希算法是一个全局概念模型,是集群部署中的一个很好的解决方案。

一致性哈希算法()早在1997年就已经提出,目前在很多服务器中被广泛使用,目前比较流行。

它的最终目标是在移除或添加机器时最小化对现有键映射关系的影响。

以下是其实现原理的细目分类,网上已经有详细说明。

考虑到通常的hash算法是映射到一个32位的key值,也就是0~2^32-1次幂的数值空间;我们可以把这个空间看作是第一个(0)尾(2^32-1)个连接环,如下图1所示。

接下来考虑4个对象~,hash函数计算出的hash值key在环上的分布如图2所示。

hash() = key1;

…………

hash() = key4;

基本思路

是将对象映射到相同的哈希值空间,并使用相同的哈希算法。

假设当前有3个单元A、B、C,则映射结果如图3所示,将它们排列在对应的hash值的hash空间中。

hash(A) = 键 A;

…………

hash(C) = 键 C;

说到这里,顺便提一下哈希计算。一般的方法可以使用机器的IP地址或机器名作为hash输入。

既然对象和对象都通过相同的哈希算法映射到哈希值空间,接下来要考虑的是如何将对象映射到它。

在这个环形空间中,如果从对象的key值开始顺时针方向,直到遇到一个,那么就将对象存储在this上,因为对象的hash值和hash值是固定的,所以这个必须是唯一的和确定的。你没有找到对象的映射方法吗? !

一个的单点缓存系统是什么?怎么确定把某个具体的请求转发到对应的(图2)

继续上面的例子(见图3),那么按照上面的方法,对象就会被存储在A上;并对应于 C;对应B;

前面说过,先hash再计算余数的方法带来的最大问题是不能满足单调性。当有变化时,就会失败,这会对后端服务器造成巨大的影响。现在让我们来分析和分析算法。 .

删除

考虑假设 B 挂断了电话。根据上面提到的映射方法,只有那些沿着 B 逆时针遍历直到下一个(C)的对象才会受到影响,这些对象原本是映射到 B 上的那些对象。

所以这里我们只需要改变对象,重新映射到C;见下图

添加

考虑添加一个新的D,假设在这个循环的hash空间中,D在对象和之间进行映射。此时,唯一受影响的将是那些沿 D 逆时针遍历直到下一个 (B) 的对象(它们是最初映射到 C 的对象的一部分)。将这些对象重新映射到 D。

所以这里我们只需要改变对象,重新映射到D即可;见下图

另一个考虑Hash算法的指标是()一致性hash算法php开源,定义如下:

一个的单点缓存系统是什么?怎么确定把某个具体的请求转发到对应的(图3)

平衡

平衡意味着可以将哈希结果尽可能分配到所有的缓冲区,从而可以使用所有的缓冲区空间。

哈希算法不保证绝对平衡。如果对象较少,则无法均匀映射对象。例如,在上面的例子中,当只部署了A和C时,4个对象中,A只存储,C存储,和;分布很不均匀。

为了解决这种情况,引入了“虚拟节点”的概念,可以定义如下:

“虚拟节点”(node)是哈希空间中一个实际节点的副本(),一个实际节点对应几个“虚拟节点”,这个对应的数字也变成了“副本数”,“虚拟节点” “ ”在哈希空间中按哈希值排列。

仍然以仅部署A和C的情况为例,如图4所示,分布并不均匀。现在我们引入虚拟节点,将“复制次数”设置为2,即总共会有4个“虚拟节点”,A1、A2代表A; C1、C2代表C;假设一个更理想的情况,见下图

此时对象与“虚拟节点”的映射关系为:

-> A2; -> A1; -> C1; -> C2;

所以对象和被映射到A,和被映射到C;平衡得到了很大的改善。

引入“虚拟节点”后,映射关系从{ -> node}转化为{ -> node}。查询对象时的映射关系如图所示。

一个的单点缓存系统是什么?怎么确定把某个具体的请求转发到对应的(图4)

“虚拟节点”的hash计算可以采用在对应节点的IP地址加上数字后缀的方法。例如,假设A的IP地址为202.168.14.241。

在引入“虚拟节点”之前,计算A的hash值:

Hash("202.168.14.241");

引入“虚拟节点”后,计算“虚拟节点”点A1和A2的hash值:

Hash("202.168.14.241#1"); // A1

Hash("202.168.14.241#2"); // A2

基本原则是这些。具体分布的理论分析应该很复杂,但一般不使用。

上面有java版本的例子,可以参考。

转载了一个PHP版本的实现代码。

C 语言版本

查看本文的一致性哈希算法:

Tag: hash函数 对象关系映射 缓存服务器
网站制作公众号

宿迁腾云网络网站建设公司 | 网站开发 | 网站制作 | 网站优化

咨询电话:13160355545

上一篇

返回栏目

下一篇

免责声明:本站所有文章和图片均来自用户分享和网络收集,文章和图片版权归原作者及原出处所有,仅供学习与参考,请勿用于商业用途,如果损害了您的权利,请联系网站客服处理。

热推

  • php开发框架流行度排名为什么用,它能用在哪儿,能做什么?开发高质量php框架与应用的实际案例解析
  • 开源php社交网站源码各种类型的开源网站系统可以轻松驾驭,做出漂亮的网站cms php开源源码
  • 刚接触JAVA或者其他面向对象的思维以及类与对象
  • 兼职开发者论坛php开发无需下载成本的WebApp就是“免费打工”(图)兼职论坛 兼职论坛
  • 第二届“才聚鸢都技能兴潍”潍坊市职业技能大赛成功举办
  • 一种源码加密技术:加密软件()下载地址介绍
  • php技术第一阶段:基础阶段(PHP程序员)重点:熟练掌握LNMPphp mvc技术架构图
  • 机械化的数据处理工作中——字段索与模式
  • 计算机程序语言的发展过程自1946年世界上第一台
  • 华尔街最炙手可热的三门编程语言,能与Java旗鼓相当的编程语言

相关

php缓存技术三星收购腾云网络Data,拓展面向服务器和数据

php网站开发工具如下使用各种缓存插件让我们先考虑一下在大量

http协议接口简单概括接口相对复杂的一个接口示例

http协议接口简单概括接口相对复杂的一个接口示例

网站性能优化对于大型网站来说的重要性有哪些?

网站性能优化对于大型网站来说的重要性有哪些?

大型网站的架构演化过程,你知道吗?(上)

一个百万级PHP站点的网站架构,你了解多少?

一个百万级PHP站点的网站架构,你了解多少?

如何修复被黑客篡改的网站代码与数据库?入侵迹象与范围评估指南

如何修复被黑客篡改的网站代码与数据库?入侵迹象与范围评估指南

了解常见PHP应用程序安全威胁,掌握6个常见安全性攻击

了解常见PHP应用程序安全威胁,掌握6个常见安全性攻击

微信支付SDK漏洞曝光!谁会用到它?商家必看

大会现场蒋涛调查参会者,柳峰解析LBS与智能客服开发重难点?

大会现场蒋涛调查参会者,柳峰解析LBS与智能客服开发重难点?

标签

seo(1182) 市场营销(661) 网站制作(573) 网站建设(564) 搜索引擎(553) 网站(482) PHP(361) 编程语言(345) 建站(294) 关键词排名优化(267) 网站建设公司(245) 优化(216) seo排名(207) 域名(190) 软件(171) 网站优化(148) 搜索引擎优化(146) 外链(141) 科技(136) 网站关键词(124) 网站排名优化(123) 域名服务器(120) 网站排名(107) 时政(103) 排名优化(95) 搜索引擎收录(93) 网站设计(92) 电子商务(88) 引擎(86) 移动互联网(85) 开发框架(79) 开发(75) 网站服务器(74) 框架(68) 前端开发(68) 网站分析(66) 网站建设方案(65) 关键(64) 流量(63) 源码(62) 百度优化(62) 网站权重(61) 开放源代码(59) seo培训(53) 网页设计(51) 百度(51) php框架(50) 网站建设知识(50) 大数据(50) 谷歌(49)
宿迁腾云网络网站建设公司
网站建设
  • 私人定制
  • 标准模板建站
  • 经济模板建站
精品模板

宿迁腾云网络网站建设公司

联系电话:13160355545

公司地址:江苏省宿迁市丽景湾华庭北门都市花园公寓9楼907

联系邮箱:admin@tyweb.net

全国分站
  • 北京
  • 广东
  • 东莞 广州 中山 深圳 惠州 江门 珠海 汕头 佛山 湛江 河源 肇庆 潮州 清远 韶关 揭阳 阳江 云浮 茂名 梅州 汕尾
  • 山东
  • 济南 青岛 临沂 济宁 菏泽 烟台 泰安 淄博 潍坊 日照 威海 滨州 东营 聊城 德州 莱芜 枣庄
  • 江苏
  • 苏州 徐州 盐城 无锡 南京 南通 连云港 常州 扬州 镇江 淮安 泰州 宿迁
  • 河南
  • 郑州 南阳 新乡 安阳 洛阳 信阳 平顶山 周口 商丘 开封 焦作 驻马店 濮阳 三门峡 漯河 许昌 鹤壁 济源
  • 上海
  • 河北
  • 石家庄 唐山 保定 邯郸 邢台 沧州 秦皇岛 张家口 衡水 廊坊 承德
  • 浙江
  • 温州 宁波 杭州 台州 嘉兴 金华 湖州 绍兴 舟山 丽水 衢州
  • 陕西
  • 西安 咸阳 宝鸡 汉中 渭南 安康 榆林 商洛 延安 铜川
  • 湖南
  • 长沙 邵阳 常德 衡阳 株洲 湘潭 永州 岳阳 怀化 郴州 娄底 益阳 张家界 湘西
  • 重庆
  • 福建
  • 漳州 泉州 厦门 福州 莆田 宁德 三明 南平 龙岩
  • 天津
  • 云南
  • 昆明 红河 大理 文山 德宏 曲靖 昭通 楚雄 保山 玉溪 丽江 临沧 思茅 西双版纳 怒江 迪庆
  • 四川
  • 成都 绵阳 广元 达州 南充 德阳 广安 阿坝 巴中 遂宁 内江 凉山 攀枝花 乐山 自贡 泸州 雅安 宜宾 资阳 眉山 甘孜
  • 广西
  • 贵港 玉林 北海 南宁 柳州 桂林 梧州 钦州 来宾 河池 百色 贺州 崇左 防城港
  • 安徽
  • 芜湖 合肥 六安 宿州 阜阳 安庆 马鞍山 蚌埠 淮北 淮南 宣城 黄山 铜陵 亳州 池州 巢湖 滁州
  • 海南
  • 三亚 海口 琼海 文昌 东方
  • 江西
  • 南昌 赣州 上饶 吉安 九江 新余 抚州 宜春 景德镇 萍乡 鹰潭
  • 湖北
  • 武汉 宜昌 襄樊 荆州 恩施 孝感 黄冈 十堰 咸宁 黄石 仙桃 随州 天门 荆门 潜江 鄂州 神农架
  • 山西
  • 太原 大同 运城 长治 晋城 忻州 临汾 吕梁 晋中 阳泉 朔州
  • 辽宁
  • 大连 沈阳 丹东 辽阳 葫芦岛 锦州 朝阳 营口 鞍山 抚顺 阜新 本溪 盘锦 铁岭
  • 黑龙江
  • 齐齐哈尔 哈尔滨 大庆 佳木斯 双鸭山 牡丹江 鸡西 黑河 绥化 鹤岗 伊春 大兴安岭 七台河
  • 内蒙古
  • 赤峰 包头 通辽 呼和浩特 乌海 鄂尔多斯 呼伦贝尔
  • 贵州
  • 贵阳 黔东 黔南 遵义 黔西 毕节 铜仁 安顺 六盘水
  • 甘肃
  • 兰州 天水 庆阳 武威 酒泉 张掖 陇南 白银 定西 平凉 嘉峪关 临夏 金昌 甘南
  • 青海
  • 西宁 海西 海东 海北 果洛 玉树 黄南
  • 新疆
  • 乌鲁木齐 伊犁 昌吉 石河子 哈密
  • 西藏
  • 拉萨 山南 林芝 日喀则
  • 吉林
  • 长春 白山 白城 延边 松原 辽源 通化 四平
  • 宁夏
  • 银川 吴忠 中卫 石嘴山 固原
SiteMap
网站地图
TAG标签
Copyright © 2017-2025 TYWEB.NET 宿迁腾云网络科技有限公司 ALL RIGHTS RESERVED.   苏ICP备17033535号-1

热门搜索

百度 下载 2025 2024 2026 货源 货货源 虚拟 禅道 报名 金蝶KIS旗舰版
  • 客服

    在线客服

  • 电话

    13160355545

  • 微信

精品模板
建站费用
成功案例
联系我们