首页 > 其他分享 >SpringCloud精通

SpringCloud精通

时间:2023-02-13 14:00:41浏览次数:45  
标签:精通 调用 服务 SpringCloud 配置 分布式系统 Ribbon

什么是微服务?

微服务是一种架构模式或者说是一种架构风格,它提倡将单一应用程序划分成一组小的服务,每个服务运行在其独立的自己的进程中,服务之间互相协调,最终对外提供服务。服务之间采用轻量级的通信机制互相沟通(通常是基于HTTP的RESTful API)。每个服务都围绕着具体业务进行构建,并且能够被独立地部署到生产环境、类生产环境等。
另外,应尽量避免统一的、集中式的服务管理机制,对具体的一个服务而言,应根据业务上下文,选择合适的语言、工具对其进行构建,可以有一个非常轻量级的集中式管理来协调这些服务,可以使用不同的语言来编写服务,也可以使用不同的数据存储。
从技术维度来说:微服务化的核心就是将传统的一站式应用,根据业务拆分成一个一个的独立服务,彻底地去耦合,每一个微服务提供单个业务功能的服务,一个服务做一件事,从技术角度看就是一种小而独立的处理过程,类似进程概念,能够单独启动或销毁。

微服务之间是如何通信?

第一种:远程过程调用,即RPC(Remote Procedure Invocation)直接通过远程过程调用来访问别的service,如:RESTful、Apache。
第二种:消息使用异步消息来做服务间通信。服务间通过消息管道来交换消息,从而通信。如:Apache Kafka、RabbitMQ

什么是SpringCloud?

Spring Cloud应用程序启动器是基于Spring Boot的Spring集成应用程序,提供与外部系统的集成。Spring Cloud Task,一个生命周期短暂的微服务框架,用于快速构建执行有限数据处理的应用程序。

SpringCloud有什么优势?

使用Spring Boot开发分布式微服务时,我们面临以下问题
1、分布式系统构建的复杂性:包括网络问题,延迟开销,带宽问题,安全问题。
2、服务-服务发现工具管理集群中的流程和服务如何查找和互相通信:它涉及一个服务目录,在该目录中注册服务,然后能够查找并连接到该目录中的服务。
3、冗余:分布式系统中的冗余问题。
4、负载均衡:负载均衡改善跨多个计算资源的工作负荷,诸如计算机,计算机集群,网络链路,中央处理单元,或磁盘驱动器的分布。
5、性能问题:由于各种运营开销导致的性能问题。
6、部署复杂性:Devops技能的要求。

SpringCloud如何实现服务的注册和发现?

服务在发布时指定对应的服务名(服务名包括了IP地址和端口):
将服务注册到注册中心(eureka)这一过程是Springcloud自动实现 只需要在main方法添加@EnableDisscoveryClient
同一个服务修改端口就可以启动多个实例调用方法:
传递服务名称通过注册中心获取所有的可用实例 通过负载均衡策略调用(ribbon和feign)对应的服务

作为服务注册中心,Eureka比Zookeeper好在哪里?

著名的CAP理论指出,一个分布式系统不可能同时满足C(一致性)、A(可用性)和P(分区容错性)。由于分区容错性P在是分布式系统中必须要保证的,因此我们只能在A和C之间进行权衡。
因此,Zookeeper 保证的是CP, Eureka 则是AP。

什么是ribbon和feign,他们的区别?

SpringCloud的Netflix中提供了两个组件实现软负载均衡调用:ribbon 和 feign。

Ribbon和Feign都是用于调用其他服务的,不过方式不同
Ribbon使用@RibbonClient(value="服务名称") 使用RestTemplate调用远程服务对应的方法
Feign使用@FeignClient("指定服务名")调用提供方提供对外接口;

Ribbon和Feign的区别:
1),启动类使用的注解不同,Ribbon用的是@RibbonClient,Feign用的是@EnableFeignClients。
2),服务的指定位置不同,Ribbon是在@RibbonClient注解上声明,Feign则是在定义抽象方法的接口中使用@FeignClient声明。
3),调用方式不同,Ribbon需要自己构建http请求,模拟http请求然后使用RestTemplate发送给其他服务,步骤相当繁琐。
Feign则是在Ribbon的基础上进行了一次改进,采用接口的方式,将需要调用的其他服务的方法定义成抽象方法即可

什么是服务熔断?什么是服务降级?

服务直接的调用,比如在高并发情况下出现进程阻塞,导致当前线程不可用,慢慢的全部线程阻塞,导致服务器雪崩。
服务熔断:相当于保险丝,出现某个异常,直接熔断整个服务,而不是一直等到服务超时。
服务降级:通过维护一个自己的线程池,当线程到达阈值的时候就启动服务降级,如果其他请求继续访问就直接返回fallback的默认值。

