10 技术培训Choerodon Framework V1-内部培训_第1页
10 技术培训Choerodon Framework V1-内部培训_第2页
10 技术培训Choerodon Framework V1-内部培训_第3页
10 技术培训Choerodon Framework V1-内部培训_第4页
10 技术培训Choerodon Framework V1-内部培训_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、TECH.研发中心,目录,目录,1.1 框架介绍,Service1,Service3,Service2,应用,Cloud Bus消息管理,Hystrix熔断,Eureka服务发现,Swagger接口管理,Turbine,Ribbon负载均衡,应用服务1,JWT Token Relay,Access Check,Load Balancer (Ribbon),服务网关 Zuul Server,应用服务2,认证服务,系统/租户,用户,角色,服务权限/菜单,LDAP用户,其他-更细服务,微 服 务,营销应用,SSO登录,访问菜单,调用各应用服务,调用验证服务获取UUID,调用访问服务,UUID,UUI

2、D,其他应用,Choerodon Framework 基于微服务架构模式,使得每个服务独立,可灵活扩展。和单体架构不同,微服务架构是由一系列职责单一的细粒度服务构成的分布式网状结构,其技术选型是去中心化的。在这种模式下,每个微服务团队有充分自由根据自身服务的需求和行业发展状况选择适合的技术栈。可实现服务注册、发现和负载均衡。,控制项目复杂度 将原来的单体式应用拆解成多个服务运行在不同进程中,这样可以只针对相应的服务进行修改,部署对应的服务进程,控制复杂性,业务模块化,加速迭代速度 松耦合的结构,让每个开发团队都可以根据自身情况去选择更适合的技术与工具,进行更有效更灵活的开发。,独立部署,提升效

3、率 将复杂的业务逻辑根据功能剥离开来,让它们具备独立的进程,每个服务也就可以独立的编译打包部署。,错误隔离 每个服务都具有独立性,提高系统的容错性。不会因为单一服务发生延迟,导致所有应用资源(线程,队列等)被耗尽,造成雪崩效应。,1.2 架构演变,水平分层架构(单体架构) 垂直分层架构(分布式架构) 面向服务架构(SOA) 前后端分离架构 微服务架构,All in one,Vertical,SOA,Microservice,1.2 架构演变 单体架构,1.2 架构演变 微服务架构,1.3 微服务架构设计模式,1.4 微服务划分,微服务架构的目标是加速软件开发通过允许持续交付/部署。 简化了测试

4、和组件可以独立部署 每个团队必须自主拥有一个或多个服务 服务体系结构是相对稳定的 开发团队是围绕交付业务价值,而不是技术特点 服务是有凝聚力和松散耦合,但是这些好处不会自动保证。他们只能通过应用程序的仔细的功能分解成服务。,1.4 微服务划分 按照业务划分,定义服务相应的业务功能。 业务能力是一种从业务架构建模概念。 业务能力通常对应于一个业务对象。 业务功能经常被组织成一个多级层次结构。 eg.: 订单管理负责订单,用户管理负责用户,1.4 微服务划分 按照领域划分,服务对应领域驱动设计(DDD)的子域。 DDD是指应用程序的问题空间-业务领域。 领域是由多个子域。 每个子域对应于不同的业务

5、的一部分。 领域的划分需要对业务能力有一定的理解。,1.5 微服务划分 注意事项,用微服务需要注意业务边界,一般关联性强的业务不要拆分成微服务而是需要放在一个服务里,这样可以避免服务于关联服务间的频繁Join,应用起来效率低 互联网企业的一些应用其实比较简单,表一般30张不到甚至更少,只是有海量用户、高并发应用需求,这种比较适合微服务,可以灵活做服务发布、升降级服务。可以按照应用颗粒度去拆分服务 企业内部应用,一般不适合应用微服务。要用可以参考EBS的各个模块,模块内关联性强,不拆分而作为一个服务。模块间可以拆分服务,模块与模块间的服务Join,也尽量避免直接在一个服务里Join,而是通过在应

6、用层面去考虑服务分步调用,比如先查出采购订单信息,另外再点击查看明细能查到库存信息,而非一次性就将采购和库存都查出来。 需要注意持续监控服务质量,去发现性能问题、开发问题等,再不断迭代去拆分服务 微服务的数据一致性,一般是先考虑实现最终一致性,可以用异步补偿机制,监控消息队列中的消息执行情况,根据消息执行的不同阶段,去自动回滚到原始状态做补偿 与SOA的区别,SOA中有服务合并(Split-Join)、服务报文&协议转换,能更好的支持更细颗粒度的服务。这些微服务暂时还达不到;微服务具备服务链的概念,可以更好的监控一个流程的情况,目录,2.1 整体架构,API Service,Composite

