❝开头还是介绍一下群,如果感兴趣PolarDB ,MongoDB ,MySQL ,PostgreSQL ,Redis, OceanBase, Sql Server等有问题,有需求都可以加群群内有各大数据库行业大咖,可以解决你的问题。加群请联系 liuaustin3 ,(共3400人左右 1 + 2 + 3 + 4 +5 + 6 + 7 + 8 +9)(1 2 3 4 5 6 7 8群已经爆满 9群 300+,开10群PolarDB专业学习群110+)
其实作为PolarDB的布道师,至少去年给我颁发了一个奖章。咱们不能白让人阿里云给颁发一个这样的奖白颁。
作为一个使用4年POLARDB 快5年的人,我特别想写一件事情,就是今天的题目 POLARDB 太垃圾,我怼了回去。
这事情是怎么回事,一个同学他们公司也上了POLARDB,具体的我没有问,可能从什么渠道知道我这边有一个POLARDB的群,然后他就加了我,说刚开始用POLARDB 有一些东西还要学习。
但是某天直接微信留言,POLARDB SERVERLESS 真垃圾!我有点丈二和尚摸不着头脑,我想问问吧,怎么回事?
问明白后,原来是他在生产主机上使用了SERVERLESS,因为之前测试的结果都比较好,也满足他们的需求。
但是,但是,但是,出问题了,他在一个上午,应该是上午打开了SERVERLESS 也就是我们常说的弹性,然后就出事了,链接中断了几次,我没有详细的问,我想应该是一个通病,就是业务中有的程序没有重试的功能。
导致业务中断了,然后我就看到我微信里面的那句话,PolarDB太垃圾。当然我也没有客气,我直接回怼,其实你应该看看文档,如果看完文档这话你就说不出来了。
那么这篇文章就是给那个说PolarDB 垃圾的同学写的。我想你一定是对PolarDB有什么误会,对Serverless有什么误会。
首先你先入为主的认为PolarDB 开启了serverless是不会闪断的,这点我非常理解,估计你之前做过测试,也并未发现这个闪断的问题。
https://help.aliyun.com/zh/polardb/polardb-for-mysql/user-guide/faq-20?spm=a2c4g.11186623.help-menu-2249963.d_6_0_5.61c629cfZZeQs8
我看上面这段子,"如果本地弹升资源不足,无法继续进行纵向弹升,则将触发跨机弹升机制,集群将被迁移至资源更为充足的机器上。跨机弹升能力默认开启,"
这段文字说的非常的明确,如果本地资源不足是会发生数据库迁移的,迁移必然闪断,你之前在测试库操作没有遇到闪断很可能就是你所操作的主机,他的本地资源充足。而不幸的是这次你的生产主机所在的物理主机他的资源不足,那么他就要迁移,迁移后就会发生闪断30秒内可能有1-2次 1-2秒的闪断。
其实在我们大致得普通的业务场景,系统重连就可以了,如果是严苛的情况,那么我们可以选择晚上打开serverless,或者业务低峰期打开就可以了。
所以麻烦阅读一下PolarDB的说明书,serverless本身的打开就需要一次,后面就不需要打开了,所以就一次的闪断被你遇到了,当然这并不能说明 PolarDB很垃圾,只能说明你自己做事不认真。
既然我今天说你了,我也不白说你,我给你一个新的技术方案,关于serverless本身,有没有可能我们打开serverless 他资源不足也不闪断。
我的回答是完全可以,你看你的闪断问题的确有解决方案,他不是不能解决。解决方案是什么呢? 无感秒切,他要解决的就是你刚才提到的 serverless 打开时资源不足导致的切换数据库节点造成的闪断。
无感秒切的原理是什么,他咱们就在数据库节点切换的时候,他让业务无感,也就是业务根本在数据库切换的过程中,根本不会报错。对根本不报错。当然他能解决的场景也并非serverless的打开场景,他要面对的是数据库的版本升级,数据库配置升降配,以及由于硬件的原因导致的节点切换。
说到这里,可能还没有明显提出无感秒切 和 没有这个功能的PolarDB之间的差异,
“当只读节点未开启热备时,主备切换过程中可能会出现20~30秒左右的闪断,因此在切换前请务必确保应用具备重连机制;当只读节点开启了热备功能时,主备切换将在3~10秒内完成。 热备节点规格需要与主节点规格保持一致。”
所以,要不要这个无感秒切的功能在PolarDB上,我的回答是要。
其中用到了一种技术叫 voting disk
好了要详细了解这项技术,看图,具体的信息我们明天继续说。
小结:任何一项新技术,他都需要耐心的理解和学习,很多错误都是已有的经验导致的误会。
最后特别感谢阿里云谭万路同学,多次对信息正确性的核实。