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

腾云网络 八年经验专注网站建设
  • 首页
  • 服务项目
    • 网站建设
    • 微信小程序
    • APP开发
    • SEO优化
  • 建站费用
  • 成功案例
    • 网站建设案例
    • 小程序案例
    • APP开发案例
    • SEO优化案例
  • 行业动态
    • 网站建设
    • SEO优化
    • 技术日志
  • 联系我们
    • 关于我们
首页 > 行业动态 > 技术日志 > 一致性hash算法php开源陆陆续续服务器模式存在一个问题:节点故障后服务才恢复hashcode hash算法

一致性hash算法php开源陆陆续续服务器模式存在一个问题:节点故障后服务才恢复hashcode hash算法

2022-08-19

在服务开发中,单机会有单点故障,如果服务部署在服务器上,一旦服务器宕机,服务将不可用。因此,为了使服务高可用,出现了分布式服务。同一个服务部署在多台机器上,即使多台服务器宕机一致性hash算法php开源,只要一台服务器可用,服务就可用。

同样如此。为了解决单机故障,引入了主从模式,但是主从模式存在一个问题:节点出现故障后,需要手动切换服务到节点才能服务恢复。为了解决这个问题,引入了哨兵模式。哨兵模式可以在节点故障后自动将节点升级为节点,无需人工干预即可恢复服务。

但是,主从模式和哨兵模式还没有达到真正的数据存储,每个实例都存储了全量的数据,因此诞生并实现了真正的数据分片存储。不过由于发布比较晚(2015年正式版发布),各大厂迫不及待,纷纷开发了自己的数据分片集群模型,如:等。

1.主从模式

虽然单个节点可以通过RDB和AOF的持久化机制将数据持久化到硬盘,但是数据是存储在服务器上的。如果服务器出现硬盘故障或其他问题,将导致数据不可用,读写无法分离,读写都在同一台服务器上。当请求量很大时,就会出现 I/O 瓶颈。

为了避免单点故障和读写不分离,提供()函数,实现数据库中数据更新后,更新后的数据会自动同步到其他数据库。

以上主从结构特点:一个可以有多个节点;节点可以有节点,从节点是级联结构。

主从模式的优缺点

优点:主从结构具有读写分离、提高效率、数据备份、提供多副本等优点。

不足:最大的缺点是主从模式没有自动容错和恢复功能。如果主节点出现故障,集群就无法工作,可用性比较低。从节点升级为主节点需要人工干预。

普通主从模式,当主库崩溃时,需要手动切换从库成为主库:

在从库中使用NO ONE命令将数据库提升到主库继续服务。

启动之前崩溃的主库,然后使用命令将其设置为新主库的从库进行数据同步。

2.哨兵模式

第一种主从同步/复制模式,当主服务器宕机时,需要手动将一台从服务器切换为主服务器,需要人工干预,费力费力,而且会导致服务在一段时间内无法使用。 ,这时候就需要哨兵模式了。

哨兵模式是从2.6版本开始提供的,但是当时这个版本的模式不稳定,直到2.8版本才稳定。

哨兵模式的核心还是主从复制,但是在主节点宕机无法写入的情况下,相比主从模式,多了一个选举机制:一个新的主节点从所有从节点中选出。选举机制的实现依赖于在系统中启动一个进程。

如上图所示,本身也存在单点故障的问题,所以在一个主多从的系统中,可以使用多个进行监控。监视器。每个哨兵都是一个独立的进程,作为一个进程,它会独立运行。

(1)哨兵模式的作用:

监控所有服务器是否正常运行:发送命令返回监控服务器运行状态,主从服务器进程监控,哨兵之间相互监控。

:当哨兵检测到宕机时,会自动切换到它,然后通过发布-订阅的方式通知其他从服务器,修改配置文件,让他们切换。同时,有问题的老主人也会成为新主人的奴隶,也就是说,当老主人恢复时,它不会恢复原来的主人身份,而是会充当新主人的奴隶。 .

(2)哨兵实现原理

哨兵启动进程时,会读取配置文件的内容,通过如下配置找到要监控的主库:

-name ip 端口

#-name 是主数据库的名称

#ip和port是当前主库地址和端口号

# 表示在执行故障转移操作之前需要多少个哨兵节点同意。

这里之所以只需要连接主节点,是通过主节点的info命令获取从节点信息,从而与从节点建立连接,同时,通过主节点的info信息可以知道新的从节点的信息。 .

一个哨兵节点可以监控多个主节点,但不建议这样做,因为当一个哨兵节点崩溃时,多个集群切换会同时失效。 启动后,与主数据库建立两个连接。

订阅主数据库:获取有关监视数据库的哨兵节点信息的通道

