
Spring Cloud Alibaba专题
文章平均质量分 94
码炫课堂-码哥
一名有10余年经验的互联网老兵,历经从传统软件公司到大型互联网公司的洗礼,早年在中兴通讯等大型通信公司担任项目leader,后随着互联网的崛起,先后在前美团支付等大型互联网公司担任架构师。对互联网架构底层技术有相当的研究和独特的见解,在多个领域有着丰富的实战经验。
展开
-
Spring Cloud Alibaba微服务实战三十六 - 使用Feign的一些问题以及如何解决?
本文对Feign在使用过程中会遇到的问题做了个小小的总结,也提出了自己可能不太成熟的解决方案。原创 2024-04-14 16:22:24 · 1008 阅读 · 0 评论 -
Spring Cloud Alibaba微服务实战三十五 - 退出登录注销 jwt token
作者简介:大家好,我是哥,前中兴通讯、美团架构师,现某互联网公司联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬学习必须往深处挖,挖的越深,基础越扎实!前几天有一个看我SpringCloud alibaba系列文章的粉丝私下问我:如何处理jwt失效的问题?修改密码或退出登录后需要将之前的jwt token失效掉,不允许使用旧token登录系统。我说:很简单呀,咱们直接 无为而治,用户退出或修改密码的时候前端直接删除这个token不就完了吗?原创 2024-04-14 16:15:53 · 804 阅读 · 0 评论 -
Spring Cloud Alibaba微服务实战三十四 - 隐私接口禁止外部访问
作者简介:大家好,我是哥,前中兴通讯、美团架构师,现某互联网公司联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬学习必须往深处挖,挖的越深,基础越扎实!在SpringCloud实战系列文章中曾经介绍过在SpringCloud体系下如何防止前端请求绕过网关直接到达后端微服务,今天我们要反其道而行之,介绍在SpringCloud体系中如何防止内部隐私接口被网关调用。看到这里可能有的同学会有点晕,怎么还有这种业务场景呢,别急,咱们先回顾一下我们的业务场景。原创 2024-04-14 16:13:02 · 1079 阅读 · 0 评论 -
Spring Cloud Alibaba微服务实战三十三 - 实现网关的灰度发布
这篇文章来源于粉丝提出的一个问题:如何解决多环境统一注册中心服务实例乱窜?怎么理解呢?假设现在开发环境的AccountService已经在Nacos中注册了,现在小张需要对它进行修改升级,本地启动AccountService后也注册到了Nacos,但是在调试的时候请求通过网关经常直接跳转到开发环境,这样的话小张就没办法安心debug了。其实这个问题归根结底是如何基于SpringCloud Gateway实现灰度发布,通过指定的规则让请求流量到达特定的实例。原创 2024-04-14 08:27:28 · 1546 阅读 · 0 评论 -
Spring Cloud Alibaba微服务实战三十二 - 集成RocketMQ实现分布式事务
分布式事务是在微服务开发中经常会遇到的一个问题,之前的文章中我们已经实现了利用Seata来实现强一致性事务,其实还有一种广为人知的方案就是利用消息队列来实现分布式事务,保证数据的最终一致性,也就是我们常说的柔性事务。原创 2024-04-14 08:22:56 · 866 阅读 · 0 评论 -
Spring Cloud Alibaba微服务实战三十一 - 业务日志组件
建立一个自定义注解,标注业务操作类型通过AOP组装日志实体,完成日志的收集工作但是在微服务架构中我们不可能每个服务都写一个自定义注解,再写一个AOP,这很明显违反了 Don’t repeat yourself 精神。所以这时候我们一般都会建立一个公共的组件,在公共组件中完成日志的收集,后端服务只需要引入这个公共的组件即可。这就是今天文章的内容,独立的业务日志收集组件。原创 2024-04-14 08:18:23 · 782 阅读 · 0 评论 -
Spring Cloud Alibaba微服务实战三十 - 统一资源服务器配置模块
作者简介:大家好,我是哥,前中兴通讯、美团架构师,现某互联网公司联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬学习必须往深处挖,挖的越深,基础越扎实!前面文章咱们对比过网关授权与微服务授权的区别,文章也提到了,如果要实现微服务授权,一般会构建一个独立的资源服务器配置模块,否则每个后端业务都需要进行资源服务器的配置,那本节内容我们就来完成此功能。由于间隔时间较久,建议先阅读下面两篇相关文章回顾一下。话不多说,我们直接开始代码改造。原创 2024-04-13 18:51:33 · 967 阅读 · 0 评论 -
Spring Cloud Alibaba微服务实战二十九 - SpringCloud Gateway 请求响应日志
作者简介:大家好,我是哥,前中兴通讯、美团架构师,现某互联网公司联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬学习必须往深处挖,挖的越深,基础越扎实!请求响应日志是日常开发调试定位问题的重要手段,在微服务中引入SpringCloud Gateway后我们希望在网关层统一进行日志的收集。原创 2024-04-13 18:47:56 · 1388 阅读 · 0 评论 -
Spring Cloud Alibaba微服务实战二十八 - 网关授权VS微服务授权
作者简介:大家好,我是哥,前中兴通讯、美团架构师,现某互联网公司联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬学习必须往深处挖,挖的越深,基础越扎实!两种方式在此系列文章中都有实现方案,那么问题来了:哪种才是最优方案,哪种方案更合理呢?很抱歉,看完这篇文章你也不一定能得到你想要的答案,因为结论是并没有最优方案,两种方案各有千秋,只有根据自身业务选择对应的方案。本文我们将两种方案做一个简单对比,以便大伙在做方案决策有个选择参考。原创 2024-04-13 18:44:28 · 869 阅读 · 0 评论 -
Spring Cloud Alibaba微服务实战二十七 - 禁止直接访问后端服务
使用SpringCloud架构后我们希望所有的请求都需要经过网关才能访问,在不作任何处理的情况下我们是可以绕过网关直接访问后端服务的。如下,我们绕过网关直接访问后端服务也是可以获取到数据的。那我们今天的议题就是如何防止请求绕过网关直接访问后端服务?原创 2024-04-13 15:59:01 · 877 阅读 · 0 评论 -
Spring Cloud Alibaba微服务实战二十六 - Oauth2认证服务器自定义异常
今天内容主要是解决一位粉丝提的问题:在使用时如何自定义认证服务器返回异常。那么首先我们先以Password模式为例看看在认证时会出现哪些异常情况。授权模式错误这里我们故意将授权模式password修改成password1,认证服务器返回如下所示的异常密码错误在认证时故意输错username或password客户端错误在认证时故意输错client_id或上面的返回结果很不友好,而且前端代码也很难判断是什么错误,所以我们需要对返回的错误进行统一的异常处理,让其返回统一的异常格式。原创 2024-04-13 15:56:21 · 801 阅读 · 0 评论 -
Spring Cloud Alibaba微服务实战二十五 - 网关Restful接口拦截
之前在集成RBAC授权的文章中提到了SpringCloud可以「基于路径匹配器授权」在网关层进行用户权限校验,这种方式的实现原理是Springcloud Gateway接受到请求后根据方法基于校验当前访问的URL是否在用户拥有的权限URL中,如果能匹配上则说明拥有访问权限并放行到后端服务,否则提示用户无访问权限。不过之前的实现方式有个问题,就是不支持restful风格的url路径。例如一个微服务有如下API这样在网关通过方法获取到用户请求路径的时候都是同一个地址,给一个用户授予权限后他就拥有了。原创 2024-04-13 15:53:26 · 820 阅读 · 0 评论 -
Spring Cloud Alibaba微服务实战二十四 - SpringCloud Gateway的全局异常处理
在单体SpringBoot项目中我们需要捕获全局异常只需要在项目中配置和就可以针对不同类型异常进行统一处理,统一包装后返回给前端调用方。@Slf4j/*** 默认全局异常处理。*/log.error("全局异常信息 ex={}", e.getMessage(), e);但是在微服务架构下,例如网关调用业务系统失败(比如网关层jwt token解析异常、服务下线)这时候应用层的就会不生效,因为此时流量根本没到应用层。jwt解析异常jwt解析异常服务下线服务下线异常。原创 2024-04-13 08:32:46 · 1463 阅读 · 0 评论 -
Spring Cloud Alibaba微服务实战二十三 - Feign 性能调优
类:默认的 feign.Client 客户端实现类,内部使用完成HTTP URL请求处理;类:内部使用开源组件完成HTTP URL请求处理的feign.Client 客户端实现类;类:内部使用OkHttp3开源组件完成HTTP URL请求处理的feign.Client 客户端实现类。...在前面一节内容中我们看到Feign默认客户端实现性能不是很好,与Dubbo RPC的性能相差很大。基于的测试结果如下:聚合报告平均响应时间吞吐量最小响应时间最大响应时间6866ms59.5/sec。原创 2024-04-13 08:30:12 · 1142 阅读 · 0 评论 -
Spring Cloud Alibaba微服务实战二十一 - 整合Dubbo
在Spring Cloud构建的微服务系统中,大多数的开发者使用都是官方提供的Feign组件来进行内部服务通信,这种声明式的HTTP客户端使用起来非常的简洁、方便、优雅,但是有一点,在使用Feign消费服务的时候,相比较Dubbo这种RPC框架而言,性能较差。虽说在微服务架构中,会讲按照业务划分的微服务独立部署,并且运行在各自的进程中。微服务之间的通信更加倾向于使用HTTP这种简答的通信机制,大多数情况都会使用REST API。原创 2024-04-13 08:27:14 · 1226 阅读 · 0 评论 -
Spring Cloud Alibaba微服务实战二十一 - JWT增强
*原创 2024-04-12 19:01:14 · 1050 阅读 · 0 评论 -
Spring Cloud Alibaba微服务实战二十 - 集成Feign的降级熔断
首先我们看看不使用熔断器的情况下调用一个没有启动的服务会出现什么效果,然后再来看看使用sentinel熔断器后的效果。如上,我们使用order-service中调用account-service中的接口,在没启用熔断器的情况下,接口会抛出500异常。原创 2024-04-12 18:56:45 · 1045 阅读 · 0 评论 -
Spring Cloud Alibaba微服务实战十九 - 集成RBAC授权
前面几篇文章我们一直是在实现SpringCloud体系中的认证功能模块,验证当前登录用户的身份;本篇文章我们来讲SpringCloud体系中的授权功能,验证你是否能访问某些功能。原创 2024-04-12 18:53:34 · 803 阅读 · 0 评论 -
Spring Cloud Alibaba微服务实战十八 - Oauth2.0 自定义授权模式
学习必须往深处挖,挖的越深,基础越扎实!阶段1、深入多线程阶段2、深入多线程设计模式阶段3、深入juc源码解析阶段4、深入jdk其余源码解析阶段5、深入jvm源码解析码哥源码部分码哥讲源码-原理源码篇【2024年最新大厂关于线程池使用的场景题】码哥讲源码【炸雷啦!炸雷啦!黄光头他终于跑路啦!】码哥讲源码-【jvm课程前置知识及c/c++调试环境搭建】码哥讲源码-原理源码篇【揭秘join方法的唤醒本质上决定于jvm的底层析构函数】码哥源码-原理源码篇【Doug Lea为什么要将成员变量原创 2024-04-12 08:14:13 · 1014 阅读 · 0 评论 -
Spring Cloud Alibaba微服务实战十七 - JWT认证
在 OAuth2 体系中认证通过后返回的令牌信息分为两大类:原创 2024-04-12 08:08:37 · 628 阅读 · 0 评论 -
Spring Cloud Alibaba微服务实战十六 - 版本升级
好久没有更新SpringCloud Alibaba 系列的文章了,今天我们来将版本升级到最新的毕业版本。并且将原来容器化部署的组件seata、nacos、sentinel拉出来单独部署,为我们后面k8s部署作准备。官方推荐版本如下:这篇文章主要是讲升级过程中遇到的一些问题并讲述解决的过程与方法,如果要了解详细用法还请翻看之前的文章。原创 2024-04-12 08:04:40 · 1053 阅读 · 0 评论 -
Spring Cloud Alibaba微服务实战十五 - SpringCloud 容器化部署
SpringCloud Alibaba 系列文章已经写了 15 篇了,基本框架大体完成,业务相关的逻辑还需要根据项目本身的业务进行梳理改造。今天将是本系列的最后一篇 - SpringCloud 容器化部署(理论上最后一篇,不排除后面会对相关组件进行升级)由于我是在 windows 上进行开发没有安装 docker,所以需要找一台安装好 docker 的服务器并开启远程访问。联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬。学习必须往深处挖,挖的越深,基础越扎实!原创 2024-04-11 21:06:15 · 725 阅读 · 1 评论 -
Spring Cloud Alibaba微服务实战十四 - SpringCloud Gateway集成Oauth2.0
在webFlux环境下通过实现接口 自定义认证接口管理,由于我们的token是存在jdbc中所以命名上就叫@Slf4j@Override//根据access_token从数据库获取不到OAuth2AccessTokenreturn Mono.error(new InvalidTokenException("Access Token 无效!"));}else {原创 2024-04-11 21:03:14 · 1379 阅读 · 0 评论 -
Spring Cloud Alibaba微服务实战十三 - Oauth2.0安全认证
*原创 2024-04-11 20:58:06 · 909 阅读 · 0 评论 -
Spring Cloud Alibaba微服务实战十二 - 网关限流
SpringCloud-gateway限流异常默认的实现逻辑为,可以查看源码发现异常响应的关键代码如下由于服务后端都是返回JSON的响应格式,所以我们需要修改原异常响应,将其修改成ResultData类的响应格式。要实现这个功能只需要写个新的异常处理器然后在SpringCloud GateWay配置类中注入新的异常处理器即可。自定义异常处理器.../*** 重写限流响应,改造成JSON格式的响应数据*/@Override} else {return!...大家可以直接复制。原创 2024-04-11 14:50:37 · 1029 阅读 · 0 评论 -
Spring Cloud Alibaba微服务实战十一 - Swagger接口文档聚合
在当下很多项目都会采用前后端分离的模式,前端和后端的工作由不同的开发人员完成。在这种开发模式下,我们需要维护一份及时更新且完整的Rest API接口文档。传统意义上的文档都是后端人员在开发相关接口后手动更新到接口文档上,但是这种方式很难保证文档的及时性,而且由于一些原因后端开发人员可能会忘记更新,这样就会导致随着开发的进行接口文档会失去他本身的参考意义,反而会增加沟通成本。原创 2024-04-11 14:47:40 · 1266 阅读 · 0 评论 -
Spring Cloud Alibaba微服务实战十 - 服务网关
我们有了三个服务。现在有客户端WEB应用或APP应用需要访问后端服务获取数据那么就需要在客户端维护好三个服务的访问路径。每个微服务都需要配置单独的访问域名,开通外网访问权限,每新增一个服务都需要先让运维人员配置好域名映射客户端需要维护所有微服务的访问地址,试想一下如果微服务有几十几百个呢?当服务需要对接口进行权限控制,必须要认证用户才能调用,那么所有的权限逻辑在服务端都要重新编写一套。。。。所以我们需要在微服务之前加一个网关服务,让所有的客户端只要访问网关,网关负责对请求进行转发;原创 2024-04-11 14:45:10 · 900 阅读 · 0 评论 -
Spring Cloud Alibaba微服务实战九 - Seata 容器化
通过前两篇文章我们使用了Seata作为分布式事务组件,并使用Nacos作为Seata的注册配置中心,本篇文章我们将Seata部署在容器Docker上。原创 2024-04-11 09:00:03 · 833 阅读 · 0 评论 -
Spring Cloud Alibaba微服务实战八 - Seata 整合Nacos
作者简介:大家好,我是哥,前中兴通讯、美团架构师,现某互联网公司联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬学习必须往深处挖,挖的越深,基础越扎实!本篇作为SpringCloud Alibaba微服务实战系列的第八篇,主要内容是让Seata使用Nacos作为注册配置中心。系列文章,欢迎持续关注。原创 2024-04-11 08:57:03 · 717 阅读 · 0 评论 -
Spring Cloud Alibaba微服务实战七 - 分布式事务
作者简介:大家好,我是哥,前中兴通讯、美团架构师,现某互联网公司联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬学习必须往深处挖,挖的越深,基础越扎实!导读:本篇作为SpringCloud Alibaba微服务实战系列的第七篇,主要内容是使用Seata解决分布式事务问题。系列文章,欢迎持续关注。原创 2024-04-11 08:46:23 · 1147 阅读 · 0 评论 -
Spring Cloud Alibaba微服务实战六 - 配置隔离
作者简介:大家好,我是哥,前中兴通讯、美团架构师,现某互联网公司联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬学习必须往深处挖,挖的越深,基础越扎实!导读:本篇作为SpringCloud Alibaba微服务实战系列的第六篇,主要内容是将所有的微服务接入Nacos配置中心并按环境进行隔离。系列文章,欢迎持续关注。原创 2024-04-10 20:04:12 · 890 阅读 · 0 评论 -
Spring Cloud Alibaba微服务实战五 - 限流熔断
Sentinel是面向分布式服务框架的轻量级流量控制框架,主要以流量为切入点,从流量控制,熔断降级,系统负载保护等多个维度来维护系统的稳定性。在SpringCloud体系中,sentinel主要是为了替换原Hystrix的功能,与Hystrix相比,sentinel的隔离级别更加精细,提供的Dashboard可以在线更改限流熔断规则,而且使用也越加方便。要了解更多详细信息请移步至Sentinel官网。我们可以通过中添加参数,给其添加自定义异常方法。/*** 自定义异常策略。原创 2024-04-10 19:59:30 · 875 阅读 · 0 评论 -
Spring Cloud Alibaba微服务实战四 - 版本管理
BOM(Bill of Materials)是由Maven提供的功能,它通过定义一整套相互兼容的jar包版本集合,使用时只需要依赖该BOM文件,即可放心的使用需要的依赖jar包,且无需再指定版本号。BOM的维护方负责版本升级,并保证BOM中定义的jar包版本之间的兼容性。原创 2024-04-10 19:56:22 · 924 阅读 · 0 评论 -
Spring Cloud Alibaba微服务实战三 - 服务调用
作者简介:大家好,我是哥,前中兴通讯、美团架构师,现某互联网公司联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬学习必须往深处挖,挖的越深,基础越扎实!导读:通过前面两篇文章我们准备好了微服务的基础环境并让accout-service 和 product-service对外提供了增删改查的能力,本篇我们的内容是让order-service作为消费者远程调用accout-service和product-service的服务接口。原创 2024-04-10 14:49:39 · 1071 阅读 · 0 评论 -
Spring Cloud Alibaba微服务实战二 - 服务注册
作者简介:大家好,我是哥,前中兴通讯、美团架构师,现某互联网公司联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬学习必须往深处挖,挖的越深,基础越扎实!在之前一篇文章中我们准备好了基于的基础组件,本期主要内容是将所有的服务注册进 Nacos,并让和能对外提供基础的增删改查能力。原创 2024-04-10 14:45:59 · 1072 阅读 · 0 评论 -
Spring Cloud Alibaba微服务实战一 - 基础环境准备
作者简介:大家好,我是哥,前中兴通讯、美团架构师,现某互联网公司联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬学习必须往深处挖,挖的越深,基础越扎实!本系列文章使用SpringCloud Alibaba一步一步构建你的微服务架构体系,这是第一篇“基础环境准备”,欢迎大家持续关注!原创 2024-04-10 14:43:32 · 683 阅读 · 0 评论