京东微服务实践

合集下载

基于Java的京东电商系统的设计与实现

基于Java的京东电商系统的设计与实现

基于Java的京东电商系统的设计与实现摘要:近十多年来,因为移动互联网发展迅猛,除了通常的查阅网页,搜索数据和发送电子邮件外,大多数国内网民还将采用以下传统功能,如购物,电信,旅游和娱乐我逐渐习惯了互联网。

包括使用在线购物在内的新服务模式正在成为人们生活中一种重要的购物形式。

互联网的发展迅猛,是网上购物系统发展的基础。

除此之外,网络购物营商环境也在逐渐的在改善。

移动互联网设备(手机,平板电脑)使互联网用户越来越多。

付款和结算方式变得更加容易,快递物流变得越来越顺畅,相应的法规和政策也越来越完善。

近10年来,网络购物对人们越来越有吸引力。

从一开始的,人们不理解人们对在线购物的看法,从问题到逐渐信任,从拒绝到逐渐接受和熟络。

关键词:Java,网络购物目录第1章系统概述 (4)1.1 系统开发背景 (4)1.2 系统特点 (4)第2章项目开发相关技术基础 (5)2.1 Java语言 (5)2.2 MVC模式 (5)2.3 SOA架构设计 (6)2.4 Spring概述 (6)2.5 Mybatis概述 (6)2.6 SpringMvc概述 (6)2.7 JavaWeb开发技术 (6)2.7.1 JSP技术 (6)2.7.2 Servlet技术 (7)2.7.3 Javascript技术 (7)2.7.4 CSS技术 (7)2.7.5 AJAX技术 (7)2.8 数据库(Mysql) (7)2.9 本章小结 (8)第3章系统整体设计 (9)3.1 系统功能需求及设计 (9)3.1.1 商品管理模块 (9)3.1.2 网站内容管理模块 (10)3.1.3 用户模块 (10)3.1.4 商品模块 (10)3.1.5 购物车模块 (11)3.2 数据库设计 (11)3.2.1 数据库概念模型设计 (11)3.2.2 数据库逻辑结构设计 (13)3.2.3 数据库物理设计 (14)3.3 系统界面设计 (15)3.4 本章小结 (15)第4章系统实现 (16)4.1 系统框架实现 (16)4.2 网站商品管理模块实现 (17)4.2.1 商品添加 (17)4.2.2 商品查询 (18)4.3 网站内容管理模块实现 (18)4.3.1 首页内容新增 (18)4.3.2 首页内容查询 (19)4.4 用户模块实现 (20)4.4.1 用户注册 (20)4.4.2 用户登录 (20)4.5 商品模块实现 (21)4.5.1 商品搜索 (21)4.5.2 商品浏览 (22)4.5.3 商品信息展示 (23)4.6 购物车模块实现 (23)4.6.1 加入购物车 (23)4.6.2 我的购物车 (24)4.6.3 购物车结算 (24)4.6.4 提交订单 (25)4.7 本章小结 (25)第5章系统测试 (26)5.1 界面测试 (26)5.2 功能测试 (26)5.3 本章小结 (28)总结与展望 (29)第1章系统概述1.1 系统开发背景2018年12月止,电子商务直接雇员(包括电子商务平台,初创公司,服务提供商,电子商务经销商等)人数已经不止350万,号码(物流,市场营销,培训,直播等)已不止3000万。

京东弹性计算实践

京东弹性计算实践