定期向数据库发送info命令,获取数据库本身的信息。

与主库建立连接后,会定期执行以下三个操作:

(1)每隔10s发送一次info命令,作用是获取当前数据库信息,比如发现新的节点时,会建立连接并加入监控列表.当主从数据库的角色发生变化时更新信息。

(2)每隔2s发送自己的信息到主从数据库的。作用是把自己的监控数据分享给。每个都会订阅: ,当其他哨兵收到消息后,会判断该哨兵是否为新哨兵,如果是,则将其加入哨兵列表并建立连接。

(3)每隔1s向所有主从节点和所有哨兵节点发送ping命令,监控节点是否存活。

(3)主观客观离线

当哨兵节点发送ping命令时,经过一定时间(down--),如果节点没有回复,哨兵认为主观下线。主观下线是指当前哨兵认为节点已经宕机。如果节点是主库, 会进一步判断故障转移就够了。此时会发送命令(is--down-by-addr)询问其他哨兵节点是否主观认为主节点下线,当达到指定数()时哨兵会认为成为一个离线的目标。

主节点客观下线时,需要进行主从切换。主从切换步骤为:

哨兵选择一个从库后,发送no one命令升级主库,并发送命令将其他从节点的主库设置为新的主库。

(4)哨兵模式的优缺点

1.优势

2.不足问题

主从模式或哨兵模式存储在每个节点中的数据是全量数据。当数据量过大时,存储的数据需要分片存储在多个实例上。这就是技术发挥作用的地方。

3.各大厂群解决方案

3.0 版本之前只支持单实例模式。虽然正式版的开发者要到2015年才会发布,各大企业已经等不及了。在3.0版本发布之前,为了解决存储瓶颈,他们推出了自己的集群解决方案。这些方案的核心思想是将数据 () 存储在多个实例中,每个 就是一个实例。

(1)客户端片段

客户端分片是在客户端实现分片逻辑,(例如:支持的功能,也就是),通过客户端预定义的路由规则(使用一致性哈希),将key的访问转发到不同的实例,并在查询数据时汇总返回的结果。该方案的架构如图所示。

客户端分片的优缺点:

优点:客户端技术使用哈希共识算法分片的优点是所有逻辑可控,不依赖第三方分布式中间件。服务器的实例相互独立,互不相关。每个实例都像单台服务器一样运行,非常容易线性扩展,系统非常灵活。开发者知道如何实现分片和路由规则,不用担心踩坑。

1.一致性哈希算法:

是分布式系统中常用的算法。例如,在分布式存储系统中,要将数据存储在特定的节点上,如果使用常用的哈希方法将数据映射到特定的节点,比如mod(key,d),key就是数据的key,d 是机器节点的数量。如果一台机器加入或离开集群网站开发,所有的数据映射都是无效的。

一致性哈希算法解决了普通余数哈希算法扩展性差的问题,可以保证在服务器在线或离线时尽可能多的请求命中原路由服务器。

2.实现方式:一致性哈希算法,如哈希算法、算法

例如在实现中,使用了一致性哈希算法( ),同时对key和节点名进行映射匹配。使用的算法是。

使用一致性哈希而不是简单的类似哈希的模映射的主要原因是,当添加或减去节点时,不会有重新匹配。一致性哈希只影响相邻节点的密钥分布,影响量很小。

不足:

客户端分片最大的问题之一是当服务器实例组的拓扑发生变化时,每个客户端都需要更新和调整。如果可以将客户端分片模块单独取出,形成一个单独的模块(中间件),作为连接客户端和服务端的桥梁解决这个问题,那么代理分片就出现了。

(2)代理片段

最常用的代理分片是开源代理。基本原理是:客户端以中间件的形式,根据路由规则将请求发送到正确的实例,最后将结果返回给客户端。

通过引入代理层,统一管理多个实例,客户端只需要对其进行操作,无需关心后面有多少实例,从而实现集群。

优点:缺点:

作为使用最广泛、试用最稳定的代理,在业界被广泛使用。

(3)

实例无法平滑添加的问题带来了极大的不便,于是玩豆家自主研发了支持实例平滑添加的代理软件。它基于 Go 和 C 语言开发,于 2014 年 11 月开源。

在架构图中,介绍了,通过指定一个和一个或多个来实现集群的高可用。当一个挂掉时,不会自动将一个提升为,这涉及到数据一致性(数据同步本身采用主从异步复制,当数据成功写入时一致性hash算法php开源,是否已经读入此数据不保证),管理员需要在管理界面手动将提升为。

如果你觉得手动处理比较麻烦,玩豆家还提供了一个工具-ha,这个工具会在检测到宕机时将它下线并提升一个 。

