「分布式系统之美」知乎圆桌已上线一周, 部分问答引发了网友的热烈讨论,接下来就跟随小编一起来盘点大家最关心的问题吧!
圆桌精选问答:
1. 在什么情况下你需要考虑换个数据库了?
作者:kylin (伴鱼技术中台负责人)
业务系统为了获得的良好水平扩展能力,都倾向于将业务服务无状态化,将状态存储到数据库中,这样数据库很多时候都是业务系统最核心的部分,所以换数据库是一件需要谨慎决策事情。
但是,产生换数据库这个念头,是不需要做一个谨慎的决定,这还只是一个想法,可以先调研,小范围试用,我觉得在下面两个情况下,可以动动换数据库的这个念头:
1、数据库技术上出现重大的变革
一般来说,都是业务推动技术变革,那其实也就说明了在出现技术变革的公司,一定是出现了新的业务场景用现在的技术不能很好解决,这个新的业务场景可能目前公司还没有碰到,但是很可能在不久的将来会遇到。一个很好的例子,Google 在 2000 年前后碰到大数据的问题,然后推出了 GFS、MapReduce 和 Bigtable 技术创新(其实也不是严格意义上的技术创新)来解决这一问题,在 Google 遇到大数据问题的时候,大部分公司应该还感知不强烈,但是在今天看来,大数据的浪潮又放过了谁?
所以,在技术出现重大变革的时候,我们需要去思考推动技术变革的业务需求是什么,我们公司的业务以后会有出现这个业务需求吗?
如果答案是肯定的,那么可以动一动这个念头,先调研,小范围试用。这其实就是重要不紧急的事情,如果我们把它变成了重要紧急的事情,这其实就是技术方向把控上的错误。
对于数据库来说,更是如此,它的业务差别比较小,一般都是比较共性的业务需求,所以如果数据库技术出现重大的变革的时候,先调研,小范围试用,是开放的技术思维,避免将重要不紧急的事情变成重要紧急的事情。
2. 云数据库时代,未来 DBA 如何给自己升职加薪?
作者:笨猫儿 (送外卖的资深互联网 DBA,热爱 MySQL、分布式数据库)
... 我们能够看到随着云技术的大规模使用,数据库逐步走向云原生方向,云厂商承接了数据库的基础设施支撑,企业在逐步缩减在基础架构的建设上投入。 未来,云厂商在挤压企业内部传统 DBA 的生存空间的同时,也带了新的机会,云厂商缺乏云上数据库管控平台研发工程师、云数据库的架构师/技术布道师、云厂商的技术售前、云数据库的运维 DBA 等。 DBA 将依托于云平台从原来服务于一家企业转变为服务云上成千上万家企业,在获得更高的成就感和个人影响力,也能收获更高的职位和薪资 ...
3. 如何系统性的学习分布式系统?
作者:kylin ( 伴 鱼技术中台负责人 )
学习一个知识之前,我觉得比较好的方式是先理解它的来龙去脉:即这个知识产生的过程,它解决了什么问题,它是怎么样解决的并且它带来了哪些问题,这样我们才能比较好的抓到它的脉络和关键点,不会一开始就迷失在细节中。
所以,我们要解决的第一个问题是:分布式系统解决了什么问题?
第一个是单机性能瓶颈导致的成本问题,由于摩尔定律失效,廉价 PC 机性能的瓶颈无法继续突破,小型机和大型机能提高更高的单机性能,但是成本太大高,一般的公司很难承受;
第二个是用户量和数据量爆炸性的增大导致的成本问题,进入互联网时代,用户量爆炸性的增大,用户产生的数据量也在爆炸性的增大,但是单个用户或者单条数据的价值其实比软件时代(比如银行用户)的价值是只低不高,所以必须寻找更经济的方案;
第三个是业务高可用的要求,对于互联网的产品来说,都要求 7 * 24 小时提供服务,无法容忍停止服务等故障,而要提供高可用的服务,唯一的方式就是增加冗余来完成,这样就算单机系统可以支撑的服务,因为高可用的要求,也会变成一个分布式系统。
基于上面的三个原因可以看出,在互联网时代,单机系统是无法解决成本和高可用问题的,但是这两个问题对几乎对所有的公司来说都是非常关键的问题,所以,从单机系统到分布式系统是无法避免的技术大潮流。
那么,分布式系统是怎么来解决单机系统面临的成本和高可用问题呢?
4. 为什么几乎所有的开源数据库中间件都是国内公司开源的?并且几乎都停止了更新?
作者:cx3ptr ( 伴 鱼基础架构负责人 )
这里其实有几个小问题,就笼统的回答一下了。国外其实也有不少这类中间件,分库分表: vitess (YouTube)、citus (微软收购了)、Schemaless (Uber)、Mysql-proxy,代理转发: proxysql,Google 在 F1 前面也有代理做连接池的(印象里出自 Google SRE 运维解密)。国内的中间件就太多了 cobar、tddl、atlas、kingshard、shardingsphere、gaea 以及好多大厂未开源的版本等...
国内为什么好多停止维护了?
这个原因其实挺明确的,国内程序员真的很忙... 大多都要养家糊口,创建后续的生活保障,维护一个开源项目其实需要很多精力,但是公司对你的期望肯定不止这一个项目,所以个人中间件项目很容易停更...
5. 应届毕业从事数据库研发有什么感受?
作者:neverchanje ( 小米科技,Apache Pegasus PPMC )
应届毕业三年。 搞 DB 跟开咖啡店的有点像。 爱好这种手工艺的人在这里可以得到乐趣,提升自己,下班后也愿意投入在里面。 不爱好的人刚开始可能新鲜,后来要是在 feature plan 里看不到感兴趣的点,也会很快就离开。 读到这个问题的同学,可能想听的是:
“数据库研发会不会比其他工作更能积累技术,沉淀能力?”
“数据库研发的升职加薪是否比其他工作更快?”
“数据库研发的不可替代性是否比其他工作更高?”
这里把“数据库研发”换成“开一家咖啡店”,可能会更帮助你的思考...