伍佰目录 短网址
  当前位置:海洋目录网 » 站长资讯 » 互联网资讯 » 文章详细 订阅RssFeed

分库分表中间件的高可用实践

来源:本站原创 浏览:202次 时间:2021-07-21

魔卡动漫网,总裁别再玩了,品匠

  分库分表中间件的高可用实践 前言

  分库分表中间件在我们一年多的锤炼下,根基解决了可用性和高性能的问题(只能说根基,一定还有隐藏的坑要填),问题天然而然的就聚焦于高可用。本文就阐述了我们在这方面做出的一些工作。

  哪些高可用的问题

  作为一个无状态的中间件,高可用问题并没有那么难题。然则尽量削减弗成用期间的流量丧失,照样必要肯定的工作的。这些流量丧失主要分布在:

  (1)某台中间件地点的物理机倏忽宕机。(2)中间件的升级和发布。

  由于我们的中间件是作为内容库的代理供应给应用的,即应用把我们的中间件当做内容库,如下图所示:

  

  所以显现上述问题后,买卖上很难通过重试等操纵去屏蔽这些影响。这就势必须要我们在底层做一些操纵,可以自动的感知中间件的状态从而有效避免流量的丧失。

  中间件地点物理机宕机的环境

  物理机宕机其实是一种常见现象,这时候应用一刹时就没了响应。那么跑在上面的sql一定也是失败了的(准确来说是未知状态,除非重新查询后端内容库,应用无法得知准确的状态)。这部门流量我们一定是无法拯救。我们所做的是在client端(Druid内容源)可以快速的发现并剔除宕机的中间件节点。

  发现并剔除弗成用节点 通过心跳去发现弗成用节点

  天然而然的我们通过心跳来探查后端中间件的存活状态。我们通过定时建立一个新毗邻ping(mysql的ping)一下然后立马关闭来做心跳(这种做法便于我们区分正常流量和心跳流量,如果通过连结一个毗邻然后一直发送类似select ‘1’的sql这种方式的话区分流量会稍微麻烦点)。

  

  为了防止收集抖动造成的偶发性connect失败,我们在三次connect都失败后才鉴定某台中间件处于弗成用状态。而这三次的探活却延长了错误感知时间,所以我们三次connect的时间距离是指数级衰减的,如下图所示:

  

  为何不在第一次connect失败后,一连发送两次connect呢?可能思量到收集的抖动可能会有一个时间窗口,如果在时间窗口内一连发了3次,出了这个时间窗口收集又okay了,那么会错误的发现后端某节点弗成用了,所以我们就做了指数级衰减的折衷。

  通过错误计数去发现弗成用节点

  上述的心跳感知始终有一个时间窗口,当流量很大的时候,在这个时间窗口内使用这个弗成用节点的都会失败,所以我们能够使用错误计数去辅助弗成用节点的感知(当然这个手段的实现还在规划中)。

  

  这边有一个注意的点是,只能通过建立毗邻异常来计数,并不克通过read timeout之类的来较量。原因是,read timeout异常可能是慢sql或者后端内容库的问题导致,只有建立毗邻异常才气确定是中间件的问题(connection closed也可能是后端关闭了这个毗邻,并不代表团体弗成用),如下图所示:

本文地址:http://www.reviewcode.cn/bianchengyuyan/211697.html 转载请注明出处!

  推荐站点

  • At-lib分类目录At-lib分类目录

    At-lib网站分类目录汇集全国所有高质量网站,是中国权威的中文网站分类目录,给站长提供免费网址目录提交收录和推荐最新最全的优秀网站大全是名站导航之家

    www.at-lib.cn
  • 中国链接目录中国链接目录

    中国链接目录简称链接目录,是收录优秀网站和淘宝网店的网站分类目录,为您提供优质的网址导航服务,也是网店进行收录推广,站长免费推广网站、加快百度收录、增加友情链接和网站外链的平台。

    www.cnlink.org
  • 35目录网35目录网

    35目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向35目录推荐、提交优秀网站。

    www.35mulu.com
  • 就要爱网站目录就要爱网站目录

    就要爱网站目录,按主题和类别列出网站。所有提交的网站都经过人工审查,确保质量和无垃圾邮件的结果。

    www.912219.com
  • 伍佰目录伍佰目录

    伍佰网站目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向伍佰目录推荐、提交优秀网站。

    www.wbwb.net