首页 >知识讲堂 >网站建设知识>案例分享:当当网的内部框架开源策略

案例分享:当当网的内部框架开源策略

2021-01-05 09:40:38 阅读(219 评论(0)

建立内部应用框架。当当技术部现在按产品线划分。产品线的产品、开发和测试都在一个部门,但项目管理、运维和架构等技术体系中的公共部分是独立的部门。架构部分主要分为三个部分,一个是架构和规范,一个是性能测试,另一个是基础应用系统的研发。我们在技术架构上花了更多的精力。去年,我们在Dubbo上进行了二次开发,做了Dubbox并开源。行业反馈不错,包括很多来面试的人都知道。Java是我们技术体系和核心业务体系的明确方向,去年年底,我们开始建立基于Java的应用开发框架,DDFrame,用它来连接一些核心组件,包括SOA、已发布2.0版本,如作业调度、缓存、消息队列、数据库、配置中心等。虽然资源有限,进展缓慢,但我们一直在这样做,这个框架将在未来逐步完善,成为技术体系的核心。开源Dubbox,扩展Dubbo服务框架,支持REST风格远程调用。当当网最近开源了Dubbox项目,可以为Dubbo服务框架提供REST风格远程调用等多种扩展功能。Kryo/FST序列化等。当当当网络架构部和技术委员会架构师沈李向InfoQ中文站介绍Dubox项目时,开发背景和主要特点描述如下:Dubo是国内许多互联网公司广泛使用的开源分布式服务框架,即使从国际角度来看,也应该是一个非常全面的SOA基本框架。作为一个重要的技术研究课题,我们根据自己的需要在当当网实现了一些Dubbox的新功能,并将其命名为Dubbox(即Dubboextensions)。支持REST风格远程调用的主要新功能包括:(HTTP JSON/XML):基于非常成熟的JBossresteasy框架,REST风格在dubo中实现(HTTP JSON/XML)远程调用显著简化了企业内部的跨语言交互,同时,OpenAPI显著简化企业对外、开发无线API甚至AJAX服务端。事实上,这种REST调用也使Dubo能够为当今特别流行的“微服务”架构提供基本的支持。事实上,REST调用也使Dubbo能够为当今特别流行的“微服务”体系结构提供基本支持。此外,REST调用在基准测试下也取得了较高的性能,HTTP JSON和Dubo2.默认RPC协议(即TCP) Hessian2二进制序列化之间只有1.5倍左右的差距,详见下面的基准测试报告。支持基于Kryo和FST的Java高效序列化实现:基于今天著名的Kryo和FST高性能序列化库,为Dubo默认RPC协议增加了新的序列化实现,优化调整了其序列化系统,显著提高了DuboRPC的性能。详见下图。支持基于嵌入式Tomcat的HTTPremoting系统:基于嵌入式Tomcat实现dubo的HTTPremoting系统(即dubobo)-remoting-http),嵌入式Jetty用于逐步取代Dubo中的旧版本,可显著提高REST等远程调用性能,并将ServletAPI的支持从2.5升级到3.1。(注:除REST外,dubo中的WebServiceses、Hessian、HTTPInvoker等协议都是基于这个HTTPremoting系统)。(注:除REST外,dubo中的WebServiceses、Hessian、HTTPInvoker等协议都是基于这个HTTPremoting系统的)。升级Spring:dubo中的Spring.升级到目前最常用的3x.x版本减少了项目中版本冲突带来的麻烦。升级Zookeper客户端:将dubo中的zookeper客户端升级到最新版本,以修改旧版本中包含的bug。当当网内部稳定使用了以上许多功能,现在开源出来,供大家参考和指正。我也希望感兴趣的朋友也能为Dubo做出更多的改进。注:dubbox和dubo2.x是兼容的,dubbo的任何现有功能和配置都没有改变(除了升级Spring等版本)。此外,dubbox还严格遵守Apache2.0许可证的要求。分布式操作调度框架elastic-job的开源elastic-job原本是当当java应用框架ddframe的一部分-job。ddframe包括编码规范、开发框架、技术规范、监控和分布式组件。ddframe规划分为四个进化阶段,目前处于第二阶段。3、第四阶段涉及的技术组件并不意味着当当没有使用,但ddframe还没有统一规划。ddframe由各种模块组成,都是dd-开头,比如dd-container、dd-soa、dd-rdb、dd-job等。当当希望将ddframe的每个模块与公司环境解耦并开源,以反馈社区。Dubbox是Dd-soa的核心模块,是之前开源的Dubbo扩展版。本次介绍的elasticjob是ddjob的开源部分,其中没有开源监控(但开源监控方法)和ddframe的核心接入。elastic-job的主要设计理念是无集中的分布式定时调度框架,其思路来源于Quartz基于数据库的高可用性方案。然而,数据库毕竟没有分布式协调功能,因此在高可用性方案的基础上增加了弹性扩展和数据分割的理念,以便更大程度地利用分布式服务器的资源。目前,团队由三部分组成。第一部分是开发团队,由架构部架构师曹浩、高洪涛和我组成,主要负责设计和编码;第二部分是各研发团队的应用架构师、开发工程师和架构部主任史海峰。他们负责推广和实施,整理需求,贡献当当现有的最佳实践代码;第三部分由架构部性能测试团队组成,负责架构部性能和稳定性测试。elastic-job主要分为注册中心、数据分片、分布式协调、定期任务处理、多操作模式等模块。Zookeeeper直接用于记录操作配置、服务器信息和操作状态。Zookeeper虽然成熟,但原理复杂,使用困难,在大量数据支持下也会出现性能和网络问题。目前,elastic-job已经抽象出注册中心的接口,下一步将考虑支持用户自己实现的多注册中心,如etcd或注册中心。无临时节点和监控机制的注册中心需要实现定期心跳监测等功能。数据分片是elastic-job中实现分布式的重要概念,对应真实数据和逻辑分片,用于解耦操作框架与数据之间的关系。操作框架只负责将分片合理分配给相关操作服务器,操作服务器需要根据分配的分片匹配数据进行处理。目前,服务器分片存储在注册中心,每个服务器根据自己的IP地址拉分片。处理作业服务器动态扩容缩容的分布式协调模块。一旦集群中的服务器发生变化,分布式协调将自动监控,并将变化结果通知每个仍然存在的操作服务器。协调将涉及主节点选举、重分片等操作。采用Zookeeper的临时节点和监听器,实现主动检查和通知功能。根据cron表达式定时触发任务,定时任务处理具有防止任务同时触发、错过任务重启等功能。Quartz本身的定时调度功能主要用于每个任务都使用独立的线程池,以便于控制。多操作模式将定期任务分为多个流程,有无任何修改的简单任务;fetchdata/processdata用于处理数据的数据流任务;未来将增加新闻流任务、文件任务、工作流任务等。用户可以以插件的形式扩展和贡献代码。作业即定时任务。一般来说,系统可以使用信息传输而不是部分使用场景。两者确实有相似之处。可替换的场景,如队列表。将待处理的数据放入队列表中,然后使用频率极短的定时任务拉取队列表中的数据并进行处理。在这种情况下,使用新闻中间件的推送模式可以更好地处理实时数据。而且基于数据库的消息存储吞吐量远小于基于文件的顺序。但在某些情况下,不能交换:时间驱动或事件驱动:内部系统通常可以由事件驱动,但涉及到外部系统,只能使用时间驱动。例如:抓取外部系统的价格。每小时抓取,由于是外部系统,事件触发事件不能像内部系统一样发送。批量处理OR逐条处理:批量处理堆积的数据比消息中间件更有效率,在不需要实时处理的情况下更有优势。此外,一些业务逻辑只能批量处理,如电子商务公司和快递公司结算,每月结算一次,并根据交货数量提供佣金。例如,如果当月送货超过1000,快递公司将额外支付1%的快递费。非实时OR实时性:虽然新闻中间件可以实时处理数据,但在某些情况下不需要。比如VIP用户降级,如果超过一年没有购买行为,就会自动降级。这种需求没有强烈的时间要求,VIP用户也不需要按时间精确降级。解耦系统内部OR系统。操作一般包装在系统内部,消息中间件可用于系统间解耦。elastic-job的主要功能分布式:重写基于数据库的Quartz分布式功能,并使用zookeeper实现注册中心。并行调度:通过任务分片实现。将一个任务分成n个独立的任务项,分布式服务器并行执行各自分配的分片项。弹性扩展缩容:将任务分成n个任务项后,每个服务器分别执行各自分配的任务项。一旦新的服务器加入集群,或者现有的服务器离线,elastic-job将在下一个任务开始前触发任务重分片,以保持任务执行不变。集中管理:采用基于Zookeeper的注册中心,集中管理和协调分布式作业的状态,分配和监控。根据Zookeper的数据,外部系统可以直接管理和监控elasticc-job。定制流程任务:操作可分为简单和数据流处理两种模式,数据流分为高吞吐处理模式和顺序处理模式,高吞吐处理模式可以打开足够的线程快速处理数据,顺序处理模式将每个分割分配到一个独立的线程,以确保同一分割的顺序,类似于kafka的分割顺序。其他功能故障转移:下次操作前弹性扩容缩容,但在执行过程中,线下服务器分配的操作不会重新分配。在这次操作中,可以使用空闲服务器抓取孤儿作业分片进行故障转移功能。同样,故障转移功能也会牺牲部分性能。Spring命名空间支持:elastic-job可以直接运行,而不依赖spring,但也为spring集成提供了自定义的命名空间。运维平台:为管理操作提供web控制台。非功能需求稳定性:当服务器没有波动时,不会重新分割;即使服务器波动,下次分割的结果也会根据服务器IP和操作名称哈希值计算稳定的分割顺序,尽量不要做大的变化。高性能:自动切割和多线程并行处理同一服务器的批量数据处理。灵活性:所有功能和性能之间的权衡都可以通过配置打开/关闭。如:elastic-job将向注册中心更新操作状态的必要信息。如果操作执行频率高,会导致大量Zookeeper编写操作,而分布式Zookeeeper同步数据可能会导致网络风暴。因此,为了考虑性能问题,可以牺牲一些功能来换取性能的提高。幂等性:elastic-job可以牺牲部分性能,以确保同一部分不会同时在两个服务器上运行。容错性:当操作服务器与Zookeeper断开连接时,立即停止操作,防止分片重新分配,脑裂服务器继续执行,导致重复执行。Elastic-job刚刚在当当内部推广。目前已使用支付系统、订单系统、发票系统和促销系统,快递系统和仓储系统即将使用。开源后也了解到很多公司都有使用计划。

