前文提到,微众银行为了实现业务规模的水平扩展,设计了基于DCN的分布式可扩展架构,从而即实现了扩展性,也保证了数据库层面架构以的简洁性。 DCN,即Data Center Node(数据中心节点),是一个逻辑区域概念,DCN是一个自包含单位,包括了完整的应用层,接入层和数据库。可以通俗的理解为,一个DCN,即为一个微众银行的线上的虚拟分行,这个虚拟分行只承载微众银行某个业务的一部分客户。通过一定的路由规则(比如帐户号分段),将不同的客户划分到不同的DCN内。一旦某个DCN所承载的客户数达到规定的上限,那么这个DCN将不再增加新的客户。这时通过部署新的DCN,来实现容量的水平扩展,保证业务的持续快速发展。 不同的客户保存在不同的DCN,那么就需要有一个系统来保留全局的路由信息,记录某个客户到底在哪个DCN,这个系统就是GNS(Global Name Service),应用模块会先请求GNS,拿到对应客户的DCN信息,然后再去请求对应的DCN。GNS使用了redis缓存,以保证较高的查询QPS性能,同时采用TDSQL做持久化存储,以保证数据的安全性。 RMB(Reliable MessageBug),可靠消息总线,是DCN架构的另一个核心模块,主要负责各个业务系统之间高效、准确、快速的消息通信。DCN的整体架构如图所示: 图4:DCN架构模型