存储
XFS
文件系统
JFS
块存储
数据卷
日志
镜像分层合并
变更频繁 变更少 变更很少
应用层 基础层 OS层
镜像中心
配置中心
• App:CAP • Group:V2 • Env:Production
正式环境
分组1
配置中心
测试环境
分组1
正式环境
分组2
一个镜像部署到多个环境中,根据应用、环境和分组从配
置中心拉取配置。
OpenStack
01 成熟度 很成熟,社区非常活跃
02 快速交付
积累了很多经验,快速交 付成果
03 一套架构
公有云和私有云一套架构 。Windows虚拟机需求
Docker Driver
网络(OVS/VLan)
为了兼容现在的基础设施系统,满足用户习惯,每个容器都有独立的IP。 禁用了Docker网络,采用Neutron集成OVS; 优化OVS转发层,提升网络小包延迟,适用于微服务调用;
以一小时为单位,计算容器的资源最大使用率;
应用资源利用率
根据应用和容器的关系,统计应用资源使用率;
部门资源利用率
根据负责人、部门、应用和容器的关系,统计部门资源使用率;
一键伸缩
批量快照水平扩容; 批量水平扩容; 批量水平缩容; 批量垂直搜索;
应用部署巡检
定期巡检应用容器部署情况,邮件报告;
IDC资源
弹性计算平台 = JDOS(JD Datacenter OS)+CAP(Cloud Application Platform)。 JDOS实现实现基础设施(网络,物理机,存储)的资源管理、容器的生命周期管理、 监控指标采集; CAP负责应用治理、部署、监控报警、资源利用率统计、手动和自动的弹性伸缩。

刘永平-Spark-streaming在京东的项目实践

刘永平-Spark-streaming在京东的项目实践
treaming在京东的项目实践

Spark-streaming在京东的项目实践

Spark-streaming项目背景

Spark-streaming项目背景

Spark-streaming项目背景


Spark-streaming项目实践-输出(结果)

Spark-streaming在京东的项目实践

Spark-streaming项目中遇到的问题与解决

Spark-streaming项目中遇到的问题与解决

Spark-streaming项目中遇到的问题与解决

Spark-streaming项目中遇到的问题与解决

Spark-streaming项目中遇到的问题与解决

Spark-streaming项目实践-运行与监控

Spark-streaming项目实践-运行与监控

Spark-streaming项目实践-运行与监控

Spark-streaming项目实践-运行与监控

Spark-streaming项目实践
Spark-streaming在京东的项目实践

Spark-streaming项目实践

Spark-streaming项目实践

Spark-streaming项目实践-概述

Spark-streaming项目实践-概述

Spark-streaming项目实践-输入(流)

Spark-streaming项目实践-输入(流)

Spark-streaming项目实践

Spark-streaming项目实践-输出(结果)

京东HBase大数据平台异地多活实践

京东HBase大数据平台异地多活实践

京东HBase大数据平台异地多活实践目录1.HBase Replication原理 (3)2.JDHBase异地多活架构 (5)3.集群切换 (9)4.自动切换 (12)5.动态参数&自动调速 (14)6.串行Repication (15)7.总结与展望 (17)JDHBase在京东集团作为线上kv存储,承担了大量在线业务,11.11、6.18 均经历了每天万亿级读写访问请求,目前规模达到7000+节点,存储容量达到了90PB。

场景涉及商品订单、评价、用户画像、个性推荐、金融风控、物流、监控等700+业务。

JDHBase上承载了大量核心业务,遍布全球多个Data Center。

为了保障业务稳定不间断运行,我们构建了JDHBase集群的异地多活系统。

本文主要介绍我们在异地多活系统的实践。

1.HBase Replication原理HBase是典型的LSM(Log-Structured Merge-Tree)结构数据库,服务端响应客户端写请求过程中,会写入Memstore(内存)中和顺序的写入WAL日志(HDFS文件)中,WAL日志确保数据真正写入磁盘,从而在节点故障时恢复未被持久化的内存数据。

HBase的Replication是基于WAL日志文件的。

在主集群中的每个RegionServer上,由ReplicationSource线程来负责推送数据,在备集群的RegionServer上由ReplicationSink 线程负责接收数据。

ReplicationSource不断读取WAL日志文件的数据,根据Replication的配置做一些过滤,然后通过replicateWALEntry的rpc调用来发送给备集群的RegionServer,备集群的ReplicationSink线程则负责将收到的数据转换为put/delete操作,以batch的形式写入到备集群中。

因为是后台线程异步的读取WAL并复制到备集群,所以这种Replication方式叫做异步Replication,正常情况下备集群收到最新写入数据的延迟在秒级别。

京东客服工学交替实习报告

京东客服工学交替实习报告

工学交替实习报告——京东客服实习经历一、实习背景及目的作为一名热衷于电商行业的学生,我一直渴望能够亲身参与到电商企业的运营和管理中。

因此在大学期间,我选择了工学交替的模式,即在学习理论知识的同时,穿插实践实习,以便更好地将所学知识应用于实际工作中。

