首页 > 编程知识 正文

阿里云oss文档(java cloud)

时间:2023-05-03 09:58:27 阅读:83807 作者:325

微服务架构的核心关键点

1、微服务的服务管理

服务治理(服务注册和服务发现)可以通过服务发现,仅使用相应的服务名称来实现服务呼叫,而无需消费者事先知道服务提供者的物理地址。 服务注册机制将服务提供者在线时提供的服务信息注册到服务治理服务器,供服务消费者使用。 服务离线时从服务治理服务器注销,以避免服务消费者呼叫引起的异常。

2、微服务的负载均衡

客户端负载均衡也称为软负载均衡,是指服务消费者维护通常从服务治理服务器动态获取的服务提供商列表,采用股东配置方式,确定每个服务呼叫使用的具体服务实例,从而实现微

3、微服务的统一入口

API服务网关是指为微服务提供统一的入口,可以添加一些路由规则,不同的微服务通过路由规则提供一致的访问入口。

4、微服务容错机制

微服务架构容错提出断路器、服务降级等模式,这些模式都可以有效防止微服务呼叫失败引起的连锁反应,并在必要时通过这些模式积极地

5、微型服务的统一配置

微服务体系结构统一管理和更新数十、数百个实例的配置。

六、微型服务的监测

日志往往由服务实力自己管理,如何将分散在多个日志之间的调用连接起来,形成完整的请求调用链。 在微服务监控中,提供了日志聚合、日志可视化分析、呼叫链跟踪等。

七、引进微型服务

构建-通过发布管道构建自动发布流程,可以使用Docker工具快速部署,也可以使用k8s构建自动部署组织。

Spring Cloud技术

SpringCloud利用Spring Boot风格组合了较为成熟的微服务框架,屏蔽了复杂的配置和实现原理,为快速构建微服务框架的APP应用提供了一系列的设备工具和开发支持。

一键启动和部署基本设置,如服务发现、客户端负载平衡、API网关、微服务容错、统一配置中心、消息总线和微服务呼叫监控。

Spring Cloud提供的主要功能包括:

基于Netfilix的服务治理、客户端负载平衡、声明性调用; 基于服务网关微服务容错管理集成消息中间件提供消息驱动开发Spring Security实现了微服务的安全性、单点登录功能的分布式、 提供版本化的集成配置管理微服务呼叫链和跟踪管理

Spring Cloud子项目

对Spring Cloud旗下的子项目大致分为两大类,一个是现有成熟的第三方开源项目Spring Boot化,卡普我们基于Spring的第二点是微服务,如Spring Cloud Config提供集成配置中心,Spring Clound Stream为消息中间件(如Kafka、RabbitMQ等)提供快速集成的桥梁

1、spring云和Spring Boot

Spring Boot可以说是微服务体系结构的核心技术之一。 通过迅速启动,在spring boot APP应用中添加Spring MVC依赖关系,可以迅速实现基于REST架构的服务接口,支持HTTP标准动作。 此外,缺省情况下,Spring Boot提供了对JackJson序列化的支持,允许服务接口输入和输出到JSON。 使用Spring Cloud开发微服务体系结构时,需要Spring Boot。

2、Spring Cloud和服务管理

服务治理是Spring Cloud的核心,实现时有Consul和Netflix的Eureka选项。

Eureka提供了一个UI界面APP,用于注册服务注册中心、服务发现客户端和服务。 在Eureka的实现中,节点之间相互平等,即使一些注册中心“挂起”也不会影响整个APP,即使集群中剩下的一个节点生存,也可以正常管理服务。 即使所有服务注册节点都关闭,缓存在Eureka客户端上的服务实例列表信息也会使服务消耗正常工作,并保证微服务之间的相互调用的强健性和APP灵活性。

3、Spring Cloud和客户端的负载平衡

默认情况下,Ribbon与Eureka无缝集成,当客户端启动时,会从Eureka服务器检索服务注册列表并在本地维护。 如果服务消费者需要调用,Ribbon将根据负载平衡策略选择一个

适的服务提供者实例并进行访问。

通过在微服务调用时通过RestTemplate进行调用,这时需要开发者处理参数、调用路径等,Spring Cloud通过集成Netflix的Feign项目,为开发者提供了声明式服务调用,从而简化了微服务之间的调用处理方式。并且默认Feigin项目集成了Ribbon,使得声明式调用也支持客户端负载均衡功能。

4、Spring Cloud与微服务容错、降级

微服务容错、降级旨在为微服务架构提供更大的弹性,通过Hystrix提供的@HystrixCommand注解可以轻松为我们所开发的微服务提供容错、回退、降级等功能。另外,Hystrix也默认集成到Fegin子项目中。

Hystrix是根据“断路器”模式而创建。当Hystrix监控到某服务单元发生故障之后,就会进入服务熔断处理,并向调用方返回一个符合预期的服务降级处理(fallback),而不是长时间的等待或者抛出调用异常,从而保障服务调用方的线程不会被长时间、不必要地占用,避免故障在应用中的蔓延造成的雪崩效应。