以上就是关于案例分享:当当网的内部框架开源策略的相关介绍,更多案例分享:当当网的内部框架开源策略相关内容可以咨询我们或者浏览页面上的推荐内容。我们将让你对案例分享:当当网的内部框架开源策略有更深的了解和认识。

内容来源:网络,以上内容来源于网络,不代表本站观点,如有侵权,请联系删除。

推荐阅读

怎样制作微信小程序呢?手把手教你轻松制作小程序

虽然不少自媒体的工作者,或者是商家都明白微信小程序能够带来巨大的流量,但是却因为自己不懂设计的知识,或者是不知道该怎样进行代码编程,从而感觉制作小程序是非常难的,其实微信小程序的制作,远远没有我们想象的那样复杂,…查看详情

小学生英语学习软件有哪些 小学生英语学习软件排行榜

  现在很多的小学生都在学习英语了,现在市面上的英语学习软件又是非常多的,下面小编给大家来详细介绍一下小学生英语学习软件有哪些 小学生英语学习软件排行榜这一块的相关内容,希望能帮助到大家。  小学生英语学习软件…查看详情

WMS仓储管理信息系统主要功能模块解析

现代仓库管理流程十分复杂化,仅仅依靠人工管理非常难,一套WMS仓储管理信息系统显得非常必要,越来越多企业开始引入仓储管理系统,本次将就WMS仓储管理信息系统主要功能模块作出解析,帮助大家从功能方面更好选择仓储管理系统。 …查看详情

