标签:
---------------------虚缇 阿里巴巴中间件架构师
早期,阿里巴巴早期的架构设计是标准界面式War包形式:全部的界面和后台功能都集中于一个War包里面,故这个War包很大,一般多500M~600M左右,但是这样开发却存在较大的问题。比如,每个星期发两次包,礼拜二和礼拜四,总有一部分人会赶不上进度发布不了包,这样会拖累整个项目的正常发包;而且,阿里巴巴,淘宝,天猫之间又存在很多相似的地方,如果重新开发,就完全是Copy to Paste模式,导致人力、精力的严重浪费,基于以上存在的问题,阿里巴巴就把复杂的架构进行各种拆分:把共享的服务拆分开来,例如每个业务模块都会使用的用户中心,把用户中心从各种业务中拆分出来,大家在使用时只需调用接口就可以了,不需要重复开发。数据拆分包括:应用与应用的解耦,应用与数据库解构,应用与数据库的彻底解构,如上图所示。
在此过程中,阿里平台形成一批优秀产品,例如EDAS,DRDS,MQ等,EDAS可以一种调用服务的中间件,DRDS是分布式数据库,MQ是消息中间件。
对于互联网上成熟组件和技术,如海量数据,docker,LAMP,开源,分布式等,网上有很多人鄙视阿里:“只是拿着开源东西用,没有任何贡献”。而阿里的观点是可以参考和使用成熟的技术,但是一定要先验证组件的成熟,然后弄懂其原理和设计,如果有业务需要,可以在此之上拓展。一个成熟的组件会让事情事半功倍,但是仅仅只是使用而不知其所以然,就会给自己挖坑而已。
--------------------------------------------------------------------------------倪超(银时) 阿里巴巴中间件技术专家
天猫,淘宝,聚划算等APP应用,有很多相似的功能,如果各个APP单独存在,那么会造成数据孤岛。例如:用户注册这功能,每个APP都会用到这一功能,如果重复开发,完全代码重复,和数据重复,最重要的对用户友好性有造成负面影响。
由于以上存在的问题,阿里从07年至今,基于EDAS进行服务化改造。
去中心化服务框架,只是一个简单的开始。
并且,在定位问题的过程中,快速定位难度较大,例如:看到A模块错误日志,找A的模块主管,A主管看后台日志,发现是调用B模块的问题,让维护人员找B模块主管;B模块发现不是自己的错误,是C模块的问题;如此循环,一两个小时过去了,才找到问题根源。花费大量的时间和精力去定位问题,所以阿里使用EDAS研发出“EDAS鹰眼跟踪”,来定位问题。而EDAS链路分析作用是统计代码稳定性、方法负载均衡,如上图所示。
注:以上有些只代表个人观点和理解,如若与作者本人观点有出入,请予以包涵!
标签:
原文地址:http://blog.csdn.net/u4110122855/article/details/51560137