而Hystrix的仪表盘项目(Dasgboard)可以监控各个服务调用所消耗的时间、请求数、成功率等。通过这种近乎实时的监控和告警,可以及时发现系统中潜在问题并进行处理。

5、Spring Clond与服务网关

Spring Cloud通过集成Netflix中的Zuul实现API服务网关功能,提供对请求的路由和过滤两个功能,其中路由功能负责将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础。过滤器功能则负责对请求的处理过程进行干预,是实现请求校验、服务聚合等功能的基础。通过Zuul,可以将细粒度的服务组合起来提供一个粗粒度的服务,所有请求都导入一个统一的入口,对外整个服务只需要暴露一个API接口,屏蔽了服务端的实现细节。通过Zuul的反向代理功能,可以实现路由寻址,将请求转发到后端的粗粒度服务上,并做一些通用的逻辑处理。

Zuul默认会与Eureka服务器进行整合,自动从Eureka服务器中获取所有注册的服务并进行路由映射,实现API服务网关自动配置。

6、Spring Cloud与消息中间件

Spring Cloud提供了Stream项目,通过建立消息应用抽象层,构建了消息收发、分组消费和消息分片等功能处理,将业务应用中的消息收发与具体消息中间件进行解耦,使微服务应用开发中可以非常方便地与Kafka和RabbitMQ等消息中间件进行集成。

此外,Spring Cloud Bus基于Stream进行扩展,可以作为微服务之间的事件、消息总线,用于服务集群中状态变化的传播,比如Spring Cloud Config借助Bus,可以实现配置的动态刷新处理。

7、Spring Cloud与分布式配置中心

Spring Cloud Config具有中心化、版本控制、支持动态更新和语言独立等特性。在Config子项目中将微服务应用分为两种角色:配置服务器(Config Server)和配置客户端(Config Client)。使用配置服务器集中地管理所有配置属性文件,配置服务中心可以将配置属性文件存储到Git、SVN等具有版本管理仓库中,也可以存放在文件系统中。默认采用Git的方式进行存储,因此可以很容易地对配置文件进行修改,并实现版本控制。

8、Spring Cloud与微服务链路追踪

Sleuth核心思想就是通过一个全局的ID将分布在各微服务结点上的请求处理串联起来,还原了调用关系,并借助数据埋点,实现对微服务调用链路上的性能数据的采集。因此,通过Sleuth可以很清楚地了解到一个用户请求经过了哪些服务、每个服务处理花费了多长时间,从而可以对用户的请求进行分析。

此外,通过将采集的数据发送给Zipkin进行存储、统计和分析,从而可以实现可视化的分析和展示,帮助开发者对微服务实施优化处理。

9、Spring Cloud与微服务安全

Spring Cloud Security提供了一个认证和鉴权的安全框架,实现了资源授权、令牌管理等功能,同时结合了Zuul可以将认证信息在微服务调用过程中直接传递,简化了我们进行安全管控的开发。此外,因为Spring Cloud Security默认支持OAuth 2.0认证协议,因此单点登录也可以非常容易实现,并且OAuth 2.0所生成的令牌可以使用JWT的方式,进一步简化了微服务中的安全管理。

10、Spring Cloud其他子项目

Spring Cloud Cli:提供了以命令行和脚本的方式来管理微服务。Spring Cloud Data Flow:一个用于开发、执行大数据处理的统一编程模型和托管服务。其基于原生云,并重新对Spring XD进行设计,简化了大数据应用的开发,为基于微服务的分布式流处理和批处理数据通道提供了一系列模型和最佳实践。Spring Cloud Task:用于短时的任务管理和调度微服务管理,通过与Data Flow一起使用。Spring Cloud Starters:类似于Spring Boot的启动项目,为基于Spring Cloud的微服务开发提供开箱即用的依赖管理Spring Cloud Contract:面向Java的契约框架,消费者驱动的,旨在帮助开发者完成微服务测试的子项目。

Spring Cloud优点

Spring Cloud作为Spring Boot的传承,遵循约定优于配置的原则,在使用时不需要复杂的配置就可以运行起来,学习曲线低。Spring Cloud中大部分的项目开箱即用,采用自动化配置机制,使用门槛低。Spring Cloud属于Spring大家族,Spring是进行企业级开发的首选框架,因此在项目中引入Spring Cloud的技术成本低。Spring Cloud的口号就是开发“面向云环境的应用程序”,通过集成成熟的第三方开源组件,为微服务架构的开发提供了全方位的支持,并且在Spring系列下后续的更新、完善都有保障。Spring Cloud抛弃了传统的RPC通信,采用了基于HTTP的REST方式,使得微服务接口更为灵活,服务提供者和消费者之间的依赖只需要连接即可,而不存在代码级别的强依赖,这对快速演化的微服务架构更合适。Spring Cloud并没有限制所使用的环境,可以与异构系统进行整合。同时对于所提供的各组件服务即可单独部署,又可集中部署,方便了运维和管理。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。