
Spring Cloud
文章平均质量分 83
Spring Cloud
weihubeats
开源框架Tlog贡献者,技术大多都源于生产实践,乐于分享.公众号:小奏技术
展开
-
Zuul和Gateway请求IO模型比对(WebFlux优势)以及Reactor模型分析
文章目录背景Zull 请求处理模型GatewayDoug Lea Reactor模型总结背景最近在做一些开源网关的调研,首选也是主流的网关就是Zull和Gateway。然后在性能上基于Zull和Gateway的请求处理模型做了一些比对Zull 请求处理模型首先需要说明的是这里的Zull版本是1.x,同时zull采用的是Tomcat容器,使用的是传统的Servlet IO处理模型,如下图简化版本的图片:第二张图片来源于zull官方可以看到处理模型比较简单。首先每个请求的servlet由s原创 2021-09-12 10:49:14 · 2982 阅读 · 0 评论 -
Spring Cloud Zookeeper 优雅下线优化
基于该方案改造后,线上服务发版下线就再也没有报错了,非常优雅。原创 2022-10-02 22:00:00 · 1896 阅读 · 0 评论 -
Spring Boot、Spring Cloud 自定义配置文件(如何整合配置中心)
这里是weihubeats,觉得文章不错可以关注公众号小奏技术,文章首发。拒绝营销号,拒绝标题党在spring中我们都知道所有配置定义在配置文件中我们就可以通过注解获取到。Spring 中对所有配置管理都有一个统一的上层接口实现类图可以看到实现类是非常多的。不过实际所有的配置获取都是封装在最上层的接口中的这里需要注意的是的核心实现类而中拥有的最后使用的也还是类,通过遍历集合而最终是通过拥有一个泛型T source获取最终的属性所以这里可以看到我们所有的资源都是一个需要注意的是,Prope原创 2022-07-12 19:04:01 · 924 阅读 · 3 评论 -
简单聊聊Spring Cloud Feign重试机制
有时候在一些特殊的场景我们需要服务又重试机制,比如微服务之间服务上下线如果没有做到特别优雅就需要服务A在调用服务B时,而服务B正在重启,如果服务发现剔除不及时,就会调用到已经被的服务,导致业务报错,影响系统的稳定性。或者由于网络原因调用失败,我们可能也需要重试。其实的重试是非常简单的。只需要很简单的配置核心配置也非常简单,配置一个,几个参数简单解释一下在需要重试的feign客户端指定该配置类即可然后我们故意将order服务不启动然后调用,会发现会自动重试,并重试两次。其实重试的源码也很简单,主要在类中的原创 2022-06-08 22:54:11 · 5334 阅读 · 2 评论 -
Spring Cloud落地之Spring Cloud LoadBalancer 线上优化方案
文章目录Spring Cloud 版本注册中心Spring Cloud LoadBalancer 负载均衡器新的选择缓存问题解决方式总结这里是weihubeats,觉得文章不错可以关注公众号小奏技术,文章首发。拒绝营销号,拒绝标题党Spring Cloud 版本Spring Cloud 目前选用的是官方推荐的最新稳定版本:2020.0.1注册中心首先我们选用的注册中心是Zookeeper,和Eureka不同的是Spring Cloud Zookeeper 客户端获取服务信息客户端本地是没有缓存原创 2022-03-02 22:06:41 · 2959 阅读 · 0 评论 -
Spring Cloud之openfeign 处理服务平滑上下线
文章目录背景问题问题定位问题解决Unexpected end of file from server executing GET xxxfeign.RetryableException: connect timed out executing GETRibbonSpring Cloud Load Balancer总结这里是weihubeats,觉得文章不错可以关注公众号小奏技术,文章首发。拒绝营销号,拒绝标题党背景最近在做微服务拆分,最终选用的RPC框架为 openfeign。本以为使用是非常简单原创 2022-02-26 13:30:39 · 3693 阅读 · 0 评论 -
图文Debug一步一步带你看清SpringCloud OpenFeign源码执行过程
文章目录版本Spring Cloud openfeign 使用源码分析1. 开启Feign自动装配注解 @EnableFeignClients2. 配置类 FeignClientsRegistrar.class总结这里是weihubeats,觉得文章不错可以关注公众号小奏技术,文章首发。拒绝营销号,拒绝标题党版本Version: spring-cloud-openfeign-core:3.0.1Spring Cloud openfeign 使用我们首先看看Spring Cloud openfe原创 2022-02-11 21:40:06 · 1349 阅读 · 0 评论 -
Spring Cloud ZooKeeper Discovery Client Not Register on ZooKeeper when using SpringBootServletInitia
报错2022-01-04 16:04:05.773 ERROR 26981 --- [nStateManager-0] org.apache.curator.x.discovery.details.ServiceDiscoveryImpl.stateChanged()-87 : Could not re-register instances after reconnectionorg.apache.zookeeper.KeeperException$UnimplementedException: K原创 2022-01-04 16:26:51 · 1381 阅读 · 0 评论 -
想用Nacos作为注册中心的我最终还是被劝退
文章目录想用Nacos作为注册中心的我最终还是被劝退背景nacos社区活跃度文档搭建demo使用比较坑人的地方来了回顾 [spring-cloud-alibaba](https://github.com/alibaba/spring-cloud-alibaba)总结关于我想用Nacos作为注册中心的我最终还是被劝退背景最近在做Spring Cloud 的一些组件调研,其中注册中心本来打算使用阿里开源的nacos,但是遇到了如下问题最终让我放弃了使用nacosnacos社区活跃度一个项目的值不值的原创 2021-12-21 11:29:29 · 1358 阅读 · 1 评论 -
Spring Cloud RPC(Feign VS Dubbo)多维度对比选型
文章目录社区活跃度对比DubboFeign协议DubboFeign与Spring Cloud 集成DubboFeign负载均衡DubboFeign容错机制DubboFeign迁移DubboFeign文档DubboFeign总结关于我社区活跃度对比DubboFeign协议Dubbo支持多传输协议: Dubbo、Rmi、http,可灵活配置Feign基于Http传输协议,短连接,性能比dubbo低与Spring Cloud 集成Dubbo在早期Dubbo是与Spring Cloud原创 2021-12-18 09:30:00 · 5445 阅读 · 0 评论 -
从源码底层聊聊Spring Cloud是如何一统服务注册、发现编程模型
文章目录背景源码版本核心抽象接口DiscoveryClientEnableDiscoveryClientReactiveDiscoveryClientServiceInstanceRegistrationServiceRegistryAbstractAutoServiceRegistration从Nacos源码来看看一个服务自动注册的过程整体流程源码分析NacosDiscoveryAutoConfigurationNacosAutoServiceRegistration总结关于我背景最近在调研研究Spr原创 2021-12-11 18:35:20 · 1175 阅读 · 0 评论 -
线上Spring Boot 和Spring Cloud、Spring Cloud Alibaba版本如何选择
文章目录背景Spring Boot 版本趋势观望SpringCloud 版本Spring Cloud Alibaba 版本选择总结背景最近公司要拆分微服务,然后就是技术架构的选型,大致是使用主流的Spring Boot 和Spring Cloud、Spring Cloud Alibaba微服务框架,那么面对众多不同的版本我们该如何选择呢?Spring Boot 版本趋势观望我们先去中央仓库看看Spring Boot各个版本的使用情况大致可以看到使用各个版本的一个热度,人数使用多的版本相对来说肯定原创 2021-11-11 09:16:13 · 1437 阅读 · 0 评论 -
手写一个简易版断路器(hystrix)
理论基础根据熔断器模式(Circuit Breaker Pattern)共有上面几种状态Closed:默认状态,Circuit Breaker 内部维护着最近的失败次数(failure count)。每操作失败一次,失败次数就会加一。当失败次数达到设定的阈值,就会进入Open状态Open: 操作不会执行,会立即失败。Circuit Breaker 内部维护一个计时器。当时间达到设定的阈值,就会从Open状态进入到Half-Open状态Half-Open: 只要操作失败一次,立即进入Open状原创 2021-06-27 21:00:50 · 775 阅读 · 1 评论 -
分布式系统核心理论之CAP、BASE理论
CAPCAP是Consistency、Availablity、Partition-tolerance的缩写,由计算机科学家埃里克·布鲁尔在2000年提出的,所以又称布鲁尔定理(Brewer’s theorem),它指出对于一个分布式计算系统来说,不可能同时满足以下三点。Consistency(一致性):如果对任意一个节点的数据就行修改成功后,所有其他节点都能读取到最新的值,那么这个系统就被认为具有严格的一致性。Availability(可用性):每次请求都能获取到非错的响应,即单节点宕机可从其他节点原创 2021-05-16 13:27:06 · 2593 阅读 · 2 评论 -
SpringCloud Fegin 三方接口统一出参(统一验签)
在调用三方接口的时候我们为了接口安全一般会验签,比如调用所有三方接口都需要添加额外参数比如?signature=[signature]&key=[key]×tamp=[timestamp]这样会使用我们的接口调用参数显得冗余,且维护困难,在使用 Fegin 做第三方接口调用时,我们可以基于Fegin 开放的RequestInterceptor扩展接口来实现统一出参public class FeignInterceptor implements RequestInterce原创 2021-03-02 18:05:40 · 1638 阅读 · 0 评论 -
Springboot整合 openfeign(基于最新Hoxton.SR8)
文章目录项目整体结构依赖openfeign的一些配置order-service-apiorder-servicepay-service测试源码下载项目整体结构说明:所有公共依赖都放在了父pom中,API接口抽离放在单独模块依赖<properties> <java.version>1.8</java.version> <spring-cloud.version>Hoxton.SR8</spring-cloud.version原创 2020-09-13 11:15:24 · 4633 阅读 · 0 评论 -
SpringCloud(四)Eureka自我保护机制
Eureka自我保护机制默认情况下,EurekaClient会定时向EurekaServer端发送心跳,如果EurekaServer在一定时间内没有收到EurekaClient发送的心跳,便会把该实例从注册服务列表中剔除(默认是90秒),但是在短时间内丢失大量的实例心跳,这时候EurekaServer会开启自我保护机制,Eureka不会踢出该服务。自我保护模式可以让集群更加健壮,但是我们在开...原创 2019-12-09 20:53:29 · 1041 阅读 · 0 评论 -
springcloud(三,高可用eureka,集群eureka)
文章目录为什么要集群eureka搭建集群服务注册启动测试为什么要集群eureka如果我们只有一个注册中心eureka,这个注册中心如果挂了我们所有服务就直接全部挂了,所以我们需要对eureka做集群搭建集群创建两个eureka父依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://ma...原创 2019-11-30 21:38:30 · 345 阅读 · 0 评论 -
SpringCloud:SpringCloud:Ribbon实现客户端负载均衡(Greenwich版本,新手完整版)【二】
接着SpringCloud【一】文章目录1. Ribbon简介2. 搭建负载均衡Ribbon1. 在上一个项目的基础上我们再新建一个springboot项目并添加 Ribbon2. 修改配置文件:2. 修改启动类:3. 创建测试Service4. 创建测试Controler5. 测试1. Ribbon简介Ribbon是Netflix发布的负载均衡器,它有助于控制HTTP和TCP的客户端...原创 2019-05-21 17:17:44 · 410 阅读 · 0 评论 -
SpringCloud:服务的注册与发现Eureka(Greenwich版本,新手完整版)【一】
因为是刚入手springcloud,所以我的步骤会非常详细,适合小白新手一起学习准备工作:idea、maven首先创建一个主maven项目,maven项目起版本控制作用,不用引入其他依赖。具体操作如下:创建完成后pom.xml其实什么都没有我们来看看pom文件:<?xml version="1.0" encoding="UTF-8"?><projec...原创 2019-05-14 12:57:33 · 1379 阅读 · 0 评论