7、 Service,Core Service,Choerodon Framework架构: 基于Spring Cloud Oauth Server基于Spring Security Discovery使用Eureka Configuration Server使用Spring Cloud默认的Config Server. AMQP Message Monitor Dashboard Trace Analysis 名词: CB=Circuit Breaker (Hystrix)断路器 LB=Load Balancer (Ribbon)负载均衡,基础架构组件,辅助组件(功能),业务功能,目录,3.1

8、服务清单,3.2 组件:服务注册与服务发现,服务调用方,LB,服务发现,负载均衡与服务调用,服务注册与健康检查,服务注册中心,服务注册中心,服务注册中心,服务提供方,服务提供方,服务提供方,3.2 组件:服务网关,主要功能: 服务反向路由 容错 安全认证 限流 API集中管理 灰度发布,3.2 组件:认证服务,Client,api-gateway,认证服务,用户数据,UUID转换为内部JWT,gateway-helper,基于OAuth2.0 + Spring Security实现认证与授权 外部使用Oauth uuid token,内部服务之间使用JWT,各个服务处理JWT,3.2 组件:服

9、务配置中心,1.提交配置更新,2. 通知配置更改,3.发送消息通知 服务更新配置,4.收取消息,5.拉取最新配置 更新服务配置,管理服务,配置中心,Spring Cloud Bus,Service A,Service B,Service C,Service A,Service A,6.拉取最新配置,3.2 组件:服务状态监控,服务A,服务B,服务C,服务网关,AMQP Message Bus,性能数据收集 Turbine,Hystrix Dashboard,3.3 组件:调用链,Client,API Gateway,AMQP Message Bus,调用链日志分析 Zipkin Server,

10、3.3 功能:权限,角色分为三层,分别是全局层,组织层,项目层。 权限同样分为三层。 每一层级的角色只能分配对应层级的权限。,3.3 功能:权限,源码管理,项目,组织,资源,源码管理,instance_a,instance_b,project_1,project_2,user_a code.admin,user_b code.admin,organization,ldap,3.4 可靠事件数据一致性-本地事件表,Service,业务表,事件表,本地事务,事件投递,E1,E2,E3,E4,Service,业务表,1.同一个本地事务中记录业务数据和事件数据,2.事件投递服务向消息队发送消息,如果发

11、送成功能,删除事件。,3.订阅事件,使用消息队列ack,或类似机制保证消息消费,本地事务保证业务表与事件表的一致性,不会产生不一致,事件投递分为两个步骤: 1,发送消息 2,更新事件表,删除已经处理的事件 这里会有一个不一致的可能性,如果1成功能,2不成功能,则会造成消息重复发布,这个可以由消息处理服务的幂等性来保证,消息处理分为两个步骤: 1,执行消息所需的业务逻辑 2,返回事件消息ack,标记已经消费 这里的不一致性为1成功,2不成,会造成消息的重复处理,这里面需要保证处理逻辑的幂等性,一个消息,一次只处理一次。,3.4 可靠事件数据一致性-外部事件表,Service,业务表,E1,E2,

12、E3,E4,Service,业务表,事件服务,事件消息,事件投递,事件表,事件确认,1,发事件开始消息,2,开始业逻辑,3,发事件完成消息,4,将已经完成的事件,发送到消息队列,5,消费消息完成一致性业务逻辑,6,确认开始状态的消息是否完成,产生数据不一致的情况有: a,步骤1完成,2,3都没有执行 b,步骤1,2完成,3没有执行 上面两种情况,需要消息产生服务提供事件确认接口,事件服务在事件表中发现消息的状态是开始,而且在一定时间内没有标记为完成,则会调用消息产生服务的确认接口进行确认。,4,5,这两个步骤与本地事件表的逻辑一致。,目录,4.1 组件清单,目录,5.1 开发流程,开发环境搭建

13、 软件安装(Windows) 基础环境准备 数据初始化 运行 开发Demo程序 项目需求 新建项目 初始化数据库 编写代码类 集成Choerodon项目配置 swagger测试,5.2 开发规范,本地开发开启两种规范检查 一种为sonarQube的规范检查 一种为基于sun和google的checkStyle规范检查。,开发人员local,5.3 开发模式,K8S服务,服务网关,认证 服务,注册 服务,调用链 监控,应用 监控,配置 服务,AMQP消息服务,用户服务,框架服务,管理服务,Mysql,Redis,Kafka,vpn,服务网关,用户服务 本地开发,浏览器,服务网关,5.4 资料参考

14、,Spring boot:https:/docs.spring.io/spring-boot/docs/1.5.3.RELEASE/reference/htmlsingle/ Spring cloud:http:/cloud.spring.io/spring-cloud-static/Dalston.SR4/single/spring-cloud.html Docker: 开发文档:https:/rdc.hand-,目录,6.1 DevOps 流程,1.提交代码,2.触发gitlab-ci,Gitlab代码库,Gitlab CI,编译,初始化测试数据,测试,生成Docker镜像,部署到Test环境,3.使用Kubernetes 调度docker容器 执行编译,测试,打包,Docker镜像

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论