在过去几年间,“微服务架构”这个术语持续火热,它描述了一种将软件应用程序设计为可独立部署的服务套件的特定方式。尽管这种架构风格没有确切的定义,但围绕业务能力,自动化部署,网点智能以及语言和数据的分散控制等方面存在着某些共同特征。
总的来说,微服务架构是一种将单应用程序作为一套小型服务开发的方法,每种应用程序都在其自己的进程中运行,并与轻量级机制进行通信。同时,
微服务还可以用不同的编程语言编写,并使用不同的数据存储技术。
数据存储技术也是为了更好的解决特殊场景的问题,纽曼在《微服务设计》一书中举了一个例子很好的解释了数据存储技术异构带来的好处:对于社交网络来说,图数据库能够更好的处理用户之间的交互操作,但对于用户发布的帖子而言,文档数据库可能是一个更好的选择。
微服务时代下的数据库选择
微服务的技术异构特征告诉我们,微服务是建立在业务能力至上的,它的特点是独立部署,好处体现在整个系统的弹性上,当一个服务发生故障时,不会造成整个系统的不可用。
所以,简单的将并发量和性能要求相近的业务合并到一个服务中,无法达到微服务期望的效果,共享数据库的方式一般情况下也很难满足不同业务服务对高并发量、性能等方面的要求,很可能变成限制企业业务发展的瓶颈。
传统单点数据库虽然可以解决独立部署的问题,但其无法满足海量数据的管理要求,也无法适应高并发、高可用以及高扩展的特性。
而作为新一代的分布式数据库,其架构与功能特性需要保证在与传统数据库全兼容的基础上,拥抱微服务与云计算框架。
传统单点数据库的容量瓶颈,仅仅是分布式数据库所解决的问题之一,更重要的是在微服务化应用开发以及云化平台的趋势下,应用将会采用数千甚至上万的微服务程序构建成的复杂网状模型。
因此在面向微服务应用开发与云计算基础架构时,新一代分布式数据库必须支持弹性扩张、资源隔离、多租户、可配置一致性、多模式、集群内可配置容灾策略等一系列功能。
国产数据库的新突破
AI、IoT、云计算等技术的不断发展,为企业提供了前所未有的发展良机,随着数据规模不断增长,基于互联网的实时交互也无处不在,用户对数据的基本需求呈现出两个主要类别:
OLAP和 OLTP。
恰巧微服务的横向扩展能力、场景化数据切分等特点,完美匹配了企业对数据的发展需求。在微服务架构中,如何破除原先的“集群模式”,让微服务跑在国产分布式数据库上呢?
最近腾讯云数据库与昆山农商银行联手搞了件大事,基于国产分布式数据库腾讯云TDSQL打造的昆山农商银行新一代核心系统成功投产上线了!
这是银行业首次采用“微服务应用+国产分布式数据库”架构,对于国产分布式数据库架构创新具有标杆意义。数据库本身的开发应用就牵涉多项服务,要想满足“微服务”架构,就要做到多个服务数据的一致性。
昆山农商行新一代核心系统采用长亮V8技术,无缝衔接腾讯云分布式数据库TDSQL,采用“两地三中心”部署,数据库“一主三备”,中心间数据强同步,实现中心级别灾难快速自动恢复,且数据零丢失。
这样做的目的也是为了把大系统拆分成小型微服务,有效解决了传统集中式核心并发量瓶颈,提升核心系统的高可用性和动态扩容能力。
新核心系统有三个微服务集群:
公共服务微服务集群、账务微服务集群和历史微服务集群。每个微服务集群由一系列功能职责单一、高度聚合的服务组成,可支持灵活部署,所有集群运行在一套TDSQL集群中。
腾讯云企业级分布式数据库TDSQL累计服务了超过600+的政企和金融机构,客户覆盖银行、保险、证券、互联网金融、计费、第三方支付、物联网、互联网+、政务等领域。
TDSQL具备强一致高可用、全球部署架构、高 SQL 兼容度、分布式水平扩展、高性能、完整的分布式事务支持、企业级安全等特性,为客户提供完整的分布式数据库解决方案。