Spring Cloud
文章平均质量分 62
Spring Cloud
进击的猿小白
这个作者很懒,什么都没留下…
展开
-
SpringCloud Alibaba Seata处理分布式事务
一、分布式事务问题分布式前:单机库存没这个问题、从1:1->1:N->N:N分布式之后:总结:一次业务操作需要垮多个数据源或需要垮多个系统进行远程调用,就会产生分布式事务问题二、Seata简介Seata是一款开源的分布式事务解决方案,致力于在微服务架构下提供高性能和简单易用的分布式事务服务。一个典型的分布式事务过程:分布式事务处理过程ID+三组件模型处理过程:本地@Transational、全局@GlobalTranstional...原创 2021-08-01 16:00:30 · 183 阅读 · 0 评论 -
Spring Cloud之服务治理
限流一、常见限流算法计数器算法:对于每次服务调用,可以通过AtomicLong#incrementAndGet()方法来给计数器加1并返回最新值,通过这个最新值和阈值进行比较。漏洞算法:可以准备一个队列,用来保存请求,另外通过一个线程池(ScheduledExecutorService)来定期从队列中获取请求并执行,可以一次性获取多个并发执行。令牌桶算法:可以准备一个队列,用来保存令牌,另外通过一个线程池定期生成令牌放到队列中,每来一个请求,就从队列中获取一个令牌,并继续执行。实现方原创 2021-08-01 15:52:41 · 263 阅读 · 0 评论 -
Spring Cloud 消息总线
回顾 Spring 事件/监听package com.segumentfault.spring.event;import org.springframework.context.ApplicationEvent;import org.springframework.context.ApplicationEventPublisher;import org.springframework.context.annotation.AnnotationConfigApplicationContext;原创 2021-08-01 15:44:17 · 320 阅读 · 0 评论 -
Spring Cloud 服务调用
Spring Cloud Feign增加 spring-cloud-starter-feign 依赖<!-- 添加 Spring Cloud Feign 依赖 --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-feign</art...原创 2021-07-31 15:20:46 · 190 阅读 · 0 评论 -
Spring Cloud 服务短路
传统 Spring Web MVC以 web 工程为例创建 DemoRestController:package com.segmentfault.spring.cloud.lesson8.web.controller;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RestController;import j..原创 2021-07-31 15:13:48 · 97 阅读 · 0 评论 -
Spring Cloud Netflix Ribbon 源码分析
利用 RibbonLoadBalancerClient新建一个工程三个模块: user-api:公用 API user-robbon-client:客户端应用 user-service-provider:服务端应用 实现 user-robbon-client配置信息application.properties:## 用户 Ribbon 客户端应用spring.application.name = user-ribbon-client## 服务端口原创 2021-07-25 20:08:03 · 133 阅读 · 0 评论 -
Spring Cloud 负载均衡
Netflix Ribbon引入Maven 依赖<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-ribbon</artifactId></dependency>激活 Ribbon 客户端package com.segumentfault.springcloudle原创 2021-07-25 20:04:37 · 75 阅读 · 0 评论 -
Spring Cloud 高可用服务治理
Spring Cloud EurekaEureka 客户端配置多Eureka 注册中心## 应用名称spring.application.name = spring-cloud-eureka-client## 客户端 端口随即可用server.port = 0## 配置连接 Eureka 服务器## 配置多个 Eureka 注册中心,以"," 分割eureka.client.serviceUrl.defaultZone = \ http://localhost:9090原创 2021-07-25 20:02:21 · 259 阅读 · 0 评论 -
Spring Cloud 服务发现/注册
Spring Cloud Netflix EurekaEureka 服务器引入 Maven 依赖<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka-server</artifactId></dependency>激活 Eureka 服务器package com...原创 2021-07-25 20:00:30 · 405 阅读 · 0 评论 -
Spring Cloud 配置服务器
搭建 Spring Cloud Config Server基于文件系统(File System)创建本地仓库 激活应用配置服务器 在引导类上标注@EnableConfigServer package com.segmentfault.springcloudlesson3configserver;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfig原创 2021-07-25 19:57:20 · 266 阅读 · 0 评论 -
Spring Cloud 之配置客户端
EnvironmentEnvironment: PropertySources = 1:1PropertySources: PropertySource = 1:N[0] PropertySource (Map)spring.application.name = spring-cloud-config-client[1] PropertySource(Map)spring.application.name = spring-cloud-config-client-demoSpri原创 2021-07-25 19:53:26 · 658 阅读 · 0 评论 -
Spring Cloud核心组件Eureka
Eureka 是微服务架构中的注册中⼼,专⻔负责服 务的注册与发现。如上图所示,库存服务、仓储服务、积分服务中都有⼀个 Eureka Client 组件,这个组件专⻔负 责将这个服务的信息注册到 Eureka Server 中。说⽩了,就是告诉 Eureka Server,⾃⼰在哪台机 器上,监听着哪个端⼝。⽽ Eureka Server 是⼀个注册中⼼,⾥⾯有⼀个注册表,保存了各服务 所在的机器和端⼝号;订单服务⾥也有⼀个 Eureka Client 组件,这个 Eureka Client .原创 2021-07-18 10:42:48 · 162 阅读 · 0 评论 -
Spring Cloud Gateway 之获取请求体(Request Body)的几种方式
一、直接在全局过滤器(随便一个全局过滤器中就可以,可参考https://blog.csdn.net/qqqqqqhhhhhh/article/details/114401668)中获取,伪代码如下private String resolveBodyFromRequest(ServerHttpRequest serverHttpRequest){ Flux<DataBuffer> body = serverHttpRequest.getBody();原创 2021-03-05 17:04:11 · 6751 阅读 · 4 评论 -
Spring Cloud Gateway之全局过滤器在工作中的使用场景
一、使用注意事项1、全局过滤器作用于所有的路由,不需要单独配置。2、通过@Order来指定执行的顺序,数字越小,优先级越高。二、默认全局拦截器的整体架构三、实战场景,例如,校验token、记录请求参数(可参考这边https://www.cnblogs.com/hyf-huangyongfei/p/12849406.html)、替换负载均衡以后的路由等等。1、校验token@Slf4jpublic class AuthenFilter implements GlobalFilt原创 2021-03-05 16:47:30 · 914 阅读 · 3 评论 -
Spring Cloud Gateway之全局异常拦截器
因Spring Cloud Gateway作为网关是异步的因此日志记录很重要,下面异常类是我再工作中长期使用的/** * @version 2019/8/14 * @description: 异常拦截器 * @modified: */@Slf4jpublic class JsonExceptionHandler implements ErrorWebExceptionHandler { /** * MessageReader */ private原创 2021-03-05 16:24:13 · 1934 阅读 · 0 评论 -
Spring Cloud Gateway之动态路由(数据库版)
1、实现动态路由的关键是RouteDefinitionRepository接口,该接口存在一个默认实现(InMemoryRouteDefinitionRepository)通过名字我们应该也知道,该实现是将配置文件中配置的信息加载到内存中。因此无法实现动态路由。2、如果想实现动态路由,我们可以参考默认实现,自己定义一个实现类,代码如下:@Componentpublic class UnifiedRouteRepositoryImpl implements RouteDefinition...原创 2021-03-05 16:19:07 · 1714 阅读 · 0 评论