spring cloud 入门
文章平均质量分 82
介绍一些spring cloud 的基础知识和用法,以及提供对应的案例。
huan_1993
这个作者很懒,什么都没留下…
展开
-
Nacos单机模式下,SpringCloud程序注册到nacos上,报server is DOWN now, please try again later的解决方法
记录一下当出现 server is DOWN now, please try again later 这个错误时,如何解决此问题原创 2024-07-06 17:38:11 · 451 阅读 · 0 评论 -
Spring Cloud灰度部署
在我们系统发布生产环境时,有时为了确保新的服务逻辑没有问题,会让一小部分特定的用户来使用新的版本(比如客户端的内测版本),而其余的用户使用旧的版本,那么这个在Spring Cloud中该如何来实现呢?原创 2023-06-21 08:33:22 · 914 阅读 · 0 评论 -
Spring Cloud Alibaba实现服务的无损下线功能
最近用到了`Spring Cloud Alibaba`开发微服务,在开发的过程中发现,当我们的`服务上线`或`下线`的时候,我们的`Spring Cloud Gateway`需要一段时间才能感知到,那么有没有办法能够让服务立即感知到呢?`答案是可以的`。原创 2023-03-13 12:32:11 · 1304 阅读 · 0 评论 -
SpringBoot扩展点EnvironmentPostProcessor
之前项目中用到了Apollo配置中心,对接Apollo配置中心后,配置中心的属性就可以在程序中使用了,那么这个是怎么实现的呢?配置中心的属性又是何时加载到程序中的呢?那么我们如果找到了这个是怎么实现的是否就可以 从任何地方加载配置属性、配置属性的加解密功能呢?原创 2022-04-25 13:19:20 · 1462 阅读 · 0 评论 -
seata代码控制回滚和临时挂起分布式事物
一、说明此处只是简单的记录一下,使用了 Seata后,如何手动 回滚分布式事物和临时挂起分布式事务,Seata的整合不做详细的说明。二、功能实现1、手动回滚分布式事物class 手动回滚分布式事物{ public void 部分代码() { if (RootContext.inGlobalTransaction()) { try { GlobalTransactionContext.reload(RootContext.原创 2021-09-29 09:33:53 · 766 阅读 · 0 评论 -
springcloud整合seata
springcloud整合seata一、背景二、项目结构三、实现功能:四、项目使用到的技术五、整合步骤1、引入spring-cloud-starter-alibaba-seata jar包2、涉及到的业务库操作1、业务库需要存在 undo_log 表2、业务表主键3、页面中自动更新时间戳3、开启数据源代理1、自动配置数据源代理2、手动配置AT模式数据源代理1、配置文件关闭自动数据源代理2、配置配置数据源4、传递 xid5、事务分组和seata server对应上6、注册中心和配置中心7、业务方法加上@Glo原创 2021-09-27 14:35:45 · 839 阅读 · 1 评论 -
Spring Cloud Gateway 网关限流
Spring Cloud Gateway 限流一、背景二、实现功能三、网关层限流1、使用默认的redis来限流1、引入jar包2、编写配置文件3、网关正常响应4、网关限流响应2、自定义限流算法和限流key1、自定义限流key2、自定义限流算法3、配置文件中的写法四、完成代码五、参考文档一、背景在我们平时开发过程中,一般一个请求都是需要经过多个微服务的,**比如:**请求从A服务流过B服务,如果A服务请求过快,导致B服务响应慢,那么必然会导致系统出现问题。因为,我们就需要有限流操作。二、实现功能提原创 2021-09-07 13:31:37 · 949 阅读 · 0 评论 -
Spring Cloud Gateway + Jwt + Oauth2 实现网关的鉴权操作
Spring Cloud Gateway + Jwt + Oauth2 实现网关的鉴权操作一、背景二、需求三、前置条件四、项目结构五、网关层代码的编写1、引入jar包2、自定义授权管理器3、token认证失败、或超时的处理4、用户没有权限的处理5、将token信息传递到下游服务器中6、网关层面的配置7、网关yaml配置文件六、演示七、代码路径一、背景随着我们的微服务越来越多,如果每个微服务都要自己去实现一套鉴权操作,那么这么操作比较冗余,因此我们可以把鉴权操作统一放到网关去做,如果微服务自己有额外的鉴权原创 2021-08-25 20:54:04 · 2054 阅读 · 6 评论 -
Spring Security Resource Server的使用
一、背景在前一节我们学习了 Spring Authorization Server的使用,此处我们简单的记录下 Spring 资源服务器的使用。二、需求资源服务器提供2个资源 ,userInfo 和 hello。userInfo:资源是受保护的资源,需要user.userInfo权限才可以访问。hello:资源是公开资源,不要权限即可访问。三、分析1、如何验证资源服务器中访问的令牌是有效的?此处只考虑JWT的令牌。令牌是授权服务器颁发的,且进行了签名操作,因此资源服务器对令牌的验证,就原创 2021-07-17 21:53:48 · 2587 阅读 · 11 评论 -
Spring Authorization Server的使用
一、背景在 Spring Security 5中,现在已经不提供了 授权服务器 的配置,但是 授权服务器 在我们平时的开发过程中用的还是比较多的。不过 Spring 官方提供了一个 由Spring官方主导,社区驱动的授权服务 spring-authorization-server,目前已经到了 0.1.2 的版本,不过该项目还是一个实验性的项目,不可在生产环境中使用,此处来使用项目搭建一个简单的授权服务器。二、前置知识1、了解 oauth2 协议、流程。可以参考阮一峰的这篇文章2、JWT、JWS、J原创 2021-07-16 14:42:34 · 2794 阅读 · 15 评论 -
通过Nacos动态刷新Spring Cloud Gateway的路由
通过Nacos动态刷新Spring Cloud Gateway的路由一、背景二、解决方案三、实现功能四、实现步骤1、网关服务的实现1、pom文件2、bootstrap.yml配置文件3、启动类4、nacos上网关的配置5、网关配置完成2、商品服务的实现五、实现效果六、完成代码七、参考文档一、背景最近在学习Spring Cloud Gateway,而我们的路由配置默认情况下是写在配置文件中的,这样当我们有一个新的服务接入时,需要修改配置文件,然后重启网关应用程序,那么我们是否可以在不停止网关的情况下,动态原创 2021-06-17 16:56:25 · 1549 阅读 · 1 评论 -
Spring父子上下文的使用案例
一、背景最近在看在使用Spring Cloud的时候发现,当我们通过Feign去调用别的微服务时,当我们有多个Feign客户端(比如:用户微服务、商品微服务)时,是可以为每个Feign客户端配置不同的实现,比如:用户微服务使用Feign默认的契约,而商品微服务可以使用Spring MVC 的契约格式,那么这个是怎么实现的呢?此处我们写一个简单的例子来模拟一下。二、需求假设我们存在一个 CommonApi的接口,用户微服务(user)和我们的调用方分别实现这个接口,实现不同的功能,而我们的产品微服务(p原创 2021-06-08 16:46:52 · 526 阅读 · 0 评论 -
eureka优雅下线某个服务
eureka优雅下线某个服务一、需求二、实现步骤1、使用 eureka 的 rest api 查询服务列表2、使用 eureka 的 rest api 将 服务的状态标记为`DOWN`。3、正常关闭服务、启动服务三、 eureka rest api四、参考链接一、需求在我们项目发布的时候,如果我们的注册中心使用的是eureka,当我们有多个服务实例,在发布某个服务的时候希望达到平滑的发布,不要在服务的调用过程中出现错误。eg:比如:我们的商品服务有2个,我们发布的时候,先发实例A,在发实例B。 假原创 2021-03-26 21:06:53 · 1632 阅读 · 0 评论 -
Spring Cloud Alibaba Nacos Config 的使用
Spring Cloud Alibaba Nacos Config 的使用一、需求二、实现功能1、加载 product-provider-dev.yaml 配置文件2、实现配置的自动刷新3、实现加载多个配置文件4、配置文件的优先级三、注意事项四、功能实现1、加载 单个 配置文件1、data id 的定义:2、和 nacos 相关的配置放置的位置2、实现配置的自动刷新3、实现加载多个配置文件4、配置文件的优先级五、代码路径六、参考链接一、需求主要实现 nacos 作为配置中心的一些使用方法。二、实现功能原创 2020-11-22 13:43:47 · 281 阅读 · 0 评论 -
Spring Cloud Gateway GatewayFilter的使用
Spring Cloud Gateway GatewayFilter的使用一、GatewayFilter的作用二、Spring Cloud Gateway内置的 GatewayFilter1、AddRequestHeader1、描述2、参数3、示例1、方式一、添加一个固定的请求头2、配合 uri variables 添加动态请求头2、AddRequestParameter1、描述2、参数3、示例3、AddResponseHeader1、描述2、参数3、示例4、DedupeResponseHeader1、描述原创 2020-11-01 23:34:54 · 6455 阅读 · 0 评论 -
Spring Cloud Gateway Route Predicate Factory 的使用
Spring Cloud Gateway的使用一、需求二、基本组成1、简介2、核型概念1、Route 路由2、Predicate 谓语、断言3、Filter 过滤器3、工作原理三、网关 Predicate配置方式1、快捷配置方式(配置文件)2、完全展开的参数(配置文件)3、上方2种方式配置和代码对应关系4、uri 值的方式1、以http开头2、以 lb 开头四、Route Predicate Factories1、After1、描述:2、存在参数:3、配置实例2、Before1、描述:2、存在参数:3、配置原创 2020-11-01 14:29:53 · 3060 阅读 · 0 评论 -
Spring Cloud Alibaba整合Sentinel
Spring Cloud Alibaba 整合 Sentinel一、需求二、实现步骤1、下载 sentinel dashboard2、服务提供者和消费者引入sentinel依赖3、配置控制台信息4、一个简答的整合就整合完了,访问资源,查看控制台。三、整合`Feigen`四、整合 `RestTemplate`五、@SentinelResource的用法六、代码路径七、参考文档一、需求实现一个简单的 整合 sentinel,不涉及sentinel的用法二、实现步骤1、下载 sentinel dashbo原创 2020-10-25 12:52:26 · 710 阅读 · 2 评论 -
Spring Cloud Alibaba 的服务注册与发现
Spring Cloud Alibaba 服务发现例子一、需求1、提供者完成的功能2、消费者完成的功能3、可以附加的额外配置二、实现步骤1、总的依赖引入2、服务提供者和发现者,引入服务发现依赖3、代码实现三、代码实现四、参考文档一、需求完成一个简单的例子,使用 Spring Cloud Alibaba 完成服务的注册与发现1、提供者完成的功能1、服务提供者注册到nacos上spring.cloud.nacos.discovery.register-enabled = true2、配置元数据信息原创 2020-10-24 13:23:45 · 2309 阅读 · 0 评论 -
hystrix的配置说明
在我们的日常开发中,有些时候需要和第三方系统进行对接操作,或者调用其他系统的 api 接口,但是我们不能保证这些第三方系统的接口一定是稳定的,当系统中产生大量的流量来访问这些第三方接口,这些第三方系统的接口响应慢时,如何保证我们自己的系统不被这些第三方系统的接口耗费完系统的资源,导致我们自己的系统崩溃。为了避免这种情况的发生,我们应该将这些第三方系统的接口进行隔离访问,将他们分配到一个单独...原创 2018-08-10 15:15:25 · 401 阅读 · 0 评论 -
spring boot admin 的使用
当我们在 spring boot 程序中引入 spring-boot-starter-actuator 之后,我们的应用程序中会存在多个监控的端点,用于监控程序的健康状态,但是这些端点都是以 restful 格式返回数据,不利于阅读,那么有没有一个图形化的界面可以解决这个问题呢?spring boot admin 正好可以帮助我们解决这个问题。 当我们使用了 spring clo...原创 2018-06-20 17:02:23 · 876 阅读 · 0 评论 -
spring cloud config 结合 spring cloud bus实现配置自定的刷新
在线上环境中,有时候我们希望系统中的某些配置参数在修改后,可以立即生效而不用重新启动服务。由上一节我们知道,我们可以把配置文件统一放到配置服务中进行管理,这一节我们在配置中心中整合spring cloud bus并结合git 的webhook实现配置的自动刷新。 整合spring cloud bus后我们可以获取到一些新的端点: POST /bus/refresh: ...原创 2018-06-19 15:39:19 · 272 阅读 · 0 评论 -
spring cloud config的使用
原创 2018-06-15 12:01:44 · 220 阅读 · 0 评论 -
spring cloud zuul的回退
当我们使用 @EnableZuulProxy 注解来开启zuul的路由时,默认在@EnableZuulProxy注解上就包含了@EnableCircuitBreaker注解,即开启了断路器功能。那么在zuul无法访问到某个微服务时,如何进行回退呢?需求: 现在我们有2个微服务,product-provider(商品微服务) product-consumer-8201(商品...原创 2018-06-13 15:00:35 · 234 阅读 · 0 评论 -
zuul过滤器filter 的编写
通过上一节(zuul的各种配置)的学习,我们学会了zuul路由的各种配置,这一节我们来实现一下zuul的过滤器功能。那么为什么需要用到zuul的过滤器呢?我们知道zuul是我们实现外部系统统一访问的入口,那么我们就可以在 zuul 上实现 api的鉴权操作,实现微服务的统一鉴权、给微服务的响应增加额外的响应头等。实现功能 1、在网关增加一个 pre 类型的过滤器完成一个简单的...原创 2018-06-13 11:40:46 · 1006 阅读 · 0 评论 -
hystrix的dashboard和turbine监控
原创 2018-06-07 16:07:45 · 689 阅读 · 0 评论 -
spring cloud hystrix的隔离策略和dashboard
随着服务的拆分,各个服务有着明确的职责,服务之间通过轻量级的协议进行通讯。但有时候我们完成一个功能需要同时调用多个微服务,比如完成订单的创建,那么获取用户信息需要调用用户微服务,获取商品信息需要调用商品微服务,给用户增加积分需要调用积分微服务。假如用户微服务调用此时响应慢,就会导致调用线程(tomcat线程或jetty线程等)被占用,降低系统的处理能力。如果用户微服务被隔离了,使用是自己的...原创 2018-06-05 21:06:26 · 2043 阅读 · 0 评论 -
spring cloud中使用hystrix实现回退
在微服务架构中,我们的服务被拆分成多个微服务,每个微服务完成自己的职责,微服务之间通过rpc或http进行调用。这个时候我们就要确保我们的服务高可用,但谁也说不准我们的服务能永远快速的提供服务。假如现在发生了这个一种情况 A->B->C->D->E 即A服务调用B服务,B调用C服务,C调用D服务,D调用E服务,这个时候我们的E服务过载,响应速度特别慢,当并发高时...原创 2018-06-04 21:53:41 · 434 阅读 · 0 评论 -
spring cloud feign的各种配置的使用
原创 2018-06-01 20:17:17 · 6001 阅读 · 0 评论 -
spring cloud feign的基本使用
原创 2018-05-30 20:09:19 · 287 阅读 · 0 评论 -
spring cloud ribbon的使用
rver |- 服务注册中心 product-provider-8777 product-provider-8778 product-provider-8779 product-provider-8780 |- 服务提供者,提供商品查询服务,请求url为: http://host:port/product/selectOne/{productId},返回服务的端口、服务名和商品信息 |-原创 2018-05-29 20:12:33 · 197 阅读 · 0 评论 -
eureka服务端的高可用
eureka client的高可用这个很简单,只需要向eureka服务端上多注册几个实例即可,那么eureka server端如何实现高可用呢?其实eureka server 端也是可以做为一个客户端使用的,当存在多个服务端时,我们只需要将自己作为客户端注册到其余的服务端不就可以实现高可用了码?目标: 1、实现eureka server(注册中心)的高可用。...原创 2018-05-26 13:39:23 · 260 阅读 · 0 评论 -
zuul的各种配置
原创 2018-06-12 15:52:36 · 1943 阅读 · 1 评论 -
eureka服务端和客户端的简单搭建
本篇博客简单记录一下,eureka 服务端和 客户端的简单搭建。目标: 1、完成单机 eureka server 和 eureka client 的搭建。 2、完成eureka server 的添加安全认证,即不能别人知道我们的eureka server地址就可以注册上去。 3、测试环境下,关闭eureka的自我保护一、eureka server 端...原创 2018-05-26 12:45:53 · 922 阅读 · 0 评论