1.概述
互联网金融的行业在变化、市场在变化、客户在变化、产品在变化,技术更是快速的更新迭代,传统的单体厂商套件已经难以支撑灵活多变的业务。【大话金融IT】将以专题的形式分享作者多年互联网金融架构经验,本文作为第一篇先来认识认识分布式架构。
2.什么是分布式系统架构?
2.1What——分布式系统是什么?
美国电工电子学会下属的计算机学会给出的分布式系统描述为:“包含多个相连的处理资源,这些资源能在系统的控制下,对单一问题进行合作,而且最少依赖集中过程、数据或硬件。”
英国国家科学研究委员会下属的计算机学会给出的分布式系统描述为:“包含多个独立的但又交互作用的计算机,它们可以对公共问题进行合作。这个系统的特点是包含多个控制路径,它们执行一个程序的不同部分而且又相互作用。”
相比上面两个定义作者更认同经典书籍《分布式系统原理与范型》中的描述【分布式系统是若干独立计算机的集合,这些计算机对于用户来说就像是单个相关系统】,这个定义包含了两个方面的内容,第一个是硬件方面的:机器本身是独立的,第二个方面是关于软件的:对于用户来说他们就像是同单个系统打交道。
2.2Why——为什么会有分布式架构?
随着不断变化的商业环境带来的复杂的业务需求,是的单一的应用架构越来越复杂,难以支撑业务发展。因此业务拆分成了不可避免的事情,由此演变为垂直应用架构体系,但随着垂直应用的增多,为了解决信息孤岛和业务交互需要,应用间的集成不可避免。在集成过程中,核心和基础组建被抽取出来作为单独的系统对外提供服务,形成平台层,并逐渐演变为分布式系统架构体系。
业务增长要求IT突破单一资源依赖、采用群良战术的资源共享是促进分布式系统发展的主要动力,当然还有避免单点故障提高可用性、模块化提高复用性等方面原因。分布式架构利用开放标准将软件资产化为服务。下图为分布式SOA架构体系策略:
单一应用架构:当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。此时,用于简化增删改查工作量的 数据访问框架(ORM) 是关键。
垂直应用架构:当访问量逐渐增大,单一应用增加机器带来的加速度越来越小,将应用拆成互不相干的几个应用,以提升效率。此时,用于加速前端页面开发的 Web框架(MVC) 是关键。
分布式服务架构:当垂直应用越来越多,应用之间交互不可避免,将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,使前端应用能更快速的响应多变的市场需求。此时,用于提高业务复用及整合的分布式服务框架是关键。
2.3How——如何构建分布式架构?
分布式系统如何解决面临的问题:
世界上哪有好做的事?在实现分布式的同时也带来了问题:
3.通过分布式可以实现什么目标
基于目标导向的观点,在一个更高、更宏观的层面来思考:将来业务和技术的目标和要求:
目标确定了,我们就要找问题、找差距,制定路线,不断地用各式各样的技术和手段来解决这些问题。
4.分布式系统关键技术
分布式系统的使用需要从两个方面来考虑:一是基础技术,这是分布式的技术栈,如下图所示:
二是服务化与服务治理,这是实现分布式的有效保障和管理要求,如下图所示。
5.分布式系统选型要点
选择底层技术平台,通常要考虑的因素很多,其中包括:
6.小结
本文主要从识认识分布式架构的角度介绍了分布式系统:是什么?为什么?怎么做?以及分布式系统关键技术和选型要点。下一篇: 大话分布式架构(二)将详细介绍分布式框架在互联网金融业务的应用典型场景。
推荐书籍或文章
《分布式系统原理与范型》
《大型网站系统与java中间件实践》
【分布式领域架构师要掌握的技术】,地址:https://yq.aliyun.com/articles/62683
【可扩展的Web架构和分布式系统】,地址:http://nettee.github.io/posts/2016/Scalable-Web-Architecture-and-Distributed-Systems/
END
领取专属 10元无门槛券
私享最新 技术干货