当前位置:首页 > 前端设计 > 正文

springcloud执行流程,redis 缓存穿透,击穿,雪崩

springcloud执行流程,redis 缓存穿透,击穿,雪崩

这篇文章给大家聊聊关于springcloud执行流程,以及redis 缓存穿透,击穿,雪崩对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。springcloud断...

这篇文章给大家聊聊关于springcloud执行流程,以及redis 缓存穿透,击穿,雪崩对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

springcloud断言是什么

SpringCloud断言(Assert)是指在单元测试中对预期结果进行验证的功能。使用SpringCloud断言可以保证微服务在升级、重构等过程中不会出现意料之外的行为。具体来讲,在编写测试单元时,我们需要明确期望结果并编写断言来验证代码是否符合期望结果。例如,在使用SpringCloudRibbon进行负载均衡的过程中,我们可以使用SpringCloud断言来验证某个服务是否按照预期的轮询算法进行负载均衡。

springcloud流程原理

首先要通过定制一套基于SpringBoot的starter以便快速进行框架依赖的集成于配置,所以用springcloud进行微服务开发时,在项目中通过“spring-cloud-starter-parent”父依赖来实现其他框架级组件的快速引入,虽然只是很简单的引入了一个父依赖,但是实际上却是引入了整个SpringBoot的框架体系一级SpringCloud框架体系的整个依赖。

如何实现SpringCloud微服务挂掉之后自动重启

自己编写自动布署脚本,主要含打包jar命令及之后使用java-jar运行的命令

服务治理平台会监测到微服务的健康状况,发现服务挂掉后重新执行1次布署脚本即可

1、当发现服务挂掉,最好保留现场,分析挂掉原因,如机器内存不足、线程池中线程数过高、硬盘打满、流量过高等各种原因导致服务无法访问。

2、合理设置各机器的报擎指标及业务报擎指标,如内存达到70%时即告擎以及时扩展机器资源

3、同一个服务要布署多个节点,以便即使单个服务挂掉不影响整个服务

springcloud-feign实现原理,如何实现负载均衡

首先说明一下,feign只是一个声明式的Http客户端,提供以声明式的方式定义Http调用。本身并没有实现负载均衡,负载均衡是ribbon实现的,feign只是使用而已。

我从不使用feign进行接口调用开始,到使用feign进行接口调用,来说明使用和不使用feign的区别以及如何实现负载均衡的。

不使用Feign的调用

不使用Feign的情况下,进行接口调用,一般都是使用Spring提供的RestTemplate。RestTempate提供了很多调用接口的方法,你可以简单的把RestTemplate理解为是Spring提供的HttpClient。

如果要实现负载均衡,那么只需要加一个LoadBalanced注解,就像下面这样:

那它是怎么实现负载均衡的呢?简单梳理一下源码:

LoadBalancerAutoConfiguration中有下面这段代码,它会将所有有LoadBalanced注解的RestTemplate注入进来

然后通过下面的逻辑,将负载均衡逻辑给添加进去

RestTemplate会在执行之前,先执行拦截器,然后去执行最终的请求

而拦截器中有负载均衡逻辑

首先客户端从服务列表中获取到所有的服务列表信息

客户端按照负载均衡算法逻辑,选择一个服务进行调用具体代码流程比较复杂,这里不具体说明,后续可能会专门写几篇关于SpringCloud源码分析的文章问题

使用RestTemplate有什么问题呢?

和RestTemplate强依赖,不利于扩展或重构

和本地接口调用方式不统一

我们来看看使用Feign后会变成什么情况。使用Feign

假设我要调用一个远程接口,获取用户的信息。那么我们可以这么写:

1处,注解UserApiService为FeignClient,其中的name是需要调用的应用的AppName,即注册到注册中心上的名字

2处,声明调用的接口的地址和Method,这里是/api/getuserinfo,GET请求。1、2结合,即该接口访问的地址是GEThttp://USER/api/getuserinfo3处,请求的参数。完整的请求是GEThttp://USER/api/getuserinfo?userName=ivan&password=123456

怎么调用呢?

调用方式是不是和普通的接口一样?调用端根本就不必关系UserApiService是一个本地实现,还是一个远程调用。这就解决了上面提到的两个问题。

springcloud使用redis需要安装吗

是的,使用SpringCloud的Redis组件需要先安装Redis数据库。Redis是一个开源的内存数据存储系统,支持存储键值对、列表、集合、有序集合等数据类型,被广泛用于缓存、消息队列、实时排行榜等场景。在SpringCloud中,Redis通常被用作分布式缓存,可以提高系统的性能和并发能力。安装Redis可以参考官方网站的文档:https://redis.io/download。

END,本文到此结束,如果可以帮助到大家,还望关注本站哦!

最新文章