好看且简约的安卓手机桌面,亲测nice

安卓手机桌面太难看,怎么办?很多网友在使用自己的手机的时候,总是觉得自己的桌面过于简单,想要好看且简约的桌面。所以今天小编就大家推荐几款安卓手机桌面美化软件,以下软件都是小编亲测有用。感兴趣的朋友们可以下载下来看…查看详情

制作ppt用什么软件?制作PPT哪个软件好

PPT软件制作相信在生活当中很多人都遇到过,比如说再进行文案讲解,或者是在进行教学制作的时候都可以制作成PPT,PPT制作其实相对来说比较简单,只有选择相关的软件进行制作,操作起来就比较简洁。那么制作PPT用什么软件呢?下面就来…查看详情

进行第44类商标注册不要误导认知,注意规避违规高发区!

第44类商标注册包括了由个人或机构向人或动物提供的医疗、卫生和美容服务,以及与农业、园艺和林业领域相关的服务。其中第4401医疗服务类中的医疗按摩40032、医疗保健440060、医疗辅助440087、理疗440097等小项是“欺骗性商标”...查看详情

mvc框架是什么意思?

mvc框架淘汰了吗?淘汰了。前后端分离来了,Node.js来了,前端工程师把MVC的职责都给抢走了,后端工程师真正成为了后端,只需要提供API给前端就行,再也不用关心redirectforward有什么区别,再也不用关心session、co...查看详情

