springcloud
文章平均质量分 75
微服务各个组件的学习及原理
暮色里de白雪檐
相信自己,人生之美在于当下
人生四季,寒暑交替,笑看起起落落
心若简单,生活就简单
展开
-
服务调用中的异常处理方案
在微服务架构中,A服务调用B服务,当B服务中抛出异常时,我们的意愿是能够获取到所有的异常信息,并且可以触发服务的熔断降级。但由于全局异常处理机制的存在,会帮我们处理B服务中抛出的异常,并把HTTP的状态码设置为200,那么此时对A服务来说,对B服务抛出的异常是无感知的,仍会继续业务代码的执行,并且不会触发服务的熔断降级,可能会导致微服务系统的雪崩。注意:这里要区分业务状态码和HTTP的相应状态码,业务状态码是无法触发降级的。现在有个服务A 和服务B部分代码服务A 的代码Feign客户端的代码服务B的代码原创 2024-05-13 16:04:50 · 857 阅读 · 0 评论 -
Spring Cloud GateWay整合熔断器实现限流
其实网关是很强大,能做的事情很多,包含很多过滤器包括限流,具体的网关可以参考我的另外一篇博文。原创 2024-03-07 14:18:25 · 439 阅读 · 0 评论 -
Spring Cloud GateWay-过滤器
说起过滤器可能有不少实现方式,比如spring自带的就可以实现Spring Boot实战-配置过滤器的两种方式这篇文章说的是Spring Cloud GateWay-过滤器,因为由于微服务的兴起,现在各个项目都会采用网关进行单独的资源隔离、token校验等,而不是放在下游的业务服务进行处理Gateway 过滤器总结filter的作用和生命周期Zuul1.x 阻塞式IO 2.x 基于Netty,Spring Cloud GateWay天生就是异步非阻塞的,基于Reactor模型;一个请求–>网原创 2022-05-26 16:04:54 · 3839 阅读 · 0 评论 -
springboot-全局统一异常如何优雅的处理(一)
项目中遇到运行时异常,总不能每个异常处理都去添加try catch逻辑,甚至有的时候一个偶然条件发生而导致异常,而我们没有进行对应的处理则会直接给请求者返回未知的错误,这在正式的上线的项目中是不允许,所以我们来配置全局异常处理今天讲解一下如何在SpringBoot实现全局异常机制,在没有用springboot大家要实现这一的功能基本上都是通过aop的思想,还是有点麻烦,而现在sprin...原创 2020-07-22 14:09:00 · 301 阅读 · 1 评论 -
浅谈Nacos Config动态刷新原理及作用
背景由于微服务引入至今,相信大部分公司的小伙伴都已经对微服务的使用有了一定的熟练度了,那么每个项目中肯定都有属于自己的配置文件,小企业呢对于配置的规范肯定不是那么严谨,一味的在一个或者多个配置文件中添加,那么多个微服务呢?有需要重复造轮子了,这是其一,其二呢,配置文件经常需要修改,比如什么阿里云、redis、kafka等一系列的中间件会随着不通环境(测试环境、开发环境、生产环境)的不同而改变,这种情况下,总不能把每个微服务模块逐一去启动吧,先不说启动的过程中会造成服务的卡顿而使得用户体验不佳,这么多服务启原创 2022-02-25 10:21:24 · 3031 阅读 · 0 评论 -
微服务服务调用-RestTemplate通过@LoadBalaced和不加@LoadBalaced的RestTemplate的区别?
RestTemplate通过@LoadBalaced注解集成Ribbon前言接触过微服务的可能知道在RestTemplate上添加@LoadBalaced即可具备服务发现与负载均衡的能力,但是其中的原理是什么?我曾带着这样的疑问开始了一波学习。疑问疑问:为什么RestTemplate上加一个@LoadBalaced注解即具备服务发现与负载均衡的能力?为什么通过@Qualifier就能注入具有负载均衡能力的RestTemplate?首先先说第二个问题:当存在两个RestTemplate时,转载 2021-12-27 21:03:10 · 667 阅读 · 0 评论 -
SpringCloud-各个组件(带你走进微服务组件内部一探究竟)
SpringCloud Gateway【彻底了解其作用和价值】Spring Cloud Alibaba-Nacos【史上最全讲解】Spring Cloud Alibaba-Sentinel【如何正确进行流量控制】原创 2021-11-26 18:14:48 · 319 阅读 · 0 评论 -
【RestTemplate】统一添加拦截器使用场景
首先说到这个RestTemplate ,大家都知道用来发送http请求的封装模板,首先使用场景有两个典型:第一:和第三方交互使用http请求时,需要进行token认证第二:springcloud架构中的Hystrix中上下游请求时token认证开始上正菜吧……SpringCloud RestTemplate通过拦截器统一添加token实现拦截器package xxxxxx;import org.springframework.http.HttpHeaders;import org.spri原创 2021-11-04 16:58:21 · 1473 阅读 · 1 评论 -
Springcloud Feign转发请求头(防止token失效)--Hystrix如何实现上下文数据传递
Feign自动转发HTTP请求头,(防止session失效)微服务开发中经常有这样的需求,公司自定义了通用的请求头,需要在微服务的调用链中转发,比如在请求头中加入了token,或者某个自定义的信息uniqueId,总之就是自定义的一个键值对的东东,A服务调用B服务,B服务调用C服务,这样通用的东西如何让他在一个调用链中不断地传递下去呢?以A服务为例:方案1最傻的办法,在程序中获取,调用B的时候再转发,怎么获取在Controller中国通过注解获取,或者通过request对象获取,这个不难,在请求B服原创 2021-03-17 14:49:42 · 9472 阅读 · 0 评论 -
Nacos基础篇----windows版安装配置
下载下载地址:https://github.com/alibaba/nacos/releases解压下载的包进入目录如下图bin目录如下图conf目录如下图(若想更改端口,在appliction.properties中配置即可)启动双击bin目录下的startup.cmd启动nacos;停止双击shutdown.cmd;启动后房访问127.0.0.1:8848/nacos/index.html账号密码默认是nacos登录进入之后如下图...原创 2020-11-27 16:07:22 · 558 阅读 · 0 评论 -
SpringCloud微服务架构解析
SpringCloud微服务架构解析原创 2020-11-27 16:01:22 · 148 阅读 · 0 评论 -
SpringCloud-Feign源码分析
Feign简介在Feign的官方文档上, 我们可以看到Feign最重要的一句话是:Feign makes writing java http clients easier。Feign主要的目也是为了简化我们编写远程访问的代码量。在使用 Feign 时, 可以使用注解来修饰接口, 这些注解中既包括了 Feign 自带的注解, 也支持使用第三方的注解(通过注解转换来实现)。 除此之外, Feign还支持插件式的编码器和解码器, 使用者可以通过该特性, 对请求和响应进行不同的封装与解析。Feign可以决定采.原创 2020-10-05 00:00:23 · 259 阅读 · 0 评论 -
漏桶算法和令牌桶算法的区别
漏桶算法与令牌桶算法在表面看起来类似,很容易将两者混淆。但事实上,这两者具有截然不同的特性,且为不同的目的而使用。漏桶算法与令牌桶算法的区别在于:漏桶算法能够强行限制数据的传输速率。令牌桶算法能够在限制数据的平均传输速率的同时还允许某种程度的突发传输。需要说明的是:在某些情况下,漏桶算法不能够有效地使用网络资源。因为漏桶的漏出速率是固定的,所以即使网络中没有发生拥塞,漏桶算法也不能使某一...原创 2020-07-15 14:44:00 · 581 阅读 · 0 评论 -
Feign消费服务时-POST/GET请求方式(踩过的坑)
这篇博文主要为了解决大家平时Feign消费服务时POST/GET请求方式遇到的一些坑在之前大家肯定需要熟悉Feign消费服务时POST/GET请求方式的一些用法,如果不知道可以直接点击这篇博主的文章Feign消费服务时POST/GET请求方式一定要看完这篇文章之后才能get到坑点:类型List参数传输首先我经过很多例子来测试,feign虽然吸收了很多mvc的用法习惯但是限制很是很...原创 2020-08-03 16:33:00 · 1454 阅读 · 0 评论 -
客户端Ribbon-负载均衡之源码解析
什么是负载均衡器?假设有一个分布式系统,该系统由在不同计算机上运行的许多服务组成。但是,当用户数量很大时,通常会为服务创建多个副本。每个副本都在另一台计算机上运行。此时,出现 “Load Balancer(负载均衡器)”。它有助于在服务器之间平均分配传入流量服务器端负载均衡器传统上,Load Balancers(例如Nginx、F5)是放置在服务器端的组件。当请求来自 客户端 时,...原创 2020-08-12 10:32:00 · 123 阅读 · 0 评论