来源:时代周报
信也科技开源两大自研中间件技术共筑科技开放生态
在技术的领域里,开源已经成为一种潮流,既能够推动技术创新,也是企业自身技术实力的体现。近日,信也科技宣布其自研的数据库访问中间件DAS和消息中间件PMQ正式开源。据悉,这两项技术在信也科技内部均已投入核心业务应用,取得了良好成效。
信也科技是在美上市的金融科技集团,致力于通过大数据、人工智能、区块链等先进技术实现“科技,让金融更美好”的使命。作为金融科技开放平台,信也科技以技术链接B端金融机构和C端个人及小微商户借款人,目前对接持牌金融机构已达20余家,总注册用户数达1.亿。此次开源两大自研中间件技术,也意味着信也科技在科技开放之路上更进一步。
数据库访问中间件DAS
随着业务的快速发展,企业积累的数据也会迅猛增长,如何简单、准确和高效地取大量数据逐渐成为企业研发人员不得不面对的问题。信也科技自研的数据库访问中间件DAS正式开源,为数据库访问提供了一项高效的解决方案。
通常情况下,企业应对大量数据的解决办法,是使用关系型数据库来存放数据,并根据情况做分库分表。而要让应用能够快速高效地访问分库分表的数据库,需要开发人员综合使用各种组件,其包括数据源、连接池组、ORM框架、分库分表框架,或者直接使用原生分布式数据库等。对开发人员来说,学习、使用如此多的组件并最终成功部署和排障,所需成本十分高昂。DAS整合了上述所有这些访问数据库所需的技术或组件,并以一种简单、快捷的方式提供给开发人员。
据了解,信也科技DAS是基于Java语言开发的,支持数据库管理、ORM、动态SQL构建、分库分表操作的一体化关系型数据库访问解决方案。使用DAS完成同样功能所需代码量大大少于传统方式。通过集成接口,研发人员无需做任何本地配置工作即可使用DAS开始编码,便利性极大提升。为适应不同的应用场景和数据规模,DAS还可以同时支持SqlServer和MySql两种数据库,并支持本地直连和基于代理的两种访问模式。
信也科技相关负责人介绍,DAS的用法规范,代码简洁。得益于DAS良好的API设计,在完成同样功能的前提下,使用DAS所需代码量大大少于传统方式。以按照给定的样例对象查询数据库这个非常常见的需求为例,使用Mybatis的话,用户需要定义一个mapper文件,针对每个可能赋值的表字段编写判断语句,xml的整体长度取决于表的字段多少。这种做法整体而言都非常的繁杂易错,而使用DAS则无需事先定义任何xml或接口,仅调用一个简单的queryBySample方法即可完成任务。
此外,DAS还具有扩展性强、接入成本低、支持在多个环境中同步配置信息等特点。目前,信也科技内部超过个应用接入了DAS,每日支持超过6亿次的数据库访问。
对于该开源项目的发展,信也科技方面制定了明确的未来规划。在功能方面,DAS未来会基于目前信也科技内部策略实现来提供更多更灵活的分库分表策略,还会提供基于柔性事务的分布式事务处理机制;在监控方面,DAS会考虑开放DAS目前集成的CAT监控实现;在易用性方面,会考虑提供解析分片时的详细过程信息,包括原始表达式、表达式所对应的分片范围,方便用户诊断调试。
消息中间件PMQ
在年左右,信也科技调研了市面上的一些消息系统,发现缺少一款具有完善监控告警、完善治理功能、定制化简单的消息系统。在参考kafka和业内相关资料的情况下,信也科技开发了一款轻量级、易于维护、易扩展、用户体验友好的消息系统的想法应运而生。
“整个消息系统的研发从年1月开始,经历了两期:第一期实现了基本的发送和消费,监控告警功能。第二期功能完善,实现了动态重平衡,自助治理,动态修改偏移,广播消息等功能,目前已在github上实现开源。”信也科技相关负责人介绍。
作为信也科技自研的一款轻量级分布式消息系统,PMQ能够最大限度地保证消息不丢失,具有部署运维简单、监控治理丰富等特性。PMQ采用mysql数据库进行消息存储,能够非常方便地进行水平扩展。目前信也科技内部超过个应用接入了PMQ,每日消息量达10亿左右。
在消息系统使用和运维过程中,通常会遇到消息发送慢、消息消费慢、消息可靠性、监控治理等常见问题。如果消息系统出现问题,会对业务产生很严重的影响。而PMQ针对这些问题都有妥善的解决方案。
以消息发送慢为例,随着接入的消息量与客户端的实例越来越多,会出现消息发送变慢的情况,甚至出现消息发送失败的情况。在PMQ中,客户端内置了监控措施,用户可以很方便地查看自己消息发送的情况,当用户发现消费慢时,可以根据规则在线扩容,将topic的发送压力分散在其他的节点,从而提高消息发送速度。
在消息可靠性方面,由于消息在各条业务线的广泛应用,其可靠性要求非常高,需要防止消息的存储单点故障。在PMQ中,消息最终是存储在mysql中,dba会对每个mysql实例做一主两从设置,当某个消息发送成功后,mysql备份机制会将消息备份到2个从节点上,以此来保证消息的高可靠性。
与主流MQ的功能相比,PMQ的功能更为完善,治理丰富。例如,PMQ内设订阅关系模块用于绑定consumerGroup和topic的订阅关系。通过该模块,用户可以动态设置消息的失败重试次数、堆积告警阈值、延迟消费时间、延迟拉取时间、批量消费条数、批量拉取条数、批量处理线程数、客户端熔断时间、设置消费指定消息的tag等功能。
此外,PMQ还包括消费的动态启停、动态修改偏移等诸多模块。在功能方面,信也科技未来还将为PMQ实现实时消息、区间消费、全量消息追踪、多环境支持等功能。
信也科技相关负责人表示,在深耕金融科技行业十二年的历程中,信也科技的技术人员从开源社区中受益,各类自研技术也经过了千亿级别交易量的稳定性捶打,希望通过DAS等产品把这样的开源精神继承下去,和广大技术爱好者一起分享开源果实,共建开放共赢的金融科技生态。(文/景明)