




已阅读5页,还剩25页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2019年7月,基建全过程综合数字化管理平台技术架构框架,目录,CONTENTS,2,微服务简介,3,框架介绍,1,整体概述,4,部署运维,前言,为确保“基建全过程综合数字化管理平台”建设方案的顺利落地,落实“共享”、“共建”、“共用”指导思想,形成统一的平台框架和技术路线,基于基建工程数字化管理系统的研发成果,引入部分技术特性,开发了适合新要求的微服务架构,为后续开发工作开展提供参考。为确保“基建全过程综合数字化管理平台”开发工作的顺利推进,通过组织相关业务和技术力量集中研究讨论,整合推出了新版的微服务架构框架,以指导项目后续建设。,3,目录,CONTENTS,2,微服务简介,3,框架介绍,1,整体概述,4,部署运维,Springboot推出,Java项目开发复杂度极高;Java项目的维护非常困难;在云时代如何实现项目的快速部署以及快速启动;即便使用了大量的开发框架,发展我们的开发也没有少多少。当所有人认为Spring不在前进的时候,spring推出了微架构实现的两个重要开发框架:springboot、springcloud。,4,长期以来,Java的开发一直让人诟病:,Springboot项目简介,快速创建独立运行的spring项目以及与主流框架集成使用嵌入式的Jetty容器,应用无需打成war包Starters自动依赖与版本控制大量的自动化配置,简化开发,也可以修改默认值无需配置xml,无代码生成,开箱即用准生成环境的运行时应用监控与云计算的天然集成,4,Springboot新特性:,Springboot核心注解,Springboot的项目一般都会有*.Application的入口类,入口类中会有main()方法,这是标准的java应用程序的入口方法。,4,入口类注解SpringBootApplication是springboot的核心注解,它其实是一个组合注解,Springboot核心注解,Springboot的项目提供了大量注解,熟练使用这些注解,对系统的开发有很大帮助。,4,ComponentScan扫描注解,定义扫描spring路径,默认会扫描SpringBootApplication的同级目录以及它的子目录。EnableAutoconfigeration,开启自动配置,开启后,springboot会根据配置,自动引入相关依赖的包。Configuration配置注解,相当于定义一个xml文件Bean相当于原来xml里的一个bean定义Autowired它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。通过Autowired的使用来消除set,get方法,Springboot项目配置,结合SG-UAP的使用,把Springboot的项目的常规操作步骤总结如下:,4,第一步引入依赖包SG-UAP集成了大部分需要依赖的jar包,只要配置主项目的perties文件里的pluginPath属性指向本地的资源库(默认在UAPStudio安装目录/common-lib下)并且在主项目的uapdepload.gradle文件里判断是否引用一些常用集成功能的jar包。这个判断的开关就在子项目的perties里。第二步入口类添加注解带SpringBootApplication注解启动程序的入口。引入新功能模块时,需要在这个类上添加开启注解,告诉程序,启动时加载对应的依赖功能类。第三步配置全局配置文件springboot采用约定大于配置的策略。对于需要的属性则可以在全局配置文件perties,Springcloud简介,SpringCloud是一个基于SpringBoot实现的云原生应用开发工具,它为基于JVM的云原生应用开发中涉及的配置管理、服务发现、熔断器、智能路由、微代理、控制总线、分布式会话和集群状态管理等操作提供了一种简单的开发方式。,4,优点:集大成者,SpringCloud包含了微服务架构的方方面面。约定优于配置,基于注解,没有配置文件。轻量级组件,SpringCloud整合的组件大多比较轻量级,且都是各自领域的佼佼者。开发简便,SpringCloud对各个组件进行了大量的封装,从而简化了开发。开发灵活,SpringCloud的组件都是解耦的,开发人员可以灵活按需选择组件。缺点:项目结构复杂,每一个组件或者每一个服务都需要创建一个项目。(设计阶段需要注意,根据业务需要合理建立微服务,不要过度拆分)部署门槛高,项目部署需要配合Docker等容器技术进行集群部署,而要想深入了解Docker,学习成本高。,Springcloud简介,SpringCloud是一个基于SpringBoot实现的云原生应用开发工具,它为基于JVM的云原生应用开发中涉及的注册与发现、负载均衡、API网关、REST调用、容错处理、统一管理配置、服务跟踪等操作提供了一种简单的开发方式。,4,Springcloud简介,springcloud是微服务架构的集大成者,将一系列优秀的组件进行了整合。基于springboot构建,对我们熟悉spring的程序员来说,上手比较容易。,4,Ribbon:主要提供客户侧的软件负载均衡算法,关键点就是将外界的rest调用,根据负载均衡策略转换为微服务调用。Hystrix:断路器,保护系统,控制故障范围Config:SpringCloudConfig提供服务器端和客户端。服务器存储后端的默认实现使用git,它轻松支持标签版本的配置环境,以及可以访问用于管理内容的各种工具,Eureka(服务注册与发现):由服务端和客户端组成。在应用启动时,Eureka客户端向服务端注册自己的服务信息,同时将服务端的服务信息缓存到本地。客户端会和服务端周期性的进行心跳交互,以更新服务租约和服务信息,Springcloud简介,springcloud的Netflix中提供了两个组件实现软负载均衡调用:ribbon和feign,Feign采用接口的方式,只需要创建一个接口,然后在上面添加注解即可,使得编写客户端感觉就在调用本地方法一样。Feign对请求进行了封装,对需要权限验证的请求,Ribbon处理起来比较麻烦,采用Feign组件,只要少许配置即可。Feign对传输内容做了封装和转换。方便开发者传递复杂的参数。,Feign的优点:Feign中包含了Ribbon:feign里面已经包含了ribbon,也就是Ribbon有的功能,Feign都有。Feign是在Ribbon的基础上进行了一次改进,是一个使用起来更加方便的HTTP客户端。,Springcloud简介,SpringCloud采用REST是一种架构风格,REST专门针对网络应用设计和开发方式,以降低开发的复杂性,提高系统的可伸缩性,4,REST专门针对网络应用设计和开发方式,REST提出设计概念和准则为:,网络上的所有事物都可以被抽象为资源(resource)每一个资源都有唯一的资源标识(resourceidentifier),对资源的操作不会改变这些标识所有的操作都是无状态的,目录,CONTENTS,2,微服务简介,3,框架介绍,1,整体概述,4,部署运维,建设原则,基建全过程综合数字化管理平台建设由公司统一组织,遵循“标准统一、分级建设、成果复用、融会贯通”的原则。,7,建设思路,框架整体分为应用层、服务层、数据库和数据层服务层,层次之间逐层对上一层提供服务。其中数据库和数据层服务层原则上不对外部暴露。,9,数据层具体建设内容是基于数据库的数据,为服务提供统一的数据操作方法,以微服务的方式为服务层提供数据。数据层不仅仅包含数据库,也包含对外提供的数据服务。数据层原则上只对基建全过程总部服务层的提供数据服务。,服务层具体建设内容是构建支撑业务应用的基础公共服务和业务支撑服务;服务层对应用层提供服务,也依赖数据层的数据服务。服务层对外暴露接口,符合接入条件的开发者可以调用此层服务。,应用层具体建设内容是建设满足各级用户需求的应用功能,由统建应用和个性化应用共同组成。应用层,根据业务需求,调用服务层的基础公共服务和业务支撑服务,实现自身功能,满足用户需求。,技术实现,为了尽量减轻项目开发工作量,框架基于SG-UAP建立的gradle项目进行分层拆分,充分利用代码自动生成功能。,9,gradle项目分为主项目和项目,主项目已经建好。下面介绍项目创建过程。,在主项目上点击右键-new,选择“微服务项目(平级),输入项目名,输入软件包名,创建好的项目,及其入口类,技术实现,SG-UAP的创建MOM模型功能,提供了方便的基础代码自动生成功能,在此基础上开发将进一步提高开发效率,9,在主项目上点击右键-new,选择“微服务场景代码”,选择已经创建好的MOM场景模型,选择数据库类型,选择要生成代码的业务对象,技术实现,此时项目里就会出现,我们选的业务对象生成的代码。其中包括vo,po(domain目录下)、repositories、services,controller。基于这这些目录,进行分层拆分。,9,拆分方法:controller做服务基础。主要实现业务逻辑的实现。Services:做数据层模板,提供数服务。,技术实现,拆分方法:Services:做数据层模板,提供数服务,9,数据层实现方法:Services类加上RestController注解;配置访问路由RequestMapping(/paudit/tbAuditLog)在方法上加上对于路径和参数RequestMapping(value=/eventId),技术实现,拆分方法:controller做服务基础。主要实现业务逻辑的实现。,9,服务层实现方法:服务层加上FeignClient接口定义,类上接口上注解调用服务的访问路由。接口方法上,注解方法参数。这样,就可以在本服务里像使用本地方法一样使用远程服务了。注意,接口的名称和参数,要和被调用的提供方保持一致。,技术实现,像使用本地方法一样使用远程服务。,9,技术路线,设计原则,遵从公司信息化建设相关技术政策,基建全过程数字化管理平台按复用和新增分别介绍采用的技术路线,如下表。,38,目录,CONTENTS,2,微服务简介,3,框架介绍,1,整体概述,4,部署运维,日志追踪,日志追踪,采用SpringCloudSleuth,在众多的服务中,跟进一个请求到底有哪些服务参与,参与的顺序又是怎样的,从而达到每个请求的步骤清晰可见,出了问题,很快定位。,9,红框内部分applicationname,traceId,SpanId,SpanExport,可以追踪根据日志追踪服务调用关系。,应用追踪,spring-cloud-sleuth+zipkin追踪服务,采用可视化界面,实现应用的追踪和性能分析,9,启动界面,此时无服务调用,有服务调
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年安全员B证习题集及答案
- 2025年建筑装饰工程师资格考试试题及答案解析
- 2025年建筑防火安全检查员职业资格考试试题及答案解析
- 2025年国际商务专员职业能力水平考核试题及答案解析
- 2025年林业草原会计实务模拟试卷及解析
- 2025年广告策划主管职业资格考试试题及答案解析
- 2025年合成氨工艺笔试重点突破及模拟题解析
- 课件专利申请
- 课件三维展示
- 如何做跳绳直播教学课件
- 2025年残联招聘笔试大纲解读与备考指南
- 2025版厂房装修施工安全责任合同模板
- GB 16808-2025可燃气体报警控制器
- 医疗机构重点部门感染预防与控制标准WST860-2025解读宣贯
- 气体灭火系统日常维护管理手册
- 2025年汽车后市场行业当前市场规模及未来五到十年发展趋势报告
- 退伍留疆考试题库及答案
- 工程造价咨询服务投标方案(技术方案)
- YYT 0681.2-2010 无菌医疗器械包装试验方法 第2部分:软性屏障材料的密封强度
- 《中华人民共和国工会法》工会法律知识竞赛题库120题(含答案解析)
- DB43∕T 291-2006 桃源大叶茶栽培技术规程
评论
0/150
提交评论