《微服务入门ppt课件.pptx》由会员分享,可在线阅读,更多相关《微服务入门ppt课件.pptx(38页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。微服务入门介绍SpringCloud林可斌“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。主要内容一、服务架构设计的发展二、微服务简介三、微服务架构工作流程四、springCloud介绍“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网
2、应用为重点的“群众性治安防控工程”。一、服务架构设计的发展“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。单体架构“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。 单一代码库、IDE友好、看着简单 容易部署 开发模型简单,一份代码库进行编码、构建和部署 技术栈单一单体架构的特点和好处“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化
3、为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。 庞大的代码库,关系错综复杂 交付周期长 扩展能力与弹性受限 新技术与工具框架使用会受限 维护成本高单体架构的问题“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。服务化架构“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。 对业务进行分层,通常分为表现层(前端)、公共服务、业务逻
4、辑服务、数据访问层等 对业务进行解耦,通过Pub-Sub或RPC进行服务间调用关系解耦 服务独立性,多数服务可以进行独立打包发布 每个服务的技术栈单一 部署简单,具备可伸缩性服务化架构的特点和好处“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。 对于部分服务而言,代码库依然很庞大 打包、发布、部署流程不足够好 维护团队间沟通受阻,技术经验有效传递不够 服务增多对开发人员不够友好服务化架构的问题“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑
5、、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。微服务架构服务注册 服务发现 服务调用“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。 MVC SOA Micro services架构设计发展“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。 MVC SOA Micro services视图、业务逻辑前后端分离架构设计发展“雪亮工程
6、是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。 MVC SOA Micro services视图、业务逻 大型系统分层辑前后端分离 解耦,标准接 口调用,分布 式系统架构设计发展“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。 MVC SOA Micro services视图、业务逻 大型系统分层云计算产物,辑前后端分离 解耦,标准接 关注敏捷交付 口调用,分布 和部署
7、速度、 式系统频次架构设计发展“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。二、微服务简介“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。 suite of small services:由一系列小服务组成 running in its own process: 每个服务运行于自己的独立进程 built around business capabilities
8、:围绕着业务功能进行建模 independently deployable:每个服务可进行独立部署 bare minimum of centralized management:最低限度集中种管理“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。微服务的特征 每个微服务都是业务完整的每个微服务都是业务完整的 接口及界面呈现、业务逻辑、数据管理 每个微服务仅仅对一个业务负责每个微服务仅仅对一个业务负责 产品服务、评价服务、支付服务、订单服务 每个微服务接口明确定义每个微服务接口明确
9、定义 接口消费只关注接口,对微服务不具备依赖 独立部署、升级和伸缩独立部署、升级和伸缩“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。服务的独立性与自主性“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。微服务的独立性与自主性微服务间的独立性是关键代码库独立技术栈独立可伸缩性、可扩展性独立还有业务功能等“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥
10、平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。独立的代码库每个微服务具备自己的代码仓库由对应团队开发者维护编译、打包、发布及部署都很快服务启动迅速在各个服务的代码库间没有交叉依赖“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。技术栈对立每个微服务都有自己独立的技术栈来实现根据业务实现需求来选中最合适的技术栈团队可以尝试新的技术、工具或者框架所选的技术栈一般来说都很轻量级不需要同一标准化技术栈的选择。无需针对技术选型而纠关
11、注业务实现“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。独立的可伸缩性每个微服务都可以独立的伸缩更加直观定位性能瓶颈数据库分片可以根据需求来“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。业务功能独立每个微服务可以在不影响其他微服务的情况下进行功能扩展例如更新新版本界面或者某个微服务中的某项功能时,无需更新整个系统可以进行整个业务功能的重写,并替换之*要保证接
12、口明确定义且稳定要保证接口明确定义且稳定“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。微服务优点每个服务足够内聚,足够小,代码容易理解、开发效率提高服务之间可以独立部署,微服务架构让持续部署成为可能;每个服务可以各自进行x扩展和z扩展,而且,每个服务可以根据自己的需要部署到合适的硬件服务器上;容易扩大开发团队,可以针对每个服务(service)组件开发团队;提高容错性(fault isolation),一个服务的内存泄露并不会让整个系统瘫痪;系统不会被长期限制在某个技术栈上。
13、“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。微服务不足“微服务”强调了服务大小业务逻辑。分区数据库测试“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。三、微服务架构工作流程“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。微服务架构工作流程 设
14、计阶段设计阶段 将产品功能拆分为若干服务为每个服务设计API接口 开发阶段开发阶段实现API接口(包括单元测试)开发UI原型(页面) 测试阶段测试阶段前后端集成验证产品功能 部署阶段部署阶段发布测试环境发布生产环境“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。四、springCloud介绍“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。springCloud介
15、绍Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring并没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基
16、础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。springCloud主要成员主要的小弟有:Spring Cloud Config、Spring Cloud Netflix(Eureka、Hystrix、Zuul、Archaius)、Spring Cloud Bus、Spring Cloud for Cloud Foundry、Spring Cloud Cluster、Spring Cloud Consul、Spring Cloud Security、Spring Cloud Sleuth、Spring Cloud Data Flow、Spring Cloud Stream、Sp
17、ring Cloud Task、Spring Cloud Zookeeper、Spring Cloud Connectors、Spring Cloud Starters、Spring Cloud CLI,每个小弟身怀独门绝技武功高强下面来做一一介绍。“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。Spring Cloud Netflix这可是个大boss,地位仅次于老大,老大各项服务依赖y于它,与各种Netflix OSS组件集成,组成微服务的核心,它的小弟主要有Eureka,
18、 Hystrix, Zuul, Archaius“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。Netflix Hystrix熔断器,容错管理工具,旨在通过熔断机制控制服务和第三方库的节点,从而对延迟和故障提供更强大的容错能力。比如突然某个小弟生病了,但是你还需要它的支持,然后调用之后它半天没有响应,你却不知道,一直在等等这个响应;有可能别的小弟也正在调用你的武功绝技,那么当请求多之后,就会发生严重的阻塞影响老大的整体计划。这个时候Hystrix就派上用场了,当Hystrix发
19、现某个小弟不在状态不稳定立马马上让它下线,让其它小弟来顶上来,或者给你说不用等了这个小弟今天肯定不行,该干嘛赶紧干嘛去别在这排队了。“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。Netflix Eureka服务中心,云端服务发现,一个基于 REST 的服务,用于定位服务,以实现云端中间层服务发现和故障转移。这个可是springcloud最牛鼻的小弟,服务中心,任何小弟需要其它小弟支持什么都需要从这里来拿,同样的你有什么独门武功的都赶紧过报道,方便以后其它小弟来调用;它的好处是
20、你不需要直接找各种什么小弟支持,只需要到服务中心来领取,也不需要知道提供支持的其它小弟在哪里,还是几个小弟来支持的,反正拿来用就行,服务中心来保证稳定性和质量。“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。Netflix ZuulZuul 是在云平台上提供动态路由,监控,弹性,安全等边缘服务的框架。Zuul 相当于是设备和 Netflix 流应用的 Web 网站后端所有请求的前门。当其它门派来找大哥办事的时候一定要先经过zuul,看下有没有带刀子什么的给拦截回去,或者是需要找
21、那个小弟的直接给带过去。“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。Spring Cloud Config俗称的配置中心,配置管理工具包,让你可以把配置放到远程服务器,集中化管理集群配置,目前支持本地存储、Git以及Subversion。就是以后大家武器、枪火什么的东西都集中放到一起,别随便自己带,方便以后统一管理、升级装备。“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性
22、治安防控工程”。Spring Cloud 的优势微服务的框架那么多比如:dubbo、Kubernetes,为什么就要使用Spring Cloud的呢?产出于spring大家族,spring在企业级开发框架中无人能敌,来头很大,可以保证后续的更新、完善。比如dubbo现在就差不多死了有spring Boot 这个独立干将可以省很多事,大大小小的活spring boot都搞的挺不错。作为一个微服务治理的大家伙,考虑的很全面,几乎服务治理的方方面面都考虑到了,方便开发开箱即用。Spring Cloud 活跃度很高,教程很丰富,遇到问题很容易找到解决方案轻轻松松几行代码就完成了熔断、均衡负责、服务中心
23、的各种平台功能“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。与Spring Boot的关系Spring boot 是 Spring 的一套快速配置脚手架,可以基于spring boot 快速开发单个微服务,Spring Cloud是一个基于Spring Boot实现的云应用开发工具;Spring boot专注于快速、方便集成的单个个体,Spring Cloud是关注全局的服务治理框架;spring boot使用了默认大于配置的理念,很多集成方案已经帮你选择好了,能不配置就不配置,Spring Cloud很大的一部分是基于Spring boot来实现“雪亮工程是以区(县)、乡(镇)、村(社区)三级综治中心为指挥平台、以综治信息化为支撑、以网格化管理为基础、以公共安全视频监控联网应用为重点的“群众性治安防控工程”。如何搭建一个微服务框架?
限制150内