这次实习,我有幸来到了我国知名电商平台——京东,担任客服岗位,深入了解并体验电商客服的工作内容和工作环境。

二、实习内容及收获1. 实习内容在京东客服实习期间,我主要负责处理客户咨询、投诉、建议等问题,协助客户解决购物过程中遇到的困难。

同时,我还参与了客服团队的日常管理和工作流程的优化,学习了电商客服的工作方法和技巧。

2. 实习收获(1)提升沟通技巧。

通过与客户的日常沟通,我熟练掌握了电话沟通、在线聊天等沟通方式,提高了自己的沟通能力和应变能力。

(2)增强团队协作。

在客服团队中,我学会了如何与同事协同工作,共同为客户提供优质的服务。

同时,我还参与了团队活动,增强了团队凝聚力。

(3)了解电商行业。

通过实习,我深入了解了电商行业的运营模式、市场竞争状况以及客户需求,为今后从事电商工作奠定了基础。

(4)提高自我管理能力。

在实习过程中,我需要独立完成工作任务,不断提高自己的时间管理和自律能力,养成良好的工作习惯。

三、实习感悟1. 客服工作的重要性。

客服是电商平台与消费者之间的桥梁,关系到企业的声誉和客户满意度。

这次实习让我深刻认识到客服工作的责任和重要性。

2. 团队协作的力量。

在客服团队中,每个人都在为自己的目标和梦想努力拼搏。

通过团队协作,我们共同为客户提供优质的服务,实现了个人和团队的共同成长。

3. 学以致用。

实习过程中,我将所学的沟通技巧、客户服务知识等运用到实际工作中,不仅提高了工作效率,也使自己更加自信地面对未来的挑战。

四、实习总结这次京东客服实习,让我在实践中学习到了很多宝贵的知识和经验,锻炼了自己的沟通能力和团队协作能力。

同时,我也认识到了自己的不足之处,如在处理复杂问题时耐心不足、情绪控制能力有待提高等。

京东微服务平台架构设计

京东微服务平台架构设计

京东微服务平台架构设计平台初心微服务组件平台是承载京东集团所有业务的服务调用、消息通知的底层架构平台、运维管理平台、知识分享平台、沟通协作平台和服务评价及诊断平台。

底层架构平台由JSFRPC调用、JMQ消息服务及服务网格这三大基础通信技术构成,既能完成同步调用,又能完成异步消息通知,或者两者混合进行,兼容各种流行通信协议,并且支持跨语言,适用于各种线上及线下应用场景,满足了业务各式各样的通信要求,多年来包揽了集团几乎所有后台业务系统的通信流量,确保了集团各项业务的高效、平稳进行。

随着集团对外赋能及组件化积木理论的提出,仅仅满足于“以底层架构平台充当通信管道”已经远远不能适应当前形势的发展。

在对外赋能的过程中,不仅仅需要研发人员埋头苦干,还需要他们抬起头来站在全局角度来积极沟通、认真梳理业务领域知识,更需要产品经理、项目经理及各级决策者们跨体系、跨部门、跨业务的高效互动和协作,才能赢得对外赋能战略的真正成功。

由此,微服务组件平台应运而生,它不仅连接了研发人员,而且还连接了广大产品经理、项目经理以及所有决策者们;它不仅提供了应用程序的通信管道,而且还提供了服务知识、信息交流的沟通管道;它不仅连接了京东内部团队,而且还连接了京东外部第三方;它不再“偏于底层技术建设”,而是不断向上延伸,发展到通过提供各种上层功能模块充分与应用场景、应用架构以及人相连接的“平台生态建设”上来。

微服务组件平台的技术愿景:成为京东业务组件化及对外赋能的基石!平台组成微服务组件平台作为一个生态系统,采用分层的设计模式,由许多相互支撑的模块共同组成。

总体上说,微服务组件平台由三大部分组成:核心部分、生态工具链部分和基础数据服务部分。

目前,平台正在按照计划有条不紊地推进,首期功能已经陆续上线。

核心部分•基础设施层微服务架构大行其道的重要技术因素就是容器及容器编排系统的出现,JDOS作为京东容器集群平台,理所应当成为JSF最重要的基础设施;目前JSF所有的功能模块全部运行在容器上,而且还跟JDOS2.0进行了若干功能集成;未来JSF还将与JDOS进行更多、更深入的合作,为JSF打造一个坚实、稳定的技术底座。