浏览器内核有几种类型

所有浏览器总共有哪几种内核?浏览器内核种类介绍。1、Trident内核(IE内核):用它的浏览器有:ie、360浏览器2、Webkit内核(谷歌内核):用它的浏览器有:谷歌浏览器、枫树浏览器、太阳花3、Gecko内核:用它的浏览器有:Net...查看详情

录屏软件哪个好 免费的手机录屏软件

当我们听到好听的音乐,看到它美丽的歌词海报时,可以使用录屏软件记录下来。录屏软件会获取屏幕权限、麦克风权限和存储权限,那各大应用商店里的录屏软件哪个好?让我来告诉大家伙。1.KK录像机它是一款完全免费的手机录屏软件,它…查看详情

市面上排名较好的erp企业都有哪些

随着科技革命的浪潮推动,经济全球化不断深入各行各业,使得企业生产分工愈加精细化,不断向集团化、多元化以及纵深化的方向发展。但是这其中的过程又是何等的艰辛,估计只有正在转型的企业才知晓。所以为了加快转型的步伐,部分…查看详情

wifi已连接不可上网是什么原因

WiFi显示已连接为什么不能上网?一、路由器不稳定有些无线路由器、光猫(宽带猫)的质量比较差,长时间运行后会出现死机等一系列的问题。二、宽带出现故障如果你家的wifi,之前连接后可以上网,突然就出现了无法上网的这个问题。并且已经…查看详情

别让看不懂的crm系统介绍耽误你选型

目前国内的crm系统有很多,很多企业在选择时都会感到迷茫,不知哪个crm系统好用,不明确哪些crm厂商服务好。网上搜索的又都是广告,也没有crm系统介绍,完全是盲选,并且也不一定适合,在选型之路抓破脑袋!图片源于网络接下来小万就…查看详情

数控仿真系统有哪些?数控仿真系统专辑推荐!

数控仿真系统主要应用于计算机上面,精确的说是在计算机上面的一款模拟仿真技术,加工过程中的三维建模等等相关事宜,那么今天我们就来简单盘点一下,这东西到底是怎么回事,都有哪些。1、斯沃数控仿真这是一款针对数控行业所打造…查看详情

游戏版权贵吗?几万块能买到游戏版权吗

    我们平时在手机上玩的游戏都是由游戏公司制作出来的,游戏的热度越高,受欢迎的人数就越多,所以很多人想通过游戏这方面做生意,那么就需要购买游戏版权,很多人都还不知道几万块能买到游戏版权吗,因此一直在犹豫当中。…查看详情

蛋糕店常用收银系统哪家好?5家高分蛋糕店收银系统推荐

随着国人生活方式逐渐全球化,烘焙食品以其即买即食、种类丰富的特点成为越来越多消费者的一大喜好,商家如何在烘焙食品的红海中脱颖而出,蛋糕店的收银系统无疑是最重要的因素,蛋糕店常用收银系统哪家好?以下5家高分蛋糕店收银…查看详情

首页

产品

万商学院

客户服务

会员中心

当前站点

h

选择站点

全国站成都

一 客户顾问-张三

已为0个客户提供专业互联网服务咨询
  • 手机号码
  • 验证码图形验证码换一张
  • 短信校验码

    电话咨询

    在线咨询