随笔分类 - SpringCloud
1
摘要:Spring Cloud 微服务之间的调用关系,通常随着业务的不断扩张而变得越来越复杂。如果调用链路上任何一个服务出现问题或者网络超时,导致通过日志快速排查和定位问题非常困难。分布式链路追踪就可以轻松解决该场景所面临的问题,其中一种比较简单的方案是采用 Spring Cloud Sleuth Spr
阅读全文
posted @ 2024-06-01 22:29
乔京飞
摘要:我们使用 spring cloud gateway 时,绝大部分情况下都是使用 application.yml 配置文件或者 nacos 、apollo 等配置中心存储路由信息,每当对路由进行增删改操作后,需要重启 gateway 服务才能生效。 在工作中也很可能会遇到这样的场景:用户想自己根据实际
阅读全文
posted @ 2024-05-23 17:59
乔京飞
摘要:Seata 的 TCC 模式需要通过人工编码来实现数据的回滚恢复,有点麻烦,但是性能最高。TCC 是 3 个方法的首字母缩写,即 Try 方法、Confirm 方法、Cancel 方法。Try 方法进行资源的检查和冻结,Confirm 方法是当所有事务都成功后调用的方法,Cancel 方法是当整体事
阅读全文
posted @ 2023-12-05 22:45
乔京飞
摘要:有了上篇博客实现 XA 模式的基础,本篇博客在实现 AT 模式时,不需要修改任何代码,只需要增加一张数据库表,修改以下 application.yml 配置即可实现。AT 模式也是分两个阶段提交的事务模型,它缺弥补了 XA 模型中资源锁定周期过长的问题。 其实现的两个阶段的工作原理如下: 第一阶段注
阅读全文
posted @ 2023-12-04 22:39
乔京飞
摘要:上篇博客已经搭建了分布式事务 Seata 的集群,本篇博客主要介绍如何使用 Seata 的 XA 模式。 XA 模式的规范是 X/Open 组织定义的分布式事务处理(DTP,Distributed Transaction Processing)标准,XA 模式规范描述了全局的 TM 与局部的 RM
阅读全文
posted @ 2023-12-03 14:30
乔京飞
摘要:Seata 是蚂蚁金服和阿里巴巴共同开源的一款分布式事务项目,致力于在微服务架构下提供高性能和简单易用的分布式事务解决方案。自诞生以来就备受国内开发人员推崇,在实际工作中使用者甚多。Seata 提供了四种不同的分布式事务解决方案: XA模式:强一致性分阶段事务模式,牺牲了一定的可用性,无业务侵入 T
阅读全文
posted @ 2023-11-20 22:39
乔京飞
摘要:Sentinel 是阿里的一款微服务请求监控组件,能够通过配置实现流量控制,降级熔断,热点参数限流,授权规则限流,使用非常方便。官方默认只提供了流量控制配置规则持久化代码实现,这也是我们最常用的,上篇博客已经实现并进行了部署。 本篇博客基于上篇博客搭建好的 Sentinel 和 Nacos 环境,介
阅读全文
posted @ 2023-11-09 22:26
乔京飞
摘要:早期大家都使用 netflix 公司的 Hystrix 组件,通过编写代码实现对微服务接口的限流、熔断、隔离等保护措施,由于 Hystrix 组件不再更新迭代,逐渐被大家抛弃。当前大家基本上都使用阿里的 Sentinel 技术实现对微服务接口的访问监控和保护,其最大的优点就在于基本上不需要编代码,只
阅读全文
posted @ 2023-11-07 20:43
乔京飞
摘要:SpringCloud 是当前比较流行的微服务开发框架,因此很有必要介绍一下 SpringCloud 集成和使用 Dubbo 技术。本篇博客在上一篇博客的 Demo 基础上,对 pom 文件和 yml 配置文件进行了修改,就可以完成 SpringCloud 集成和使用 Dubbo 的 Demo。是的
阅读全文
posted @ 2023-07-15 21:26
乔京飞
摘要:Nacos 不但可以作为注册中心,同时也可以作为配置中心,方便我们对 SpringCloud 中的各个 SpringBoot 微服务的配置进行统一的管理维护。尤其是当微服务数量较多,并且在不同的服务器上进行部署时,使用配置中心进行统一管理维护的优势就更加明显。 本篇博客仍然使用之前搭建的 Nacos
阅读全文
posted @ 2023-05-28 12:33
乔京飞
摘要:越来越多的国内公司使用 SpringCloudAlibaba 技术,其产品 Nacos 功能强大,同时具有注册中心和配置中心的功能。前面的博客已经介绍了如何安装部署 Nacos ,本篇博客就使用之前部署好的 Nacos 集群(当然你也可以部署并使用单节点的 Nacos),介绍 Java 程序代码如何
阅读全文
posted @ 2023-05-22 17:21
乔京飞
摘要:SpringCloud Gateway 是目前非常流行的网关中间件,类似于 nginx 一样,主要提供【路由转发】和【负载均衡】功能,目的是为微服务架构提供一种简单而有效的统一的 API 路由管理方式。 我们通常也会在网关中添加【身份认证】和【鉴权】,阻止非法请求访问后端服务。 SpringClou
阅读全文
posted @ 2022-11-21 22:51
乔京飞
摘要:Hystrix 的降级熔断只是被迫的折中方案,并不是我们所期望的结果,我们还是期望系统能够永远健康运行。绝大多数情况下,一个系统有很多微服务组成,高峰期很可能个别微服务会发生降级熔断,我们必须能够通过监控才行,这样才能快速发现并解决问题。 Hystrix 是 Netflix 的产品,其提供的仪表盘监
阅读全文
posted @ 2022-10-05 12:23
乔京飞
摘要:Hystrix 在服务端接口默认开启并支持了熔断机制,可以使用 @HystrixCommand 注解中的 commandProperties 进行熔断参数自定义配置,默认情况下对于一个接口来说,5 秒钟发生 20 次降级,或者失败率达到 50% 时,就会触发熔断机制。 所谓熔断机制,可以举一个简单的
阅读全文
posted @ 2022-09-17 20:51
乔京飞
摘要:前面已经介绍了 Hystrix 服务端降级的实现方案,本篇博客将介绍 Hystrix 在客户端降级的实现方案。 由于我使用最新版的 SpringCloud(版本 2021.0.3)实现客户端降级没有成功,所以就拿相对比较稳定的 SpringCloud(版本 Hoxton.SR12)和对应的 Spri
阅读全文
posted @ 2022-09-04 22:57
乔京飞
摘要:Hystrix 是 Netflix 公司提供的一个开源免费组件,主要用于降级熔断服务调用,防止系统出现级联失败(也就是通常所说的雪崩)。我们在实际开发中,需要在服务端和客户端都有降级措施,结合后续将要介绍的熔断,最大限度的保护系统的正常运行。 SpringCloud 从 2020.0.1 版本已经移
阅读全文
posted @ 2022-09-03 23:34
乔京飞
摘要:Feign 组件最初由 Netflix 公司提供,由于不支持 SpringMVC 注解,所以 SpringCloud 对其封装并进行支持,因此产生了 OpenFeign 组件。Feign 是一个声明式的 REST 客户端,它采用基于接口的注解方式,具有代码简洁、使用方便的优势。 本篇博客仍然使用最新
阅读全文
posted @ 2022-09-02 12:10
乔京飞
摘要:SpringCloud 在 2020.0.1 版本之前,服务的消费者在引入 spring-cloud-starter-netflix-eureka-client 的依赖后(该依赖内置了 Ribbon 依赖),就可以使用 Ribbon 客户端负载均衡了。Ribbon 支持 10 种客户端负载均衡策略,
阅读全文
posted @ 2022-08-31 13:46
乔京飞
摘要:SpringCloud 从 2020.0.1 版本开始,从 Eureka 中移除了 Ribbon 组件,使用 LoadBalance 组件来代替 Ribbon 实现客户端负载均衡。LoadBalance 组件相对于 Ribbon 来说,仅支持两种负载均衡策略:【轮询策略】和【随机策略】,估计后续会增
阅读全文
posted @ 2022-08-27 19:50
乔京飞
摘要:近年来微服务非常流行,鼎鼎大名的 SpringCloud 就是专门为微服务技术开发而提供的解决方案。 SpringCloud 是一系列框架的有序集合,它将市场上各个公司比较成熟的并且经过实战检验的服务进行组合,采用 SpringBoot 技术进行再次封装,屏蔽掉复杂的配置和底层实现细节,最终提供给开
阅读全文
posted @ 2022-08-21 23:41
乔京飞
1
浙公网安备 33010602011771号