当当技术部现在是按照产品线划分的,一个产品线的产品、开发、测试都在一个部门,但像项目管理、运维、架构这些技术体系中公用的部分是独立的部门。架构部里主要分成三部分,一个是架构与规范,一个是性能测试,一个是基础应用系统研发。
我们花了比较多的精力在技术架构上,去年我们在Dubbo上做了二次开发,做了DubboX并且对外开源,业界反馈还不错,包括很多来面试的人都知道。
我们的技术体系、核心业务系统明确的方向是Java,去年年底,我们开始做一个基于Java的应用开发框架,DDFrame,用它去对接一些核心 组件,包括SOA、作业调度、缓存、消息队列、数据库、配置中心等,现在已经发布了2.0版本。虽然受限于资源,进度比较缓慢,但我们一直在做这件事,未 来也会慢慢完善这个框架,使其成为技术体系的核心。
开源Dubbox,扩展Dubbo服务框架支持REST风格远程调用当当网近日开源了Dubbox项目,可为Dubbo服务框架提供多项扩展功能,包括REST风格远程调用、Kryo/FST序列化等等。
当当网架构部和技术委员会架构师沈理向InfoQ中文站介绍了Dubbox项目,开发背景和主要特点描述如下:
Dubbo是一个被国内很多互联网公司广泛使用的开源分布式服务框架,即使从国际视野来看应该也是一个非常全面的SOA基础框架。作为一个重要的技术研究课题,在当当网我们根据自身的需求,为Dubbo实现了一些新的功能,并将其命名为Dubbox(即Dubbo eXtensions)。
主要的新功能包括:
支持REST风格远程调用(HTTP + JSON/XML):基于非常成熟的JBoss RestEasy框架,在dubbo中实现了REST风格(HTTP + JSON/XML)的远程调用,以显著简化企业内部的跨语言交互,同时显著简化企业对外的Open API、无线API甚至AJAX服务端等等的开发。事实上,这个REST调用也使得Dubbo可以对当今特别流行的“微服务”架构提供基础性支持。 另外,REST调用也达到了比较高的性能,在基准测试下,HTTP + JSON与Dubbo 2.x默认的RPC协议(即TCP + Hessian2二进制序列化)之间只有1.5倍左右的差距,详见下文的基准测试报告。