ImageVerifierCode 换一换
格式:DOCX , 页数:10 ,大小:485.43KB ,
资源ID:18935750      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/18935750.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(京东微服务平台架构设计Word文件下载.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

京东微服务平台架构设计Word文件下载.docx

1、总体上说,微服务组件平台由三大部分组成:核心部分、生态工具链部分和基础数据服务部分。目前,平台正在按照计划有条不紊地推进,首期功能已经陆续上线。核心部分基础设施层微服务架构大行其道的重要技术因素就是容器及容器编排系统的出现,JDOS作为京东容器集群平台,理所应当成为JSF最重要的基础设施;目前JSF所有的功能模块全部运行在容器上,而且还跟JDOS2.0进行了若干功能集成;未来JSF还将与JDOS进行更多、更深入的合作,为JSF打造一个坚实、稳定的技术底座。当然,我们也会和J-ONE/CAP这对基础设施组合进行合作,拓展平台的适应范围。底层框架层该层是平台的基础层,包括了JSF SDK、京东服务

2、网格(ContainerMesh)、服务发现机制(JSFRegistry)和JMQ;另外,我们接下来将着力打造全新的安全体系,全方位提升系统的安全性。系统扩展层该层基于底层框架层,提供了更多的扩展功能,是下层功能的自然延伸,包括微服务调用图谱(解决“微服务大爆炸”后可观察性差的问题)、微服务流控(提供了各种流量控制切换的机制)以及微服务监控(我们将和UMP合作,提供更加强大的性能监控服务)。应用层该层基于下层提供的基础功能,打造了两个全新应用,一个叫“服务集市”,另一个叫“开放平台”。其中,在服务集市里可以进行服务知识的搜索、用户自定义标签、围绕服务的评论互动、服务知识的协同编辑、服务的调用图

3、谱、服务评价(重要性、健康度、架构合理性),甚至包括服务使用资源上的评估等等。我们希望服务集市能够将JSF和业务更加紧密的结合,提供贴近使用场景和应用架构的功能服务,同时除了连接开发人员之外,还可以连接产品经理、项目经理及各级负责人。而在开放平台中,我们除了提供强大的网关服务外,还将为业务梳理、发现和发布服务提供一站式的解决方案,帮助京东内部业务能力快速向外输出,提高对外赋能的效率。生态工具链虽然微服务架构给我们带来了巨大的好处,但是采用微服务架构的应用存在“单体应用”所没有的复杂性,因此需要一系列的工具链分别从各个角度来解决这些复杂性。可视化设计采用微服务架构的应用,其设计具有一定难度,如何

4、进行业务逻辑拆分和数据Schema的拆分需要仔细考量,这些对于刚入门的人员来说比较头疼。为此,平台将推出针对微服务的可视化设计工具,该工具利用DDD(领域驱动设计)理论来干预和指导开发人员进行设计,希望在提高设计效率的同时,也能保证设计与实现的一致性。开发调试当应用依赖的微服务比较多时,在开发调试阶段能否快速搭建一套完整的测试环境是非常关键的,否则将只能进行局部功能测试,而这和反映完整业务流程的测试是有差距的。为此,平台将推出快速搭建开发调试环境的解决方案来解决这个问题。在线联调在充分微服务化的情况下,一个应用会调用另外一个应用的服务,以此类推,会形成所谓的“调用链”。当调用链的某个应用出问题

5、时,往往需要挨个询问多个彼此依赖的服务的执行情况来排查问题,这会涉及到多个研发人员的联动,过程非常繁琐和费力。为此,平台将推出支持多方在线联调的工具,来简化在线联调的过程。配置中心为服务提供动态修改配置的功能,从而避免了先下线-修改配置-再重新上线的麻烦。分布式锁对共享资源的互斥访问提供分布式锁的解决方案。分布式事务为需要事务的地方提供了分布式事务的解决方案。API网关提供类似Zuul/Kong的API网关的功能。基础数据服务微服务组件平台的很多功能都需要IP、IP和机房的映射、机房、系统、应用及应用分组等这些基础信息,但是目前集团还没有提供这样的完整、一致的基础数据服务,这些基础数据分散在多

6、个独立系统中。微服务组件平台在完成这些基础数据的校验、整理为我所用后,也将以服务的形式把这些基础数据共享出去,造福广大的研发人员。重点介绍应用层-服务集市由于缺乏集中管理机制,开发人员只能把提供的服务的知识放在cf或者jpcloud上,造成信息过于分散,极大增加了相关人员的找寻与沟通成本,急需专门的管理中心来解决集中存放和查询的问题,由此服务集市应运而生。服务集市提供的功能如下所示:搜索功能除了支持按基本属性(erp、接口名、方法名等)查询外,还支持按自定义属性(自定义标签)查询;除了支持模糊查询外,还支持按类目查询,比如按“交易类”、“商家类”、“金融类”、“物流类”等类目进行查询。另外还支

7、持多种搜索选项,比如排他选项等。知识库提供全方位、多维度的服务知识,除了提供基本的出/入参数详情、负责人等信息外,还提供调用图谱信息,包括来源、去向及入口等;还提供服务历史,包括版本变化及各版本对应的接口服务详细信息,以及变更事件通知;提供服务快照功能,方便把服务在某个时刻的状态记录下来,比如大促时刻的状态。权限认证提供相关的流程控制,比如调用申请、服务终止申请、服务访问授权等;质量跟踪提供服务重要性评估、服务健康度评估、服务架构合理性评估,并提出相应建议;调用关系结合微服务调用图谱,提供服务的调用链信息,以便了解服务的相关依赖关系及链路属性;用户自定义标签提供应用和接口两个维度上的自定义标签

8、功能,帮助业务梳理、发现业务组件。另外根据用户自定义标签,可以完成更加符合用户使用场景的操控及控制。评论互动提供服务输出者和使用者的互动功能;整合相关系统上对服务的评价信息,给服务使用者更加全面的知识。协同编辑为了更好地完善服务知识,平台允许大家可以编辑绝大多数的服务知识点,并且提供了变更历史以供追溯。系统扩展层微服务调用图谱随着微服务数量的急剧增加,跨应用、跨系统的调用越来越多,调用关系和依赖关系日益复杂,出现了所谓的“微服务大爆炸”。微服务调用图谱通过提供跨网络的调用堆栈分析,使我们既能从宏观上俯瞰纷繁的业务关系及调用链整体特质,又能从微观上观察和审视调用链上各环节的细节,通过多种分析手段

9、,给应用全方位画像,形成一系列的图谱,彻底解决“微服务大爆炸”后带来的可观察性差的问题。该系统提供了如下的分析:来源分析 分析某服务的直接调用者的情况入口分析 分析某服务的最初调用者(入口)的情况路径分析 分析一条完整调用链的情况耗时分析 分析一条调用链中的各个环节的耗时情况瓶颈分析 分析一条调用链中的瓶颈点的情况依赖度分析 分析一条调用链中的强依赖、若依赖等的情况目前该系统支持JSF/JMQ/JIMDB/各种数据库连接池等中间件,接入应用超过2200个,涉及IP数超过46000个。下图是由该系统生成的全局调用关系图:下面这张是某个调用链的图:下面这张是某个应用的上下游关系图:微服务流控在JS

10、F的使用过程中,业务给我们提出了许多跟流控及运维相关的需求,我们将在微服务组件平台中给予集中的解决,它们包括如下:流量控制中要支持“版本”的概念(比如在一个分组中有两个版本,现在需要对其中一个版本的实例进行操作);提供平滑的灰度升级和回退手段,支持A/B测试、金丝雀部署等;支持动态配置(不需要反复修改程序-打包-重新上线),这些动态配置的取值往往不可预测,需要根据实际情况随时调整,比如流量的阈值、服务超时时间等;服务永久下线的全流程支持(经常有业务为了下线一个即将废弃的服务,而一遍遍的发邮件确认是否有人还在调用该服务);临界条件下的强制降级、限流和熔断等;废弃接口的治理,将长期没有调用量的接口

11、,定期给相关人发通告,让他们下线。必要时,可以主动将它们下线,然后回收相应的资源。配置中心配置信息是软件的重要一环,几乎每个服务都有自己特殊的配置,比如各种控制开关、降级开关、K-V信息等等。微服务配置中心支持普通字符串、json、properties等的配置格式,并且提供了Restful的K-V的API,实现了跨语言、跨平台。通过该系统,用户可以实现服务功能的动态配置,从而避免了先下线-服务框架层JSF SDKJSF SDK是微服务组件平台最早的核心模块,目前已经运行在几乎所有的京东容器上,负责完成所有的服务通信工作。但随着京东业务不断发展,JSF SDK也遇到了挑战,突出表现为:扩展性和灵

12、活性不够。对此,我们重点将从以下几方面进行解决。增加更多的探针在通信过程的各个环节(编解码、序列化等)加入探针逻辑,并通过开关控制,当出现诸如性能问题时,可以打开开关,通过探针逻辑输出的日志来定位瓶颈点;没有问题时,将开关关闭,避免影响性能。增加更多的扩展点在诸如序列化、路由决策等地方,提供扩展点,允许用户提供定制的功能实现,来满足他们的个性化需求。开发新通信协议开发新一代的TCP通信协议,加强协议头部的能力,并加入握手阶段,解决很多控制方面的短板,比如安全认证、路由等。增加相关注解提供跟服务接口相关的注解,自动收集服务接口信息,为微服务集市收集数据,以降低手动录入的工作量。支持服务扩展属性当

13、前JSF服务的属性是固定的,不允许用户扩展属性,由此引发了一个深层次问题:业务只能按照JSF的规则来组织服务关系,而不能自定义服务关系,带来的后果就是一旦业务场景或业务架构跟JSF组织的服务关系不匹配,就会出现本来彼此相关的一系列服务被割裂的现象,业务只能逐个处理,而不能整体处理,就像下图所示的那样:左边是个单体应用,一共由4个彼此依赖的服务构成,当该应用需要下线时,4个服务会同时下线(因为它们在同一进程空间中);而在右边,它们被微服务化,由不同开发小组来维护,当一个服务需要下线时,实际上需要其他服务一起下线,从而构成一个“有机的微服务集”,此时只能靠扩展属性,将它们“逻辑”地绑定在一起,进行

14、整体下线,否则只能一个个下线,非常麻烦,效率低还易出错。通过该功能特性,使得用户能自由、灵活地按照实际的业务场景或架构来组合形成“有机的微服务集”,进行整体操作,从而提高效率。服务网格JSF SDK以jar包的形式提供给Java开发者,这种基于“语言库”的交付方式现在受到了越来越多的诟病。随着集团业务领域的不断扩展,不同领域内都有自己独特的生态系统,都有最适合的开发语言,Java一枝独秀的情况将在京东不复存在,go、python、c/c+、node.js等语言会越来越多地出现在我们面前。另外,基于“语言库”的方式还给特性升级和BUG修复带来了困扰,无法做到业务无感知。对此,我们正在开发京东自己

15、的服务网格技术,力图将业务逻辑与诸如通信、服务治理等非业务逻辑进行彻底解耦,使得开发分布式应用跟开发单机应用一样简单。届时,通过服务网格技术,不同语言之间可以顺畅通信,同时还兼容JSF服务;当需要增加新的治理功能时,可以透明升级实现,业务没有任何感知。服务发现服务发现在微服务架构中扮演了极为重要的角色,JSF Registry是京东完全自研的支持多数据中心、跨广域网、具有完备容灾特性的服务发现系统。目前,该系统稳定地支持了近3万个服务接口,近30万个JVM实例的服务注册/订阅/配置推送等功能。安全体系JSF运行在公司内网,随着对外开放赋能不断深化以及公司体量的不断增大,对安全性要求越来越高,保

16、护自身服务的稳定运行,就像下图所示那样:上图是安全模型,在该模型中,每个服务都有一个全局唯一ID(UUID),基于该ID,会进行证书管理、秘钥管理以及身份认证、访问授权等安全行为。为了兼顾灵活性和效率,还支持命名空间和安全级别,同一命名空间内的服务可以随意通信,不同命名空间的访问受管控;不同级别有不同的安全要求,比如达到某种级别的服务必须有服务提供方的授权才能访问。在开发分布式应用时,面临着很多方面的挑战,平台将陆续推出系列工具来应对这些挑战。首批将被推出的工具链包括:分布式锁、API网关。敬请大家期待。利用JSF广泛的部署优势,平台将积极整合J-ONE、JDOS以及横跨商城、物流、金融、京东云等的基础IT数据。在微服务流控方面,我们需要提供各种维度的诸如服务上下线这样的操作,比如按照机房维度、应用维度、应用分组维度等,这些操作都严重依赖这些基础数据的准确性、完整性和可靠性。这个功能首先是平台自身的需要,另外也将功能服务化以供调用,不断赋能。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1