达达京东到家:微服务架构下的链路管理

达达京东到家:微服务架构下的链路管理

达达京东到家:微服务架构下的链路管理作者简介顾宝碗:达达京东到家架构师,在系统高可用,服务治理,基础中间件等方面有丰富的行业经验。

万明明:达达京东到家新晋架构师,明明可以靠颜值吃饭,偏偏却要写代码。

背景随着达达的业务发展,我们在微服务的推进过程中也遇到了很多业内相同的痛点,比如:•很难在生产环境下进行全链路的压力测试,每次压测耗时耗力且经济不划算•同一服务的不同版本很难在测试环境同时测试•某些新功能上线需要同时更新多个服务,但是灰度流量没办法只在更新的服务中处理,给我们灰度验证增加了麻烦具体来说:全链路压测达达之前的压力测试需要完整的搭一套新的环境,但是整个过程耗时耗力,成本非常高昂。

我们希望可以直接在线上的机器中隔离出来一部分流量专门用来压力测试,以省去我们重新搭环境的成本。

并行功能测试产品迭代速度较快,有时候需要我们在同一时间测试同一服务的不同版本,导致测试资源大量阻塞在竞争测试环境上。

在这种场景下,如何避免不同的测试间的相互干扰便成了一个急需被解决的问题。

线上灰度发布为了降低新版本上线可能产生的风险,我们需要隔离部分线上流量用来做灰度验证,这也是我们急需要解决的问题。

所以,基于以上的各种问题,我们需要开发一套系统以便我们可以灵活的管控流量。

解决方案及实现为了解决以上的问题,我们抽象了一种叫做“链路”的逻辑概念,即一个业务请求从进入系统到完成处理所经过的所有微服务以及数据节点组成的路径。

如下图所示:在上面的示例图中,一个请求可以被分发到两个不同的链路(“链路A”与“链路B”)中。

在默认情况下,如果一个链路中包含完整的上下游服务,则进入该链路的流量只会在该链路内流转。

可是,在真实场景中不是所有的链路都会包含完整的微服务拓扑,此时,就需要我们根据链路的不同特点和需求,来决定流量(在本链路中找不到下游服务节点的情况下)是否需要被转向至其他链路中。

因此,我们将“链路”又拆分为两种不同类型:“强链路”(不允许流量转向到其他链路)与“弱链路”(可以将流量转向至其他链路),我们会在最后一个章节中详细阐述这两种链路的真实应用场景。

京东快递的物流快递服务体系优化

京东快递的物流快递服务体系优化

京东快递的物流快递服务体系优化京东快递是中国领先的综合物流平台之一,致力于为用户提供快速、便捷的物流快递服务。

为了进一步优化物流快递服务体系,京东快递进行了一系列的改进和创新。

首先,京东快递加大了对物流快递基础设施的投入。

它在全国范围内建立了大量的物流集散中心和配送站点,通过这些中心和站点的布局优化,能够更好地满足用户的送货需求。

此外,京东快递还引入了先进的物流技术和设备,提高了物流配送的效率和准确性。

同时,京东快递还与第三方物流公司合作,组建了强大的物流配送团队,确保了货物的安全和及时送达。

其次,京东快递持续改进配送服务。

它通过引入智能算法,对订单进行优化分配,使得同一区域内的多个订单能够合并配送,减少了配送员的行驶里程和送货时间,提高了送货效率。

京东快递还引入了自动化分拣设备,能够快速准确地将货物分拣到相应区域,减少了人工操作的时间和出错率。

此外,京东快递还实行严格的质量控制,设立了全国统一的客户服务热线,用户可以随时提出投诉或咨询,京东快递会积极回应并处理用户的问题,提升用户满意度。

再次,京东快递加强了信息技术的应用。

通过建立完善的物流信息系统,京东快递实现了对货物流向的实时跟踪和监控,用户可以随时通过京东官方网站或手机APP查询自己的快递信息。

此外,京东快递还通过数据分析,对物流配送过程进行优化,提高了配送的准时率和可靠性。

