微服务知识的系统解析.docx

上传人:王** 文档编号:1436930 上传时间:2024-07-09 格式:DOCX 页数:12 大小:84.30KB
下载 相关 举报
微服务知识的系统解析.docx_第1页
第1页 / 共12页
微服务知识的系统解析.docx_第2页
第2页 / 共12页
微服务知识的系统解析.docx_第3页
第3页 / 共12页
微服务知识的系统解析.docx_第4页
第4页 / 共12页
微服务知识的系统解析.docx_第5页
第5页 / 共12页
微服务知识的系统解析.docx_第6页
第6页 / 共12页
微服务知识的系统解析.docx_第7页
第7页 / 共12页
微服务知识的系统解析.docx_第8页
第8页 / 共12页
微服务知识的系统解析.docx_第9页
第9页 / 共12页
微服务知识的系统解析.docx_第10页
第10页 / 共12页
亲,该文档总共12页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《微服务知识的系统解析.docx》由会员分享,可在线阅读,更多相关《微服务知识的系统解析.docx(12页珍藏版)》请在优知文库上搜索。

1、(3)易扩展、可前后端分离,应对高并发、大流量的场景下可以快速扩容服务节点增大吞吐;(4)快速迭代、试错成本低,可以实现对业务的快速响应.微服务技术架构包括网关、注册中心、配置中心、破路监控、流量控制等内容,整体如下:ucts耳三=三IICCtfXlCIMIMa-6-A*rvMOrMMVMfXflVMCMC三iH三三三-KKAmm/*jH回01图:微服若框架(1)服务集群,根据业务功能模块拆分成一个个独自的项目,每个项目完成独自的功能,每个项目又称为独自的服务,每个服务构成了一个服务集群;(2)注册中心,应用系统拆分成多个服务之后,每个服务都有独立的服务信息(IP地址、端口以及功能等),如何让

2、对方知悉服务信息,需要注册中心模块对服务进行整体管理.每个服务在注册中心中注册,当用户进行调用服务,它首先到注册中心拉取服务信息再去调用相对于的服务.U志标准日志采集日志处理日志存储日志分析应用展示物理设,茶砌果!四次军堂如B日志分笑nw日均侨BJJ218B5G分析黑示中闾件从架构的完整性来说,不管是单体应用还是循服务都需要对中间件进展集中管控的,常用的中间件类型有:消息队列服务、缓存服务、分布式文件服务、任务调度服务、流程引擎服务、搜索服务等.对于中间件的管理主要包括标准统一的高可用部署、性能优化和安全加固、调用与被调用的依赖关系以及配置管理等。图:微服务组件全家桶2.2服务网格从个人工作经

3、历来看,由于Dubbo的多年停更,给了SpringCloud在国内的快速发展期,最起码我所熟悉的3家公司在进行系统用构时,皆受限于Dubbo的停更转为使用SpringBoot并逐渐发展为全套的SpringCloud.当然SpringCloud也是非常优秀的框架组合.SpringCloud是分布式微服务架构的一站式解决方案,它提供了一套简单易用的编程模型,使我们能在SpringBoot的基础上轻松地实现微服务系统的构建.SpringCloud被称为构建分布式截服务系统的“全家桶,它并不是某一门技术,而是一系列微服务解决方案或框架的有序集合。它将市面上成熟的、经过验证的微服务框架整合起来,并通过S

4、pringBoot的思想进行再封装,屏蔽掉其中豆杂的配置和实现原理,最终为开发人员提供了一套简单易懂、易部若和易维护的分布式系统开发工具包.SpringCloud中包含了spring-cloud-config、spring-cloud-bus等近20个子项目,提供了眼务治理、服务网关、智能路由、负载均衡、断路器、监控跟踪、分布式消息队列、配2S管理等领域的解决方案。SpringCloud本身并不是一个拿来即可用的框架.它是一套微服务规范,共有两代实现:SpringCloudNetflix是SPringCloud的第一代实现,主要由Eureka、Ribbon、Feign、Hystrix等组件组成

5、;SpringCloudAlibaba是SpringCloud的第二代实现,主要由Nacos、Sentinel.Seata等组件组成.SpringCloud组件描述SpringCloudNetfliEurekaSpringCloudNetflix中的服务治理组件,包含服务注册中心、服务注册与发现机制的实现.SpringCloudNetfliRibbonSpringCloudNetflix中的服务调用和客户端负载均衡组件.SpringCloudNetfliHystrixSpringCloudNetfIiX的容错管理组件,为服务中出现的延迟和故障提供强大的容错能力.SpringCloudNetfl

6、iFeign基于Ribbon和Hystrix的声明式服务调用组件.SpringCloudNetfliZuulSpringCloudNetfIiX中的网关组件,提供了智能路由、访问过滤等功能.SpringCloudGateway一个基于Spring5.0,SpringBoot2.0和ProjectReactor等技术开发的网关框架,它使用Filter链的方式提供了网关的基本功能,例如安全、监控/指标和限流等.SpringCloudConfigSpringCloud的配置管理工具,支持使用Git存储配置内容,实现应用配置的外部化存储,并支持在客户端对配置进行刷新、加密、解密等操作.SpringCl

7、oudBusSpringCloud的事件和消息总线,主要用于在集群中传播事件或状态变化,以触发后续的处理,例如动态刷新配置.SpringCloud组件描述SpringCloudStreaSpringCloud的消息中间件组件,它集成了ApacheKafka和RabbitMmQ等消息中间件,并通过定义绑定器作为中间层,完美地实现了应用程序与消息中间件之间的隔施,通过向应用程序褰露统一的Channel通道,使得应用程序不需要再考虑各种不同的消息中间件实现,就能轻松地发送和接收消息。SpringCloudSleutSpringCloud分布式链路跟踪组件,能够完美的整合TWitter的Zipkin.

8、hSpringCloudAlibabaSpringCloudAlibaba是阿里巴巴结合自身丰富的微服务实线而推出的微服务开发的一站式解决方案,是SpringCIoud第二代实现的主要组成部分.SpringCloudAlibaba吸收了SpringCloudNetflix的核心架构思想,并进行了高性能改进.自SPringQoudNetfIix迸入停更维护后,SPringCIoudAIibaba逐渐代替它成为主流的微服务框架。SpringCloudAlibaba包含了多种开发分布式微服务系统的必需组件:SpringCloudAlib描述aba组件Nacos阿里巴巴开源产品,一个更易于构建云原生应

9、用的勃态服务发现,配置管理和服务管理平台。SpringCloudAlib描述aba组件Sentinel阿里巴巴开源产品,把流量作为切入点,从流量控制,熔断降级,系统负载保护等多个维度保护服务的稳定性.RocketMQApacheRocketMQ是一款基于Java的高性能、高吞吐量的分布式消息和流计管平台.DubboApacheDubbo是一款高性能的JavaRPC框架。Seata阿里巴巴开源产品,一个易于使用的高性能微服务分布式事务解决方案.AlibabaCloudOSS阿里云对釜存储服务器(ObjeCtStorageService,简称OSS)r是阿里云提供的海量.安全、低成本、高可做的云存

10、储服务.AlibabaCloudSch阿里中间件团队开发的一款分布式调度产品,支持周期性的任务与固定时间edulerx点触发任务.通过SpringCIoudAIibaba的这些组件,我们只不要添加一些注解和少量配百,就可以将SpringCloud应用接入阿里微服务解决方案,通过阿里中间件来迅速措建分布式应用系统。SpringCloudAlibaba的应用场景如下:大型豆杂的系统,例如大型电商系统;高并发系统,例如大型门户网站、商品秒杀系统;需求不明确,且变更很快的系统,例如创业公司业务系统等.SpringCloud两代实现组件对比如下:组件SpringCIoud(Netflix)SpringC

11、IoudAIibaba(Alibaba)注册中心Eureka(2.0孵化失败)NacosDiscovery(性能更好,感知力更强)消息中间件无(第三方替代方案:Qbbitmq)RocketMQ分布式事务解决方案无(第三方替代方案:2PC)Seata分布式调度服务无(第三方替代方案:xxl-job)AlibabaCloudScheduIerX分布式配JS中心SpringCIoudConfig(搭建过程复杂,约定过多,无可视化界面,上手难点大)NacosConfig(搭建过程简单,有可视化界面,配置管理更简单,容易上手)熔断降级Hystrix(停更进维)Sentinel(可视化配置,上手简单)网关

12、Zuul(停吏进维)gateway(性能为Zuul的1.6倍)负载均衡Ribbon(停更进维)SpringCloud1.oadbalancer(用于代替Ribbon)微服务工作流程以SpringCIoud为例,参考CSDN博主(小陈在这儿、WeiXin_55758948)的一幅图,简述微服务的工作流程,具体如下:ZuuiHX三各个组件的功能作用如下:EUreka:各个服务启动时,EurekaClient都会将服务注册到EurekaServerr并且EurekaClient还可以反过来从EurekaServer拉取注册表,从而知道其他服务在哪里Ribbon:服务间发起请求的时候,基于Ribbon

13、做负载均衡,从一个服务的多台机器中选择一台FeignIS于Feign的动态代理机制,根据注解和选择的机器,拼接请求UR1.地址,发起请求Hystrix:发起请求是通过Hystrix的线程池来走的,不同的服务走不同的线程池,实现了不同服务调用的隔寓,避免了服务雪崩的问题ZUUl:如果前端、移动端要调用后端系统,统一从Zuul网关进入,由Zuul网关转发请求给对应的服务其大致步骤为:(1)步骤一:服务注册,每个微服务部署有注册中心的客户端,将该服务的信息注册到注册中心,包括服务名称、地址、端口号等内容;(2)步骤二:服务发现,在注册中心完成服务注册后,其他服务即可发现该服务并且根据需要进行调用;(

14、3)步骤三:负载均衡,多个服务组成服务集群,其他服务在进行调用的时候需要通过负载均衡调用集群而非单个服务,服务均衡负责同一集群内多个服务的调用策略;(4)步疆四:服务调用,即服务在相互间进行调用;(5)步泰五:流最控制,服务间调用存在服务不可用、服务达到瓶颈等问题,需要通过熔断、限流、降级等措施处理,确保应用整体可用.(6)步骤六:网关路由,系外部应用调用微服务时,通过网关策略路由至具体服务进行响应.2.4 框架选择建议关于微服务的框架、组件的选择,建议技术团队内部进行头脑风品式的讨论,结合各种框架、组件的优劣势以及社区发展趋势,选择最熟悉、最适用的植架及组件.从个人工作经历来看,大致有如下几

15、个小建议:(1)配置中心的选择,建议NacosConfig,一方面是由于SpringCIoudConfig过于庞大、夏杂,不适用,另一方面Apollo处于停更,相比而言Nacos更好用、更实用;(2)不选择停更的组件,如Eureka、Zuul.Hystrix等;(3)分布式任务调度建议XX1.-Job,比较简便、稳定;(4)微服务的基础设施一定要全,链路监控、流量管控、服务网格、任务调度、分布式文件、日志、缓存、消息队列等,并且集群化高可用部署,预置扩容方案及脚本,确保可随时扩展.由于微服务涉及他架、组件众多,且多为开源社区产品,安全问题需要提前考虑,主要有如下几个方面:(1)所用组件类型及版本要有清晰的台账记录,一方面用于根据版本主动有询、监控高危涵洞的情况,另一方面爆出高危漏洞时能够及时判断影响范围;(2)建立好看洞管理机制和补丁修装流程,针对不同漏洞制定

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > Web服务

copyright@ 2008-2023 yzwku网站版权所有

经营许可证编号:宁ICP备2022001189号-2

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!