转载

【开源访谈】Kingshard 作者陈非访谈实录

【项目简介】

Kingshard 是一个由Go开发高性能MySQL Proxy项目,kingshard在满足基本的读写分离的功能上,致力于简化MySQL分库分表操作;能够让DBA通过kingshard轻松平滑地实现MySQL数据库扩容。

作者陈非近照

【开源访谈】Kingshard 作者陈非访谈实录

【正文】

1.请简单地介绍一下你自己(技术背景、学习经历、工作经历)。

大家好,我叫陈非(@flikecn )。 2013年硕士毕业于电子科技大学,同年加入奇虎360的Web平台部,从事Atlas数据库中间件的设计与研发工作。2015年初加入了珠海金山WPS 云平台团队。新团队主要以Go作为开发语言,正是由于在新的工作中体会到了Go语言的开发效率很高,才让我萌发了写一个简单好用的Go版本的MySQL Proxy的念头。

2.开发 Kingshard 项目是基于怎样的缘由?

现在能够找到的开源MySQL Proxy项目应该有5-6个,这些项目大部分都有公司背景,很多功能的加入都结合了公司的业务场景,所以有时候显得并不是那么灵活好用。现在大部分公司 都会用到MySQL数据库,随着业务的增长,每个公司都不得不面对如何快速扩容、缩容,故障切换及负载均衡等诸多问题。开发kingshard的就是为了 让DBA借助于kingshard能够很方便地解决这些难题。

3.请您简单介绍下 Kingshard 的开发过程。

由于是kingshard是个人项目,上班不会花时间写kingshard相关的代码。主要开发集中在周末和下班后的闲暇时间,珠海的夏天太阳比较大,所以 我周末通常不怎么出门,这样就有机会宅在家里写代码了。周末的时间比较集中,主要用于kingshard的功能实现。平时下班,如果感觉状态还不错的话, 就会对kingshard进行bug修复。值得欣喜的是,已经有热心的网友开始加入到kingshard的开发中来了。

4.Kingshard 有哪些优势和特点?

现在来看,我觉得kingshard的优势和特点主要由以下几个方面:

(1). 可以轻松地应对mysql扩容和缩容。由于kingshard的采用了两级映射的分表方案(https://github.com/flike /kingshard/blob/master/doc/KingDoc/kingshard_sharding_introduce.md),相对于其 他开源Proxy,在扩容和缩容方面有很大的优势。

(2).kingshard的安装和使用不依赖于其他第三方组件,这样使得kingshard更容易部署和使用。

(3).kingshard还打算在降低管理和运维后端DB方面做出努力,目前该功能还在开发中。相信再过几个月,会有更多的新特性,大家可以期待一下。:)

5.Kingshard 适合应用在哪些场景?

Kingshard 比较适合于互联网公司。一般互联网公司的数据量都比较大,并且数据增长也比较快,利用单台mysql根本存储不了所有数据,大多数公司都会选择将一张大表 拆分成若干张子表,并分布在不同的数据库上。例如,在某些购物狂欢节来领之际,为了满足访问量的激增,希望快速上线多个slave来满足大量用户的访问请 求。如果公司是在业务逻辑层写分表相关的代码的话,面对这种需求,业务开发人员可能不得不加班加点地修改业务代码了,而且这样临时地修改代码也会给业务带 来一定的风险。但通过使用kingshard使业务和数据库分离,让业务逻辑仅面对一个超级数据库(kingshard),后端的数据库升级对业务完全透 明,这样就能很好地解决上述问题。

6.Kingshard 未来发展方向如何?

Kingshard致力于成为一个使用简单,运维方便,并能很好地解决mysql扩容缩容的数据库中间件。能够让互联网创业公司通过kingshard并配合其他开源软件(例如:LVS,MHA)快速搭建出一套稳定可靠的mysql集群。

7.平常你是如何管理和推广 Kingshard 项目的?

Kingshard 从开源到现在差不多两周了,但在开源中国和github上的关注人数超过400人。说明这个项目还是有价值的。最开始推广是在开发者头条,后来通过朋友介 绍认识了@红薯 ,然后在开源中国上推广了一下。经过这两次推广,增加了不少关注度。我还为kingshard建立了一个QQ群,聚集了一批可以说是粉丝 吧,我相信通过他们的传播,也能扩大kingshard的知名度。

8.能否谈一下你对开源的理解,以及对国内开源技术和产品的看法?

我觉得开源不仅仅是免费,开源对于一个企业来说,从某种层面来说,也是一种企业文化的输出。通过开源,企业可以提升自己在开发者中的知名度。对于个人来说,开发并维护一个开源项目,我觉得这个过程就像一次创业,在这个过程中,作者需要扮演各种角色:

(1).充当产品经理,为项目收集各种需求,并从中提炼出能够解决用户痛点的需求。

(2).架构师,如何设计和架构整个项目,把软件的性能、稳定性和扩展性都合理兼顾。

(3).开发和测试工程师,个人开源项目,大部分开发和测试工作也都需要自己完成。

现在国内的开源项目越来越多,开源项目涉及到的技术也越来越核心。这说明企业和个人开源爱好者对开源的态度越来越开放了。

9.你对开源中国有何意见和建议?

我觉得大部分开发者来开源中国,更多地是来获取技术知识或者开源项目资讯。首页的动弹虽然提升了用户的粘性。但并不能给开发者带来比较有价值的信息。 所以说可以考虑将动弹放在子版块中。

10.请聊聊任何你想谈的话题。

MySQL 数据库中间件相关的开源项目很多,这说明用户在这一领域的需求很多。kingshard项目希望给开发者带来与以往数据库中间件不一样的新意,至少只在某 些方面,能够有比较完善的解决方案。后续有企业希望开发一个满足自己定制化需求的数据库中间件,他们能够从kingshard项目中汲取灵感,我觉得这就 是kingshard项目的价值所在。

关于开源访谈

开源访谈是开源中国推出的一系列针对国内开源技术发展的访谈,以文字的方式记录并传播。我们希望开源访谈能全面的展现国内开源软件、开源软件作者的现状,着实推动国内开源软件的推广与应用。

正文到此结束
Loading...