同时,京东快递还推出了一系列的物流服务创新,比如自提点、晚间配送等,使用户可以更加灵活地选择合适的送货方式。

最后,京东快递积极响应环保倡导。

它推行了绿色物流理念,努力减少对环境的影响。

京东快递采用电动车和新能源车辆进行送货,减少了尾气排放。

同时,京东快递还推广包装回收和再利用,减少了包装材料对环境的污染。

京东快递还致力于打造绿色物流的品牌形象,通过各种宣传活动,增强用户对京东快递的信任和支持。

综上所述,京东快递通过加大对物流基础设施的投入、改进配送服务、加强信息技术应用和积极响应环保倡导等一系列举措,不断优化物流快递服务体系,提供更好、更快、更便捷的物流快递服务。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

MonitorQueryService
influx DB 分钟表 小小时表 天表
21
JSF核心心技术-报警
• provider下线报警(心心跳、telnet端口口检查); • 某应用用调用用量超限额报警; • Consumer存活报警; • 耗时超过阀值报警; • 异常(Exception)捕获报警;
2.注册中心心 • zookeeper作为注册中心心,功能定制扩展受限;
3.服务治理 • • • 缺乏流控手手段,大大流量打爆线程池; 更改配置需重启,对运营不够友好; 缺乏调用用监控,没有调用用分析图表;
6
重装上阵!
7
新服务平台JSF
• • • • 14年初开始研发; 自自主研发以获得彻底的掌控力力; 老老版本运营经验支支撑功能特性设计; 中文文名:杰夫
19
JSF核心心技术-降级
• 每个服务接口口的每个方方法都有灾备降级开关; • 配置mock逻辑,返回的结果用用json格式预先设好; • 降级开关打开时将在consumer端短路RPC调用用,直接返回JSON结 果;
20
JSF核心心技术-监控
服务提供者 服务消费者 调用用情况报表
MonitorService MonitorService
新服务 实例
分配资源/部署
CAP
25
接口口设计的问题
• “无无缝将本地接口口发布为远程接口口,调用用与本地一一样”-只能是理想 • 考虑服务调用用超时异常的处理; • 考虑服务业务逻辑粒度; • 考虑服务是否幂等; • 一一些不好的接口口设计举例: • 返回值类型为Object ,实际对象类型被擦除 • 接口口声明中使用用范型参数T • 嵌套层数太多
APP1 APP2 APP3
App1
App2
App3
DB 交互通过DB来进行行
Data
Store
Data
Store
Data
Store
交互通过同步/异步接口口来进行行
为什么要打造服务平台
服务⻔门户 存活监控 调用用分析图表 服务性能数据收集
服务调用用 服务寻址 服务发布
配置查看/推送 降级 限流 负载均衡
服务消费者 服务提供者1
可用用列表 重连列表 非非健康列表
服务提供者2
13
JSF核心心技术-性能优化
• 批量处理,请求先写入入RingBuffer; • 优化线程模型,将序列化与反序列化这种耗时的操作从Netty的IO 线程中挪到用用户线程池中; • 启用用压缩以应对大大数据量的请求,默认snappy压缩算法; • 定制msgpack序列化,序列化模版,同时还支支持fast json、hessian 等多种序列化协议;
26
JSF运营的现状
• • • • 接入入4000余个接口口(按Java Interface计算); 接入入的物理机 、docker按独立立IP计算共 10000+; 每日日上百亿次的调用用量; 商品接口口:500+多个服务实例,9000+消费实例;
27
下一一步研发方方向
• • • 服务治理,根据应用用ID的一一系列管理增强; 增强接口口文文档管理,建立立接口口文文档中心心,帮助用用户使用用接口口; 增强跨语言言支支持;
28
谢谢!
Thank you! Q&A
Consumer
Callback Impl
Provider
Callback stub
12
JSF核心心技术 HA&负载均衡
• • • • 一一个服务至至少部署两个以上实例; 服务消费者运用用负载均衡算法选择服务提供者,可以设置权重; 服务消费者对服务提供者有健康监测; 服务消费者端可以配置重试机制;
注册/订阅
服务提供者1
服务消费者2
JSF协议直接调用用
服务提供者2
9
服务消费者3
服务提供者3
JSF核心心技术-RPC示示意图
proxy InterfaceImpl
ServerFilterChain
ClientFilterChain
负载均衡 链接管理 重试策略
Invoker
Client encode/序列化 ClientTransport
14
JSF核心心技术-性能优化
蓝色色一一代框架 红色色二二代框架
15
JSF核心心技术-注册中心心
A机房
服务注册
客户端
服务寻址
注册中心心数据库
配置管理
服务注册
B机房
客户端
服务寻址
配置管理
优先访问本机房注册中心心,各组件均有本地容灾缓存
16
JSF核心心技术-注册中心心
A机房
注册中心心数据库
客户端
Connection Manager
8
Web管理端
管理数据库 注册中心心数据库
Event Worker
监控数据库 index服务数据库
服务注册 服务寻址
Index Service Index Service
Monitor Service Monitor Service
配置管理
注册中心心 定期发送性能统计数据 询问注册中心心地址
服务消费者1
magic full length
协议/序列化/消息.. 消息ID 扩展描述 2000
ad cf 00 00 00 7f 00 0f 01 0a 01 00 00 00 0e 16 01 01 01 00 00 07 d0 97 91 c2 da 00 2f 63 6f 6d 2e 6a 64 2e 6a 6c… …
京东微服务实践
-杰夫服务框架
云平台 系统技术部 李鑫 lixininfo@
为何要服务化
• • • 系统规模随着业务的发展而而增⻓长,原有系统架构模式,逻辑过于 耦合不再适应; 拆分后的子子系统逻辑内聚,易于局部扩展; 子子系统之间通过接口口来进行行交互,接口口契约不变的情况下可独立立 变化;