什么是Hystrix(断路器)?它如何实现容错?

Hystrix是一个【延迟和容错】库,旨在隔离远程系统,服务和第三方库的访问点,当出现不可避免的故障时,停止级联故障并在复杂的分布式系统中实现弹性。
在分布式系统里,许多依赖不可避免的会调用失败,比如超时、异常等, Hystrix能够保证在一个依赖出问题的情况下,不会导致整体服务失败,避免级联故障,以提高分布式系统的弹性。

什么是 zuul路由网关?

Zuul 包含了对请求的路由和过滤两个最主要的功能:
路由功能:负责将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础,
过滤器功能:负责对请求的处理过程进行干预,是实现请求校验、服务聚合等功能的基础.
Zuul和Eureka进行整合,将Zuul自身注册为Eureka服务治理下的应用,同时从Eureka中获得其他微服务的消息,也即以后的访问微服务都是通过Zuul跳转后获得。
注意:Zuul服务最终还是会注册进Eureka, 提供=代理+路由+过滤 三大功能

什么是SpringCloud Config分布式配置中心?

SpringCloud Config分布式配置中心:为微服务架构中的微服务提供集中化的外部配置支持,为各个不同微服务应用的所有环境提供了一个中心化的外部配置。

Config分布式配置中心能干嘛?

1),集中管理配置文件, 不同环境不同配置,动态化的配置更新,分环境部署比如dev/test/prod/beta/release;
2),运行期间动态调整配置,不再需要在每个服务部署的机器上编写配置文件,服务会向配置中心统一拉取,配置自己的信息;
3),当配置发生变动时,服务不需要重启即可感知到配置的变化, 并应用新的配置;

标签:精通,调用,服务,SpringCloud,配置,分布式系统,Ribbon
From: https://www.cnblogs.com/taoxw/p/17116097.html

相关文章

  • SpringCloud Alibaba微服务工具集
    文章目录​​1、SpringCloudAlibaba简介​​​​1.1springcloudalibaba概述​​​​1.2springcloudalibaba特性​​​​1.3SpringCloud组件​​​​2、SpringClou......
  • SpringCloud 微服务工具集总结
    文章目录​​1、微服务​​​​2、为什么要用微服务?​​​​2.1优势:​​​​2.2缺点:​​​​3、SpringCloud微服务工具集​​​​4、SpringCloud工具集核心组件​​​​4.......
  • SpringCloudGateway服务路由
    1使用1.1依赖首先要引入spring-cloud-starter-gateway的依赖:<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-sta......
  • drf入门到精通:接口文档、Cookie,Session,Token发展史、jwt介绍和原理、drf-jwt快速使
    目录一、接口文档使用coreapi自动生成接口文档步骤代码两点说明二、cookiesessiontoken发展史(彻底理解cookie,session,token,便于理解jwt)1、Cookie,Session,Token发展史2、......
  • drf入门到精通:jwt配置文件、drf-jwt源码执行流程(了解)、自定义用户表实现jwt的签发和认
    目录一、jwt配置文件二、drf-jwt源码执行流程(了解)2.0auth的user表的补充知识1、django的authuser表,密码是加密的,即便的同样的密码,密文都不一样2、自定义用户表,生成密码......
  • SpringCloudAlibaba项目搭建流程
    SpringCloudAlibaba作为一个微服务架构,往往会创建一个父工程管理整个项目的依赖关系。每个子项目代表一个微服务,可以各自选择所需的组件进行使用。因此,搭建SpringCloud......
  • drf从入门到精通 10
    今日内容详细1.drf-jwt源码执行流程1.1签发(登录)#登录接口,路由匹配成功,执行obtain_jwt_token--->post请求--->ObtainJSONWebToken的post方法 path('login/',obtai......
  • SpringCloudAlibaba史上最全电子书(阿里云学习中心整理)
    《Spring Cloud Alibaba》2020本电子书内容来源于每特教育在阿里云学习中心上架课程《精通SpringCloudAlibaba》,主讲人:余胜军,由开发者社区志愿者黄良诗、李美儒进行整......
  • springcloud(四) - 服务治理Hystrix
    功能介绍调用下游服务,下游因为超时、异常等原因报错的时候。hystrix保证不会出现整体异常,避免雪崩。主要策略是服务的熔断、降级 应用场景降级:异常、超时、熔断等情况......
  • springcloud(二) - 服务调用Feign&openFeign
    功能介绍:动态代理的方式,简化请求其他服务的开发成本,更好得对请求地址组装、接受返回信息、返回参数解析等  Feign和OpenFeign区别:OpenFeign实现了Feign的基础功能,同......