springcloud
文章平均质量分 84
😊
有温度的代码
我本微末凡尘,却也心向天空
展开
-
gateway与zuul的区别与联系
本质上就是一个同步 Servlet,每来一个请求,zuul会专门分配一个线程去处理,然后转发到后端服务,后端再启线程处理请求,后端处理时网关的线程会阻塞,当请求数量比较大时,很容易造成线程池被沾满而无法接受新的请求,Netflix 为此还专门研发了Hystrix熔断组件来解决慢服务耗尽资源问题。zuul是netflix公司的项目,本质上是web servlet,基于JavaEE Servlet技术栈,使用阻塞API,处理的是http请求,没有提供异步支持,不支持任何长连接,比如websocket。原创 2023-05-13 08:40:37 · 2265 阅读 · 0 评论 -
nacos注册中心源码分析二之服务发现
服务发现是客户端发起负载均衡(feign)调用接口的时候内部第一次调用nacos服务端接口的时候去调用的后续调用基本上都是从客户端的缓存列表里边去取,拿不到才会向服务端发起调用如果想看这一块代码可以看下ribbion源码分析。原创 2023-05-17 13:37:37 · 569 阅读 · 0 评论 -
关于为什么gateway网关用webflux
Spring Framework 中包含的原始 Web 框架 Spring Web MVC 是专门为 Servlet API 和 Servlet 容器构建的。反应式堆栈 Web 框架 Spring WebFlux 是在 5.0 版的后期添加的。它是完全非阻塞的,支持反应式流(Reactive Stream)背压,并在Netty,Undertow和Servlet 3.1 +容器等服务器上运行。Spring WebFlux 是一个异步非阻塞式 IO 模型,通过少量的容器线程就可以支撑大量的并发访问。原创 2023-05-11 05:40:12 · 4024 阅读 · 0 评论 -
webFlux替代RestTemplate远程调用
应用场景:开放平台接入A项目接口,提供给B项目调用,先在平台创建A接口接口,项目信息,应用信息,生成url(包含签名),再把URL给B平台调用。流程:A-平台-B-平台-A提供方:A,注册到开放平台调用方:B,发请求到平台(平台提供接口)平台过滤器主要是:校验B调用的接口是平台注册的A接口(验签),系统参数校验,获取调用方传入参数。平台是如何调A接口的呢?通过参数:服务地址,接口地址,业务参数参数介绍:WebClient是一个响应式客户端,它提供了RestTemplate的替代方法。转载 2023-05-11 08:17:14 · 874 阅读 · 0 评论 -
zuul源码分析
/</</我们去到zuul的包下下边的spring.factories文件中可以看到文件内容这两个类的区别是生效条件点进去看看只干了又1件事就是为我们导入mark使启动来生效上边代码就是初始化过滤器其中会把所有继承了ZuulFilter 并被spring管理的过滤器全部加在进来,这是spring 实现的接下来问题来了,当我用postman请求zuul,会被哪个类处理呢?原创 2023-05-13 00:45:00 · 1704 阅读 · 0 评论 -
Spring Cloud LoadBalancer是什么?
Spring Cloud LoadBalancer是Spring Cloud官方自己提供的客户端负载均衡器, 用来替代 Ribbon。原创 2023-05-15 08:51:33 · 1354 阅读 · 0 评论 -
深入了解ribbon源码
RibbonApplicationContextInitializer实现了 ApplicationListener 所以springboot启动的时候会去调用onApplicationEvent 方法。原创 2023-05-15 17:02:39 · 1341 阅读 · 0 评论 -
GateWay源码解析
springboot 在引入一个新的组件时,一般都会有对应的XxxAutoConfiguration类来对该组件进行配置,GateWay也不例外,在引入了以下配置后,就会生成对应的GatewayAutoConfiguration自动配置类从配置类上的注解,可以了解到spring.cloud.gateway.enabled配置项必须为true,自动配置才生效,默认为true在使用Gataway之前,必须存在WebFlux 和 HttpHandler 组件。原创 2023-05-11 15:23:09 · 1418 阅读 · 0 评论 -
gateway的使用
网关作为流量的入口,常用的功能包括路由转发,权限校验,限流等。Spring Cloud Gateway 是Spring Cloud官方推出的第二代网关框架,定位于取代 Netflix Zuul。相比 Zuul 来说,Spring Cloud Gateway 提供更优秀的性能,更强大的有功能。SpringCloud Gateway 是基于 Spring 5.0,Spring Boot 2.0 和 Project Reactor 等技术开发的网关。原创 2023-05-12 00:30:00 · 738 阅读 · 0 评论 -
ribbon的使用
Ribbon是Netflix公司提供的一个基于HTTP和TCP的客户端负载均衡工具。Spring Cloud Ribbon是基于Netflix Ribbon 实现的一套客户端的负载均衡工具,Ribbon客户端组件提供一系列的完善的配置,如超时,重试等。通过Load Balancer获取到服务提供的所有机器实例,Ribbon会自动基于某种规则(轮询,随机)去调用这些服务。Ribbon也可以实现我们自己的负载均衡算法。集中式负载均衡集中式负载均衡,在消费者和服务提供方中间使用独立的代理方式进行负载。原创 2023-05-15 09:52:10 · 1471 阅读 · 0 评论 -
nacos注册中心源码分析一之服务注册、服务心跳
Nacos的客户端是基于SpringBoot的自动装配实现的看下依赖包下边的spring.factories文件。原创 2023-05-17 10:14:28 · 1100 阅读 · 0 评论 -
nacos服务端源码集群同步源码分析
ServerStatusReporter 是 ServerListManager的内部类通过@Component注解被解析到spring容器中再通过@PostConstruct初始化执行init方法上边代码启动了一个延时2秒的线程上边代码其实就是获取当前服务的所有实例然后排出当前节点的实例同步集群其他节点状态最后在finally中重新注册延时任务线程进行状态同步。原创 2023-05-17 16:09:49 · 787 阅读 · 0 评论 -
openfeign源码解析
我们先看下添加的依赖可以看到starter?看到这个第一反应就是和springboot的自动装配联系在一起,我们去看下fascories文件FeignAutoConfiguration 自动装配 FeignContext 和 Targeter,以及 Client 配置。FeignRibbonClientAutoConfiguration 实现负载均衡,负载均衡是在 Client 这一层实现的。org.springframework.cloud.openfeign.encoding.FeignAccept原创 2023-05-13 13:49:12 · 1884 阅读 · 0 评论 -
openfeign的使用
Feign集成了Ribbon、RestTemplate实现了负载均衡的执行Http调用,只不过对原有的方式(Ribbon+RestTemplate)进行了封装,开发者不必手动使用RestTemplate调服务,而是定义一个接口,在这个接口中标注一个注解即可完成服务调用,这样更加符合面向接口编程的宗旨,简化了开发。网页加载速度加快的好处不言而喻,除了节省流量,改善用户的浏览体验外,另一个潜在的好处是GZIP与搜索引擎的抓取工具有着更好的关系。为什么要添加上面的依赖呢?那么上面配置的全局超时时间能不能通过呢?原创 2023-05-05 09:16:14 · 1655 阅读 · 0 评论