SpringCloud
文章平均质量分 91
SpringCloud
weixin_42412601
后生仔
展开
-
Spring Cloud Feign 请求添加headers
这里写目录标题方案一:方法上的@RequestMapping注解添加headers信息方案二:接口上的@RequestMapping注解添加headers信息方案三:使用@Headers注解添加headers信息方案四:自定义RequestInterceptor添加headers信息方案五:自定义RequestInterceptor实现添加动态数据到header方案一:方法上的@RequestMapping注解添加headers信息@RequestMapping注解的属性中包含一个headers数组,所转载 2021-07-12 23:14:49 · 5766 阅读 · 0 评论 -
Feign远程调用丢失请求头问题
1.debug Feign远程2.3.远程调用实际是new 了一个新的RequestTemplate,并没有把之前请求的header给设置进去4.5.可以通过拦截器,拦截请求,然后在给请求设置上,原请求的header信息即可图解:解决:@Configurationpublic class FeignConfig { @Bean public RequestInterceptor requestInterceptor(){ return new R原创 2020-09-04 15:41:34 · 1824 阅读 · 0 评论 -
SpringCloud高级(四) ——SpringCloud Alibaba Seata原理简介
目录Seata之原理简介AT模式一阶段加载二阶段提交二阶段回滚debug深入源码Seata之原理简介TC,TM,RM理解:TC通过统一的Xid协调RM。分布式事务的执行流程:TM开启分布式事务(TM向TC注册全局事务记录)。加注解GlobalTransactional即开启换业务场景,编排数据库,服务等事务内资源(RM向TC汇报资源准备状态)TM结束分布式事务,事务一阶段结束(TM通知TC提交/回滚分布式事务)TC汇总事务信息,决定分布式事务是提交还是回滚TC通知所有RM提交/回滚资源原创 2020-07-15 15:59:40 · 395 阅读 · 0 评论 -
SpringCloud高级(四) ——SpringCloud Alibaba Seata
分布式事务问题一次业务操作需要跨多个数据源或需要跨多个系统进行远程调用,就会产生分布式事务问题。原创 2020-09-15 18:09:37 · 664 阅读 · 0 评论 -
SpringCloud高级(三) ——SpringCloud Alibaba Sentinel篇四
目录@SentinelResource按资源名称限流+后续处理按照Url地址限流+后续处理上面兜底方法面临的问题客户自定义限流处理逻辑更多注解属性说明@SentinelResource按资源名称限流+后续处理启动Nacos成功,启动Sentinel成功。业务类:@RestControllerpublic class RateLimitController { @GetMapping("/byResource") @SentinelResource(value = "byResou原创 2020-07-15 09:43:26 · 175 阅读 · 0 评论 -
SpringCloud高级(三) ——SpringCloud Alibaba Sentinel篇五
目录服务熔断功能Ribbon系列准备工作演示fallback@SentinelResource没有任何配置只配置fallback只配置blockHandlerfallback和blockHandler都配置忽略属性...Feign系列规则持久化问题1:修改nacos里的sentinel规则,能同步到sentinel里吗?问题2:修改sentinel里的规则,能同步到nacos里吗?Sentinel控制台改造:规则同步到Nacos服务熔断功能sentinel整合ribbon+openFeign+fallb原创 2020-07-13 22:34:27 · 274 阅读 · 0 评论 -
SpringCloud高级(三) ——SpringCloud Alibaba Sentinel篇三
目录降级规则基本介绍降级策略实战RT异常比例异常数热点参数限流(重点,务必掌握)承上启下复习start源码出处测试参数例外项系统规则是什么各项配置参数说明配置全局QPS降级规则基本介绍RT:平均响应时间,超出阈值且在时间窗口内通过的请求>=5,两个条件同时满足触发降级,窗口期过后关闭断路器。RT最大4900(更大需要通过-Dcsp.sentinel.statistic.max.rt=xxx才能生效)异常比例(秒级):QPS>=5且异常比例(秒级统计)超过阈值时,触发降级;时间窗口结束原创 2020-07-12 23:34:12 · 243 阅读 · 0 评论 -
SpringCloud高级(三) ——SpringCloud Alibaba Sentinel篇二
目录流控规则简介基本介绍流控模式直接(默认)流控效果:QPS与线程数的区别关联链路流控效果直接->快速失败(默认的流控处理)预热Warm Up排队等待流控规则简介基本介绍流控模式直接(默认)接口达到限流条件时,直接限流。一秒内访问次数超过一,直接快速报错思考???这个默认的报错,我们应该能自定义吧。流控效果:QPS与线程数的区别QPS:表示如果1秒内的请求数超过了,设置的阈值,限流,直接不让进。这个是御敌于国门之外线程数:假设阈值是1,表示请求全部接受,但是只有一条线程原创 2020-07-12 18:01:30 · 208 阅读 · 0 评论 -
SpringCloud高级(三) ——SpringCloud Alibaba Sentinel篇一
目录简介是什么Hystrix与Sentinel对比能干嘛怎么玩安装安装Sentinel控制台初始化演示工程新建Module流控规则简介基本介绍流控模式直接(默认)流控效果:QPS与线程数的区别关联链路流控效果直接->快速失败(默认的流控处理)预热Warm Up排队等待简介是什么Sentinel是一个轻量级的流量控制,熔断降级的java库。分布式系统的流量防卫兵。Hystrix豪猪哥的阿里版。Hystrix与Sentinel对比能干嘛秒杀,抢红包,抢金条,抽奖等形式多种多样的活动,本质上这原创 2020-07-12 18:01:02 · 239 阅读 · 1 评论 -
SpringCloud高级(二) ——SpringCloud Alibaba Nacos篇三
目录Nacos集群和持久化配置(重要)Nacos持久化配置解释derby到mysql切换配置步骤Nacos集群和持久化配置(重要)官网集群部署说明:https://nacos.io/zh-cn/docs/cluster-mode-quick-start.html架构图:官网说明:https://nacos.io/zh-cn/docs/deployment.htmlNacos持久化配置解释Nacos默认自带的是嵌入式数据库derby:https://github.com/alibaba/na原创 2020-07-10 12:47:01 · 179 阅读 · 0 评论 -
SpringCloud高级(二) ——SpringCloud Alibaba Nacos篇二
目录Nacos作为服务配置中心演示在`Nacos`中添加配置信息理论实操Nacos作为配置中心-基础配置Nacos作为配置中心-分类配置`Nacos`的图形化管理界面Namespace+Group+Data ID三者关系?为什么这么设计?Nacos作为服务配置中心演示在Nacos中添加配置信息Nacos中的匹配规则。理论Nacos中的dataId的组成格式与SpringBoot配置文件中的匹配规则实操设置DataId:假设配置文件里:spring: profiles:原创 2020-07-09 23:09:16 · 198 阅读 · 0 评论 -
SpringCloud高级(二) ——SpringCloud Alibaba Nacos篇一
目录Nacos简介是什么能干嘛去哪下各种注册中心比较安装并运行NacosNacos服务注册中心功能基于Nacos的服务提供者测试为演示nacos的负载均衡,参照9001新建9002基于Nacos的服务消费者Nacos简介是什么一个更易于构建云原生应用的动态服务发现,配置管理和服务管理中心。简单说:Nacos就是注册中心+配置中心的组合等价于:Nacos = Eureka+Config+Bus阿里牛逼~能干嘛替代Eureka做服务注册中心替代Config做服务配置中心去哪下github地原创 2020-07-09 17:06:35 · 274 阅读 · 0 评论 -
SpringCloud高级(一) ——SpringCloud Alibaba入门简介
目录为什么会出现SpringCloud alibaba什么是维护模式?进入维护模式意味着什么呢?SpringCloud alibaba带来了什么?是什么能干嘛怎么玩SpringCloud alibaba学习资料获取为什么会出现SpringCloud alibabaSpring Cloud Netflix项目进入维护模式:https://spring.io/blog/2018/12/12/spring-cloud-greenwich-rc1-available-now什么是维护模式?翻译一下:原创 2020-07-09 14:52:11 · 815 阅读 · 0 评论 -
SpringCloud中级(六) ——SpringCloud Sleuth分布式请求链路追踪
目录概述为什么会出现这个技术?需要解决哪些问题?是什么搭建链路监控步骤zipkin监控平台服务提供者服务消费者(调用方)测试概述为什么会出现这个技术?需要解决哪些问题?在微服务框架中,一个由客户端发起的请求在后端系统中会经过多个不同的服务节点调用来协同产生最后的请求结果, 每一个前端请求都会形成一条复杂的分布式服务调用链路,链路中的任何一环出现高延迟或错误都会引起整个请求最后的失败。是什么Spring Cloud Sleuth提供了一套完整的服务跟踪的解决方案。在分布式系统中提供追踪解决方案并且兼原创 2020-07-09 11:41:56 · 480 阅读 · 1 评论 -
SpringCloud中级(五) ——SpringCloud Stream消息驱动
目录SpringCloud Stream消息驱动为什么被引入消息驱动概述是什么设计思想标准MQ:为什么用Cloud Streamstream凭什么可以统一底层差异![在这里插入图片描述](https://img-blog.csdnimg.cn/20200707230312172.png)Stream中的消息通信方式遵循了发布-订阅模式Spring Cloud Stream标准流程套路编码API和常用注解消息驱动之生产者SpringCloud Stream消息驱动为什么被引入为什么被引用?解决的痛点是什么原创 2020-07-09 00:11:02 · 201 阅读 · 0 评论 -
SpringCloud中级(四)——SpringCloud Bus 消息总线
目录概述是什么能干嘛为何被称为总线RabbitMQ环境配置SpringCloud Bus动态刷新全局广播再增加一个配置中心客户端设计思想Bus动态刷新全局广播配置实现给cloud-config-center-3344配置中心服务端添加消息总线支持给cloud-config-center-3355客户端添加消息总线支持给cloud-config-center-3366客户端添加消息总线支持测试印证原理概述上一章的加深和扩充,一言以蔽之。分布式自动刷新配置功能:Spring Cloud Bus + Spri原创 2020-07-07 22:22:56 · 134 阅读 · 0 评论 -
SpringCloud中级(三) ——SpringCloud config分布式配置中心
目录概述分布式系统面临的配置问题是什么?怎么玩?能干嘛?与Github整合配置官网Config服务端配置与测试Config客户端配置与测试概述分布式系统面临的配置问题是什么?怎么玩?能干嘛?集中管理配置文件不同环境不同配置,动态化的配置更新,分环境部署。比如dev/test/prod/beta/release运行期间动态调整配置,不再需要在每个服务部署的机器上编写配置文件,服务会向配置中心统一拉取配置自己的信息。当配置发生变动时,服务不需要重启即可感知到配置的变化并应用新的配置将原创 2020-07-06 22:18:54 · 172 阅读 · 0 评论 -
SpringCloud中级(二) ——Gateway新一代网关
目录概述简介概述有了Zuul了怎么又出来了gateway模型比较三大核心概念Gateway工作流程入门配置测试Gateway网关路由有两种配置方式第一种:在配置文件yml中配置第二种:代码中注入RouteLocator的Bean通过微服务名实现动态路由示例代码中注入RouteLocator的BeanPredicate断言的使用是什么常用的Route PredicateAfter Route PredicateCookie Route Predicate概述简介官网:https://cloud.spri原创 2020-07-05 16:08:10 · 310 阅读 · 2 评论 -
SpringCloud中级(一) ——Hystrix豪猪哥断路器
目录概述Hystrix重要概念服务降级服务熔断服务限流概述分布式系统面临的问题:功能:服务降级服务熔断接近实时的监控官网:https://github.com/Netflix/Hystrix/wiki/How-To-UseHystrix官宣,停更进维。github:https://github.com/Netflix/HystrixHystrix重要概念服务降级服务器忙,请稍候再试,不让客户端等待并立刻返回一个友好提示,fallback哪些情况会触发降级:程序运原创 2020-07-04 15:48:32 · 752 阅读 · 0 评论 -
SpringCloud入门(七) ——Ribbon负载均衡服务调用
目录概述LB(负载均衡)Ribbon本地负载均衡客户端 VS Nginx服务端负载均衡区别集中式LB进程内LBNginx负载均衡和Ribbon负载均衡的区别?架构说明使用Ribbon实现负载均衡RestTemplate的使用概述Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端,负载均衡的工具。简单说,ribbon是Netflix 发布的开源项目,主要功能是提供客户端的软件负载均衡算法和服务调用。ribbon客户端组件提供一系列完善的配置项,如超时连接,重试等。就原创 2020-07-02 16:25:24 · 231 阅读 · 0 评论 -
SpringCloud入门(六) ——Consul、Zookeeper以及Eureka异同点
三个注册中心的异同点CAPConsistency(强一致性):要求分布式系统中的各节点时时刻刻保持数据的一致性。Availability(可用性):可用性指服务一直可用,而且是正常响应时间。Partition tolerance(分区容错),指的分布式系统中的某个节点或者网络分区出现了故障的时候,整个系统仍然能对外提供满足一致性和可用性的服务分布式系统P,永远要保证,所以系统要么是CP,要么是AP。Eureka:APZookeeper/Consul:CPAP架构CP架构.原创 2020-07-01 23:00:30 · 138 阅读 · 0 评论 -
SpringCloud入门(五) ——Consul注册中心
目录Consul简介能干嘛安装并运行ConsulWindows版服务提供者注册到Consul服务消费者注册到Consul学习文档:https://www.springcloud.cc/spring-cloud-consul.htmlConsul简介官网:https://www.consul.io/introConsul是一套开源的分布式服务发现和配置管理系统,用go语言开发。提供了微服务系统中的服务治理,配置中心,控制总线等功能。这些功能中的每一个都可以根据需要单独使用,可以一起使用以构建全方面的原创 2020-07-01 22:23:58 · 157 阅读 · 0 评论 -
SpringCloud入门(四) ——Zookeeper注册中心
SpringCloud整合Zookeeper代替Eureka服务提供者注册到Zookeeper启动zookeeper依赖:<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-zookeeper-discovery</artifactId> <!--3.5.3的版本,与自己启动的版本不一致,原创 2020-07-01 20:51:23 · 154 阅读 · 0 评论 -
SpringCloud入门(三) ——Eureka注册中心
目录什么是服务治理服务注册和发现Eureka两组件Eureka Server服务端构建Eureka Client 客户端构建集群Eureka工作流程集群注册原理Eureka集群搭建客户端注册到Eureka集群服务提供者集群搭建并实现负载均衡功能服务提供者集群搭建服务消费者修改测试什么是服务治理在传统的rpc远程调用框架中,管理每个服务与服务之间的依赖关系比较复杂,所以需要服务治理,管理服务与服务之间的依赖关系,可以实现服务调用,负载均衡,容错等,实现服务发现和注册。springcloud使用Eurek原创 2020-06-30 16:54:39 · 153 阅读 · 0 评论 -
SpringCloud入门(二)——基于RestTemplate搭建微服务工程
目录首说RestTemplate搭建微服务工程聚合父工程Project字符编码设置注解生效激活java编译版本选8File type过滤父工程POM微服务模块构建创建子模块子模块pom写yml启动类业务类启动配置测试热部署热部署方式2首说RestTemplateRestTemplate: RestTemplate提供了多种便捷访问远程Http服务的方法,是一种简单便捷的访问restful服务模板类,是Spring提供的用于访问Rest服务的客户端模板工具集。官网地址:https://docs.s原创 2020-06-29 21:53:21 · 181 阅读 · 0 评论 -
SpringCloud入门(一)——相关概念以及版本选择
目录微服务All in one 单机系统分布式系统微服务架构分布式与微服务的区别微服务的技术栈都哪些:为什么使用 SpringCloudSpringCloud 与 Springboot 的关系SpringCloud 与 Dubbo的区别:版本springboot版本springcloud版本springboot 与springcloud之间的版本选择我的版本选择cloud组件停更说明微服务微服务化的核心就是将传统的一站式应用,根据业务拆分成一个一个的服务,彻底地去耦合,每一个微服务提供单个业务功能的服务原创 2020-06-28 22:34:21 · 179 阅读 · 0 评论