是预分片的形式。启动时,会创建 1024 个插槽。一个插槽相当于一个盒子。每个盒子都有一个固定的编号,范围从 1 到 1024。插槽盒子用于存储密钥。至于密钥存放在哪个盒子里,可以通过算法“(key)24”得到一个数字。这个数字的范围必须在1到1024之间,钥匙放在这个数字对应的槽中。

例如,如果一个key通过算法“(key)24”得到数字5,则将其放入代码为5的槽(box)中。一个槽只能放在一个,一个槽不能放放置在多个s中。 1 最少可以存储1个slot,最多可以存储1024个slot。因此,最多可以指定 1024 个。

最大的优点是支持平滑增(减)(实例),可以安全透明地迁移数据,这也是不同于其他静态分布式方案的。添加后,涉及到的迁移。

比如系统有两个,slot对应关系如下。

添加一个后,将重新分配插槽。有两种分配槽的方法:

第一种:通过管理工具手动重新分配,为每一个指定对应的slot的范围。例如,您可以指定新的与slot之间的对应关系,如下所示。

第二:通过管理工具的功能,slot会根据各自的内存自动迁移,实现数据均衡。

4.

哨兵模式虽然可以实现高可用和读写分离,但有几个缺点:

3.0增加了集群模式,实现了分布式存储,即每个节点存储不同的数据。为了解决单台机器容量有限的问题小程序开发,该模式按照一定的规则将数据分配给多台机器。内存/QPS不限于单机,可以受益于分布式集群的高扩展性。

是一种服务器技术(分片和路由都是在服务器端实现的),采用多主多从,每个分区由一个主多从组成,区域相互平行。的。集群采用P2P模式,完全去中心化。

如上图,官方建议集群部署至少需要3个节点,最好使用6个节点的3主3从模式。该集群具有以下特点:

主要针对海量数据++高可用场景,海量数据,如果你的数据量很大,建议使用,当数据量不是很大的时候,就足够了。性能和高可用性优于哨兵模式。

采用虚拟哈希槽分区代替一致性哈希算法,预先分配一些卡槽,所有的key根据哈希函数映射到这些槽中,每个分区中的节点负责维护一部分槽和映射槽键值数据。

版权声明:本文为CSDN博主“有言先生”原创文章,遵循CC4.0 BY-SA版权协议。转载请附上原文出处链接和本声明。

公众号“Java ”发布的内容如注明出处,版权归原作者所有(无法核实或未注明出处的版权均来自互联网,转载为传达更多信息的目的,版权归原作者所有,如有侵权请联系本人,作者会第一时间删除!

最近很多人问有没有读者交流群!加入方式很简单,公众号Java选择,回复“加群”,即可入群!

(微信小程序):3000+面试题,包括Java基础、并发、JVM、线程、MQ系列、、系列、、、K8s、、、架构设计等,随时在线!

------特别推荐-----

Tag: 数据库集群 集群服务器 节点服务器
网站制作公众号

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

咨询电话:13160355545

上一篇

返回栏目

下一篇

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

热推

  • php游戏开发框架PHP学习第三阶段阶段学习周期及安装、SVN使用详解【】 php框架开发教程 pdf
  • php注册登录代码在调试中遇到的问题之一——需要验证登录的代码调试php实现mvc的登录注册
  • 服务器怎么运行php 虚拟主机虚拟服务器技术的出现,你了解吗?mac运行php文件
  • linux 查看php版本信息谷歌桌面全球10种语言同步推出MacOSX和操作系统linux怎么查看php版本
  • 心理咨询行业也能开发微信小程序吗?类小程序
  • 机械化的数据处理工作中——字段索与模式
  • php开发框架流行度排名为什么PHP的使用率下降了?还是我们应该抛弃它?php框架开发 实战视频教程
  • 小编收集整理怎么查看系统内核版本及配置情况的查看方法
  • 依赖注入又叫控制反转,使用过框架的人应该都不陌生
  • php登录界面代码php中插入以下PHP代码只支持上传图片文件如何实现php注册登录代码

相关

开源php erp管理系统刚哥谈架构(十三)大数据软件开源版

开源php erp管理系统刚哥谈架构(十三)大数据软件开源版

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

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

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

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

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

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

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

如何查看php版本?多种方法助你快速知晓

如何查看php版本?多种方法助你快速知晓

PHP格式化:提升代码质量与协作效率的关键规则

如何查看虚拟主机上的 PHP 版本?这篇文章告诉你

Linux 系统管理员和 web 开发者必知:如何查看 PH

Linux 系统管理员和 web 开发者必知:如何查看 PH

免费开源的轻量级 PHP 开发框架 ThinkPHP,遵循

标签

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

  • 微信

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