LDS
B机房
客户端
Connection Manager
LDS
17
JSF核心心技术-配置
• • • 服务提供者列表维护,动态推送; 查看当前服务生生效的配置,动态下发新配置:权重/负载均衡算 法/各种功能开关; 服务提供者动态分组无无需重启;
18
JSF核心心技术-限流
• 每一一个服务调用用者都有可能成为潜在的DDOS攻击者; • 给服务的所有调用用者带上标示示,在系统环境变量中带上APPID; • 开发计数器服务(Counter Service),限定单位时间内最大大调用用次 数(如400次/分钟); • 限定服务端调用用最大大并发数(设定到接口口-方方法级别); • 服务端执行行时检查请求的状态,如等待时间大大于超时时间,直接丢 弃;
11
JSF核心心技术 RPC-callback
• • • TCP⻓长链接是双工工的,服务方方可以主动推送消息到调用用方方; 调用用端检测到参数列表中有Callback类型,登记相应的callback对 象;服务端收到调用用时,生生成相应的反向调用用代理; 服务端持有此代理,并在需要时调用用此代理来推送消息;
22
JSF核心心技术-监控报表(1)
23
JSF核心心技术-监控报表(2)
24
JSF核心心技术-弹性云部署
• • • 按需自自动扩展服务能力力; CAP(Cloud Application Platform)系统负责资源调度; 自自动部署系统在容器上部署业务应用用;
JSF监 控接口口 服务注 册中心心 注册 JDOS
Header Invocation Body
ServerTaskExecutor decode ServerTransport
NIO TCP⻓长链接 IO-Multiplex多路复用用
10
JSF核心心技术-协议
• • • • 采用用Netty来实现⺴网网络协议栈,异步事件通讯框架; 同一一端口口同时支支持Http、TCP协议访问,根据数据包情况挂载不同 解码器; TCP⻓长链接下使用用自自定义二二进制协议; HTTP⺴网网关来应对跨语言言访问;
3
第一一代服务框架
• • • 2012年初开始研发; zookeeper集群作为注册中心心; base on开源的服务框架;
4
Web管理端
zookeeper
2.服务消费者进行行订阅 1.服务提供者进行行注册
服务消费者1
服务提供者1
3.直接服务调用用
服务消费者2 服务提供者2
服务消费者3
服务提供者3
地址举例:WebService://172.17.3.18:20880/? interface=com.jd.arch.HelloService&group=pop&version=0.1
5
运营中暴露出的不足足
1.客户端 • • 许多逻辑放到客户端,推出新版本;有版本升级问题; watch时效问题;
相关文档
最新文档