当前位置: 首页 > news >正文

网店网站开发教育网站制作论文

网店网站开发,教育网站制作论文,中文外贸网站建设,网页设计师证书考试内容Zookeeper和分布式环境中的假死脑裂问题 最近和同事聊天无意间发现他们的系统也存在脑裂的问题。想想当初在我们的系统中为了解决脑裂花了非常大的功夫#xff0c;现在和大家一起讨论下脑裂#xff0c;假死等等这些问题和解决的方法。 在一个大集群中往往会有一个master存在… Zookeeper和分布式环境中的假死脑裂问题   最近和同事聊天无意间发现他们的系统也存在脑裂的问题。想想当初在我们的系统中为了解决脑裂花了非常大的功夫现在和大家一起讨论下脑裂假死等等这些问题和解决的方法。 在一个大集群中往往会有一个master存在在长期运行过程中不可避免的会出现宕机等问题导致master不可用在出现这样的情况以后往往会对系统产生很大的影响所以一般的分布式集群中的master都采用了高可用的解决方案来避免这样的情况发生。 master-slaver方式存在一个master节点平时对外服务同时有一个slaver节点监控着master同时有某种方式来进行数据的同步。如果在master挂掉以后slaver能很快获知并迅速切换成为新的master。在以往master-slaver的监控切换是个很大的难题但是现在有了Zookeeper的话能比较优雅的解决这一类问题。                                                                            master-slaver结构 master-slaver实现起来非常简单而且在master上面的各种操作效率要较其他HA解决方案要高早期的时候监控和切换很难控制但是后来zookeeper出现了他的watch和分布式锁机制很好的解决了这一类问题。 我们的系统和同事的系统都是这种模式但是后来都发现由于ZooKeeper使用上的问题存在脑裂的问题。 记得很久以前参加一个大牛的技术交流会他就提到过在集群中假死问题是一个非常让人头痛的问题假死也是导致脑裂的根源。 根据一个什么样的情况能判断一个节点死亡了down掉了人可能很容易判断但是对于在分布式系统中这些是有监控者来判断的对于监控者来说很难判定其他的节点的状态唯一可靠点途径的就是心跳包括ZooKeeper就是使用心跳来判断客户端是否仍然活着的使用ZooKeeper来做master HA基本都是同样的方式每个节点都尝试注册一个象征master的临时节点其他没有注册成功的则成为slaver并且通过watch机制监控着master所创建的临时节点Zookeeper通过内部心跳机制来确定master的状态一旦master出现意外Zookeeper能很快获悉并且通知其他的slaver其他slaver在之后作出相关反应。这样就完成了一个切换。这种模式也是比较通用的模式基本大部分都是这样实现的但是这里面有个很严重的问题如果注意不到会导致短暂的时间内系统出现脑裂因为心跳出现超时可能是master挂了但是也可能是masterzookeeper之间网络出现了问题也同样可能导致。这种情况就是假死master并未死掉但是与ZooKeeper之间的网络出现问题导致Zookeeper认为其挂掉了然后通知其他节点进行切换这样slaver中就有一个成为了master但是原本的master并未死掉这时候client也获得master切换的消息但是仍然会有一些延时zookeeper需要通讯需要一个一个通知这时候整个系统就很混乱可能有一部分client已经通知到了连接到新的master上去了有的client仍然连接在老的master上如果同时有两个client需要对master的同一个数据更新并且刚好这两个client此刻分别连接在新老的master上就会出现很严重问题。 出现这种情况的主要原因在与Zookeeper集群和Zookeeperclient判断超时并不能做到完全同步这些还依赖于操作系统调度等很难保证也就是说可能一前一后如果是集群先于client发现那就会出现上面的情况了。同时在发现并切换后通知各个客户端也有先后快慢。出现这种情况的几率很小需要master与zookeeper集群网络断开但是与其他集群角色之间的网络没有问题还要满足上面那些条件但是一旦出现就会引发很严重的后果数据不一致了。 避免这种情况其实也很简单在slaver切换的时候不在检查到老的master出现问题后马上切换而是在休眠一段足够的时间确保老的master已经获知变更并且做了相关的shutdown清理工作了然后再注册成为master就能避免这类问题了这个休眠时间一般定义为与zookeeper定义的超时时间就够了但是这段时间内系统可能是不可用的但是相对于数据不一致的后果我想还是值得的。 当然最彻底的解决这类问题的方案是将master HA集群做成peer2peer的屏蔽掉外部Zookeeper的依赖。每个节点都是对等的没有主次这样就不会存在脑裂的问题但是这种ha解决方案需要使用两阶段paxos这类数据一致性保证协议来实现不可避免的会降低系统数据变更的系统如果系统中主要是对master的读取操作很少更新就很适合了。 原文地址http://backend.blog.163.com/blog/static/20229412620128911939110/ 转载于:https://www.cnblogs.com/rainy-shurun/p/5414110.html
http://www.yutouwan.com/news/246246/

相关文章:

  • 衡阳网站建设技术外包郑州做网站比较专业的机构
  • 网站制作有哪些企业深圳专门做seo的公司
  • 大连网站 设计公司获取客户信息的渠道有哪些
  • 免费做logo网站集团形象设计公司
  • 个人网站制作模板python网页版编辑器
  • 做英文网站有哪些自建wap网站
  • 学做漂亮早餐的网站网站建设哪里可以学
  • wordpress如何配置wordpress 自动seo
  • 顺德网站建设电商十大运营平台
  • 南宁做网站公司必荐云尚网络社区微网站建设方案ppt
  • 云羽网络网站建设安顺网站建设兼职
  • 新乡手机网站建设电话wordpress推荐php版本
  • 接做网站的私活怎么报价校园网络建设方案设计
  • 重庆网站建设重庆网站制作php购物商城源码
  • 佛山狮山网站建设资讯门户类网站有哪些
  • 网站后门清除门窗网站源码
  • 西安网站制作开发公司湘潭做网站品牌磐石网络
  • 如何让新网站怎么建设在线视频网站
  • 江阴市建设局官网站wordpress主题放到哪里
  • 建站之星导出网站上海高品质网站建设
  • 台州企业网站建设常见的erp系统
  • strikingly建站怎么样如何对网站做镜像
  • 农村电商网站有哪些宜昌十堰网站建设哪家好
  • 关于校园网站建设的建议网络推广推广外包服务
  • cms仿站网络营销与网络推广的关系
  • 广州网站建设 全包如何开展网站推广
  • jsp网站开发遇到问题专门看广告赚钱的app
  • 网站商品页面设计软件开发公司排名
  • 微站平台创建一个网站的英文
  • 门户网站建设的建议广州中小企业网站建设