spring-cloud
godkzz
多多益善
展开
-
Redis搭配RedisTemplate实现分布式锁实战实例
一、SETNX在Redis中一般会使用setnx命令实现分布式锁。当使用setnx命令设置一个kv时如:setnx lockKey lockValue当lockKey存在时,会返回1时表示设置成功。当lockKey不存在时,会返回0时表示设置值失败。根据以上理论就可以实现redis的分布式锁:加锁第一版:只使用setnx,这种方式的缺点是容易产生死锁,因为有可能忘记解锁,或者解锁失败。setnx key value第二版:给锁增加了过期时间,避免出现死锁原创 2022-01-13 18:00:53 · 11796 阅读 · 0 评论 -
Seata分布式事务失效,不生效(事务不回滚)的常见场景
一、微服务没有正常获取XID检查方法:在每个微服务中调用方法 RootContext.getXID() 检查XID例如,服务A调用了服务B和服务C那么可以分别在服务A、服务B、服务C的事务方法中添加===============服务A@Servicepublic class ServiceAImpl implements IServiceA{ private static final Logger log = LoggerFactory.getLogger(Serv原创 2022-01-09 22:55:40 · 14304 阅读 · 2 评论 -
Seata启动错误Communications link failure解决方法
1.检查jdbc驱动版本和mysql版本是否一致2.检查jdbc连接地址是否正确有可能是因为版本问题,连接地址参数中没有加上时区:jdbc:mysql://127.0.0.1:3306/ry-seata?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B83.检查driverClassN..原创 2022-01-08 17:54:32 · 2148 阅读 · 0 评论 -
Spring Cloud Hystrix熔断器的隔离策略
微服务使用Hystrix熔断器实现了服务的自动降级,让微服务具备自我保护的能力,提升了系统的稳定 性,也较好的解决雪崩效应。其使用方式目前支持两种策略:线程池隔离策略:使用一个线程池来存储当前的请求,线程池对请求作处理,设置任务返回处理超 时时间,堆积的请求堆积入线程池队列。这种方式需要为每个依赖的服务申请线程池,有一定的资 源消耗,好处是可以应对突发流量(流量洪峰来临时,处理不完可将数据存储到线程池队里慢慢处 理) 信号量隔离策略:使用一个原子计数器(或信号量)来记录当前有多少个线程在运行,请求来先原创 2021-10-23 16:55:08 · 222 阅读 · 0 评论 -
Spring Cloud Ribbon 中的请求重试
场景:当消费者调用服务A,而服务A宕机或网络出现异常时,Ribbon会重新发送请求到服务B上完成请求。重试实现:引入spring的重试组件 在maven引入依赖<dependency> <groupId>org.springframework.retry</groupId> <artifactId>spring-retry</artifactId></dependency>对r...原创 2021-09-21 19:25:43 · 219 阅读 · 0 评论 -
Spring Cloud Ribbon 概述与基本实现
一、什么是Ribbon是 Netflixfa 发布的一个负载均衡器,有助于控制 HTTP 和 TCP客户端行为。在 SpringCloud 中, Eureka一般配合Ribbon进行使用,Ribbon提供了客户端负载均衡的功能,Ribbon利用从Eureka中读 取到的服务信息,在调用服务节点提供的服务时,会合理的进行负载。 在SpringCloud中可以将注册中心和Ribbon配合使用,Ribbon自动的从注册中心中获取服务提供者的 列表信息,并基于内置的负载均衡算法,请求服务。二、Ribbo原创 2021-09-21 17:59:37 · 180 阅读 · 0 评论 -
Spring Cloud Ribbon的负载均衡策略
Ribbon内置了多种负载均衡策略,内部负责复杂均衡的顶级接口为 com.netflix.loadbalancer.IRule ,实现方式如下com.netflix.loadbalancer.RoundRobinRule :以轮询的方式进行负载均衡。 com.netflix.loadbalancer.RandomRule :随机策略 com.netflix.loadbalancer.RetryRule :重试策略。 com.netflix.loadbalancer.WeightedRespo.原创 2021-09-21 16:02:55 · 196 阅读 · 0 评论 -
Spring Cloud eurekaServer的启动流程
原创 2021-09-20 23:11:18 · 94 阅读 · 0 评论