神州信息薛春雨:看本质,分布式是理念,不是技术
- 发布时间:2016-12-28
- 来源:
- 大 中 小
- 打印
文/神州数码融信技术专家 薛春雨
这些年,大家听到的新技术、新名词非常多,例如:hadoop、云计算、大数据、nosql、PAAS、SOA、分布式,等等。很多人把分布式跟这些具体的技术混为一谈,其实分布式本身只是一种理念,是一种化整为零的思路在软件领域的体现。这也不是最近几年的新技术,其实很早就存在,只是基于这个理念的一些新技术最近几年有了长足的发展,才让分布式变得更加火热。
前几年大家谈的SOA,主要是服务化的一套思路,基于SOA的系统,在实际落地中一般会引入ESB,应用系统同时部署多份实例,一起参加服务的提供。但从另外一个角度来看,一个应用系统的完整负载,其实是通过多个物理上分开的实例一起来承担,所以其应该也算是分布式的一种体现。
那么,到底什么是分布式?
其实大家看到很多分布式的东西,但对这个问题却很难回答,不同人有不同的理解。就个人而言,分布式的核心理念就是:逻辑上一份,物理上由多个组成。具体的定义并不重要。
用上面的理念来看一下前面提到的一些技术:
● hadoop:计算层面分布式的体现,将一个复杂的计算分解到多个物理机器上去并行计算;
● nosql:数据存储层面的分布式体现,将数据分布存储在多个物理机器上,但其内部逻辑上是完整的一份;
● 大数据:这个概念更大,涵盖了各种nosql的数据库,以及基于这些数据的分析、计算(通过hadoop)处理等;
● 云计算:其包括IAAS、PAAS、SAAS,每一层都是不同内容的虚拟化,也是不同内容的分布式的体现,在具体的使用者来看其逻辑上都是一份,但其有可能是有多个物理上的硬件或者中间件或者服务组合在一起提供的;
● PAAS:就是上面云计算中的中间层,整体思路一样,只是处理的内容主要是面向中间件而已。
怎么使用分布式,在哪些方面来使用?
其实原则很简单,就是从系统需求来看,哪里需要提供横向伸缩的机制,哪里就可以考虑使用分布式。以银行的核心系统为例,核心系统整体上分为联机和日终两部分,联机部分的交易有可能在应用层面成为瓶颈,如果应用层实现分布式,就可以支持更多的负载;但如果数据库的记录数达到几千万甚至上亿,那数据库又有可能成为瓶颈,那数据库就应该分布式处理了。再看日终处理,日终处理的过程主要是数据量比较大的密集型计算的过程,各个数据间的关联较少,跟hadoop的处理场景非常适合。所以说,分布式并不神奇,只是需要我们有发现的眼睛。
上面看似说的轻松,但分布式具体应用到每一个地方都有很多具体的问题需要面对,就像hadoop,大家知道它是一个分布式的并行运行平台,但其内部也是非常复杂的。同样,上面针对核心提到的各个层面的分布式也不是“分布式”这三个字这样简单,也不是一些简单的分布式技术堆砌就可以解决实际需要的,都是需要针对性地解决。目前,市场上谈到分布式的厂商也比较多,其要么只是在某个层面解决了分布式,要么只是在系统中用到了一点点分布式技术,给客户带来了很多困惑。
神州数码融信对银行核心系统分布式的理解
下面谈一下神州数码融信软件有限公司(简称:神州数码融信,神州信息旗下企业)对银行核心系统分布式的理解,就像上面提到的,如果要让核心系统具备很强的横向伸缩能力,那就必须在每层都具有分布式的特点,这样才不会有真正的瓶颈,所以分布式不仅要成体系,还要形成有机的一体。神州数码融信的分布式技术平台Sm@rtGalaxy的分布式分别体现在应用(服务)、数据、缓存及日终计算等四个层面,并且解决了上述分布式中所面临的多种挑战,例如:跨应用、跨数据库的事务一致性问题,跨库的翻页、排序、查询等关键问题,这些也是神州数码融信的核心竞争力 。
其实引入分布式,系统的复杂度变高了,但要正确的看待这个问题,因为系统出现瓶颈了,才引入分布式来解决这个主要矛盾,在解决的过程中有可能带来一些其他问题,这里提到的复杂度就是其中的一个,针对这些问题都有应对的措施,例如通过完善的运维平台来应对系统的复杂度。另外,分布式系统的设计一定要注意取舍,在一些鱼和熊掌不可兼得的情况下,必须有所取舍,对舍弃部分带来的风险只要有针对性的应对措施就是好的解决方案,永远没有完美,只有无限趋近完美。