当提到数据中台,系统的架构将发生巨大的变化,将单体的架构变化为松散式的架构,在业内目前的两种松散实现方式有什么优缺点?
一、单体架构的几大缺点
在java web项目中,我们习惯于将一个web程序打为一个上百兆的war包,直接传到tomcat等应用服务器中进行执行。但架构的缺点很多:
1、团队协同难度大。将整个web程序打成一个war包时,一定会有各种报错。
2、应用复杂度高, 错误难以隔离。任何一个小bug都有可能造成整个war包执行中断。
3、难以横向扩展,资源浪费严重。数据库连接程序非常耗费资源,如扩展war,将把其它不需要扩容的资源同步扩容。
二、通过服务化实现数据中台的好处
1、降低团队的协同成本,降低系统的藕合度。各团队成员基于自己的细分工作进行软件包开发。
2、避免单个程序错误造成整个程序的崩溃。
3、便于扩容,节省资源。可以针对数据库连接、web程序进行单独的扩容,而其它资源占用低的程序可不扩容。
三、数据中台的服务化改造两个办法
数据中台的理念需要将共同的服务提炼出来,为上层的应用提供服务,服务化的模块为数据中台。该模式有两个要求:1、不允许跨级调度。2、只允许应用层向下调用数据中台服务,而数据中台不允许向上调度数据。
业务目前采用微服务的服务化改造、ESB中心化的两种服务化改造方式,实际这两种方式都是SOA服务化的具体体现。只是ESB经过厂商的大力宣传,快成为了SOA的代名词,而这是误解。
1、普通企业流行ESB型的SOA服务化方式,中心化方式。ESB架构比通过系统间“点对点”直接连接的方式,有了服务协议转换、负载均衡、服务路由、服务注册、服务优先级等优势。主要实现了不同软件架构的业务系统之间的互通。
2、互联网公司流行容器化的SOA服务化方式,去中心化方式。面向互联网业务的不可预测性,采用ESB方式,难以进行平滑扩容、且存在单点故障。互联网企业很少采用ESB。相比中心化的服务架构,服务提供者与调用者之间仅在第一次有服务发现的机制,而在数据交互通,采用直通方式。采用直通方式,数据格式转换的功能由程序自行完成。
我们可以发现以去中心化的方式,一般面向企业内部的系统,这样便于规定统一的数据接入协议、数据标准。