![](https://img-blog.csdnimg.cn/20191203111708415.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
SpringCloud
文章平均质量分 94
SpringCloud
猎户星座。
花有重开日,人无再少年。
展开
-
日志全链路追踪之MDC
Hi,大家好,我是有清苏格拉底说过:日志打得好,排查没烦恼我们日常的开发工作中,排查问题去看日志应该是家常便饭的事,日志可以帮助我们清楚的知道当前代码的走向以及链路数据,通常我们现在都是微服务的架构,那么在我们 A 系统调用到 B 系统中,B 系统又调用 C 系统在繁忙的日志中,我们如何全链路追踪一笔调用呢,通常我们会借助到全局流水号这样的概念,例如下图这样。转载 2024-03-12 10:17:27 · 164 阅读 · 0 评论 -
SpringCloud之系列汇总
基础篇SpringCloud之系列汇总|服务的注册与发现(Eureka)SpringCloud之系列汇总|服务消费者(Feign)SpringCloud之系列汇总|服务消费者(RestTemplate+Ribbon)SpringCloud之系列汇总|断路器(Hystrix)SpringCloud之系列汇总|断路器聚合监控(Hystrix TurBine)SpringClou...原创 2020-01-21 13:58:19 · 1016 阅读 · 0 评论 -
SpringCloud之Seata整合
附:SpringCloud之系列教程汇总跳转地址一、环境搭建①首先,我们采用的是Eureka作为Seata的配置中心,所以先启动EurekaServer②下载seata-server-0.9.0.zip,解压,修改配置文件registry.confregistry { # file 、nacos 、eureka、redis、zk、consul、etcd3、sofa t...原创 2020-01-17 22:38:07 · 2290 阅读 · 0 评论 -
Zuul之源码剖析
附:SpringCloud之系列教程汇总跳转地址Zuul 架构图在zuul中, 整个请求的过程是这样的,首先将请求给zuulServlet处理,zuulServlet中有一个zuulRunner对象,该对象中初始化了RequestContext:存储每个请求的一些数据,并被所有的zuulFilter共享。zuulRunner中还有 FilterProcessor,FilterProcess...转载 2020-01-13 14:38:38 · 211 阅读 · 0 评论 -
Hystrix之源码剖析
附:SpringCloud之系列教程汇总跳转地址一、认识HystrixHystrix是Netflix开源的一款容错框架,包含常用的容错方法:线程池隔离、信号量隔离、熔断、降级回退。在高并发访问下,系统所依赖的服务的稳定性对系统的影响非常大,依赖有很多不可控的因素,比如网络连接变慢,资源突然繁忙,暂时不可用,服务脱机等。我们要构建稳定、可靠的分布式系统,就必须要有这样一套容错方法。 本文将逐...转载 2020-01-13 11:39:13 · 266 阅读 · 0 评论 -
Feign之Jwt值传递
附:SpringCloud之系列教程汇总跳转地址在微服务系统中,为了保证微服务系统的安全,常常使用jwt来鉴权,而jwt又往往存放在ThreadLocal中,可是服务内部的相互调用时,这样的做法在Feign开启了Hystrix的情况下,是有问题的。首先我们先看下在Feign关闭Hystrix的情况下,是怎样的情况:feign.hystrix.enabled=falseFeignI...转载 2020-01-12 13:08:11 · 943 阅读 · 0 评论 -
Hystrix之聚合监控
附:SpringCloud之系列教程汇总跳转地址Hystrix Dashboard简介在微服务架构中为例保证程序的可用性,防止程序出错导致网络阻塞,出现了断路器模型。断路器的状况反应了一个程序的可用性和健壮性,它是一个重要指标。Hystrix Dashboard是作为断路器状态的一个组件,提供了数据监控和友好的图形化界面。准备工作我们开始改造Ribbon,Feign,Hystrix...原创 2020-01-11 20:41:07 · 252 阅读 · 0 评论 -
SpringCloud之超时重试
附:SpringCloud之系列教程汇总跳转地址Zuul的超时重试application.properties文件zuul.retryable=trueribbon.ConnectTimeout=250ribbon.ReadTimeout=1000ribbon.OkToRetryOnAllOperations=falseribbon.MaxAutoRetries=1rib...原创 2020-01-11 12:48:06 · 705 阅读 · 0 评论 -
Feign之文件上传
附:SpringCloud之系列教程汇总跳转地址在Spring Cloud封装的Feign中并不直接支持传文件,但可以通过引入Feign的扩展包来实现,本来就来具体说说如何实现。服务提供方(接收文件)服务提供方的实现比较简单,就按Spring MVC的正常实现方式即可,比如:@PostMapping(value = "/uploadFile", consumes = MediaT...转载 2020-01-10 15:23:37 · 251 阅读 · 1 评论 -
Zuul之饥饿加载模式
附:SpringCloud之系列教程汇总跳转地址前面我们介绍了如何使用Ribbon的earger-load配置加速Spring Cloud中对服务接口的第一次调用。可是这样只是解决了内部服务间的调用,另外一个问题依然经常困扰我们,那就是网关到内部服务的访问。由于Spring Cloud Zuul的路由转发也是通过Ribbon实现负载均衡的,所以它也会存在第一次调时比较慢的情况。那么这个时候我们...转载 2020-01-10 14:22:06 · 499 阅读 · 0 评论 -
Ribbon之饥饿加载模式
附:SpringCloud之系列教程汇总跳转地址我们在使用Spring Cloud的Ribbon配合RestTemplate或Feign来进行服务调用的时候,如果我们的机器或网络环境等原因不是很好的话,有时候会发现这样一个问题:我们服务消费方调用服务提供方接口的时候,第一次请求经常会超时,而之后的调用就没有问题了。下面我们就来说说造成这个问题的原因,以及如何解决的方法。问题原因造成第一...转载 2020-01-10 11:44:00 · 1242 阅读 · 0 评论 -
Eureka之注册表缓存机制
附:SpringCloud之系列教程汇总跳转地址一、问题Spring Cloud架构体系中,Eureka是一个至关重要的组件,它扮演着微服务注册中心的角色,所有的服务注册与服务发现,都是依赖Eureka的。不少初学Spring Cloud的朋友在落地公司生产环境部署时,经常会问: Eureka Server到底要部署几台机器? 我们的系统那么多服务,到底会对Eureka S...转载 2020-01-08 15:33:10 · 1672 阅读 · 0 评论 -
Ribbon之源码剖析
附:SpringCloud之系列教程汇总跳转地址简介这篇文章是关于Spring Cloud Ribbon源码的解析的文章,在开始前大家必须搞清楚一件事,那就是Spring Cloud Ribbon和Netflix Ribbon,这个很关键,因我刚开始就弄混了,以为Spring Cloud Ribbon就是Netflix的Ribbon,这对查资料会有很大的误区。Spring Cloud ...转载 2020-01-07 20:42:07 · 219 阅读 · 0 评论 -
Feign之源码剖析
附:SpringCloud之系列教程汇总跳转地址什么是FeignFeign是由Retrofit,JAXRS-2.0和WebSocket启发的一个java到http客户端绑定。 Feign的主要目标是将Java Http Clients变得简单。写一个Feign简单的实现一个Feign客户端,首先通过@FeignClient,客户端,其中value为调用其他服务的名称,FeignCo...转载 2020-01-07 14:54:55 · 195 阅读 · 0 评论 -
Eureka之源码剖析
附:SpringCloud之系列教程汇总跳转地址本篇文章以源码的角度来深入理解Eureka.Eureka的一些概念 Register:服务注册 当Eureka客户端向Eureka Server注册时,它提供自身的元数据,比如IP地址、端口,运行状况指示符URL,主页等。 Renew:服务续约 Eureka客户端会每隔30秒发送一次心跳来续约。 通过续约来告知Eureka S...转载 2020-01-07 10:37:31 · 274 阅读 · 0 评论 -
SpringCloud之Ribbon
附:SpringCloud之系列教程汇总跳转地址Ribbon简介Spring Cloud Ribbon 是基于 Netflix Ribbon 实现的一套客户端负载均衡工具,其主要功能是提供客户端的软件负载均衡算法,将 Netflix 的中间层服务连接在一起。其运行原理如下图:Ribbon 运行时分成 2 个步骤:1) 先选择在同一个区域负载较少的 EurekaServer...原创 2018-11-16 16:23:59 · 262 阅读 · 1 评论 -
SpringCloud之Sleuth
附:SpringCloud之系列教程汇总跳转地址Spring Cloud Sleuth 主要功能就是在分布式系统中提供追踪解决方案,并且兼容支持了 zipkin,你只需要在pom文件中引入相应的依赖即可。Zipkin简介Zipkin是Twitter的一个开源项目,它基于Google Dapper实现。我们可以使用它来收集各个服务器上请求链路的跟踪数据,并通过它提供的REST API接口...原创 2018-11-21 11:51:14 · 321 阅读 · 0 评论 -
SpringCloud之Feign
附:SpringCloud之系列教程汇总跳转地址Feign简介Feign 是一个声明式的 Web Service 客户端。使用 Feign 能让编写 Web Service 客户端更加简单,SpringCloud 对 Feign 进行了封装,使其支持了 Spring MVC 标准注解和 HttpMessageConverters。Feign 的使用方法是定义一个接口,然后在其上边添加 ...原创 2018-11-16 16:57:54 · 401 阅读 · 0 评论 -
SpringCloud之Hystrix
附:SpringCloud之系列教程汇总跳转地址Hystrix简介雪崩效应在微服务架构中通常会有多个服务层调用,基础服务的故障可能会导致级联故障,进而造成整个系统不可用的情况,这种现象被称为服务雪崩效应。服务雪崩效应是一种因“服务提供者”的不可用导致“服务消费者”的不可用,并将不可用逐渐放大的过程。如果下图所示:A作为服务提供者,B为A的服务消费者,C和D是B的服务消费者。A不可用...转载 2018-11-16 19:13:46 · 251 阅读 · 0 评论 -
SpringCloud之架构体系
附:SpringCloud之系列教程汇总跳转地址概述毫无疑问,Spring Cloud是目前微服务架构领域的翘楚,无数的书籍博客都在讲解这个技术。不过大多数讲解还停留在对Spring Cloud功能使用的层面,其底层的很多原理,很多人可能并不知晓。因此本文将通过大量的手绘图,给大家谈谈Spring Cloud微服务架构的底层原理。实际上,Spring Cloud是一个全家桶式的技术栈,包...转载 2018-11-22 20:05:48 · 6393 阅读 · 6 评论 -
SpringCloud之Zuul
附:SpringCloud之系列教程汇总跳转地址Zuul简介基于Netflix的开源框架zuul实现的各个微服务之间都不存在单点,并且都注册于Eureka ,基于此进行服务的注册与发现,再通过Ribbon进行服务调用,并具有客户端负载功能。问题点?将我们具体的微服务地址和端口暴露出去? 如果系统庞大,服务拆分的足够多那又由谁来维护这些路由关系呢? 服务调用之间的一些鉴权、签名校...原创 2018-11-18 13:07:32 · 316 阅读 · 1 评论 -
SpringCloud之配置中心
附:SpringCloud之系列教程汇总跳转地址我们在前几篇的基础上(springcloud版本为Dalston.SR1),再搭建ConfigServer和ConfigClient两个子模块,项目结构Dalston.SR2,Dalston.SR3等版本,配置中心加密功能有bug,在配置了encrypt.key后,加密时仍然会报异常“No key was installed for en...原创 2018-11-20 10:29:04 · 281 阅读 · 0 评论 -
RestTemplate优化
附:SpringCloud之系列教程汇总跳转地址RestTemplateConfigpackage com.newland.iot.config;import org.apache.http.client.HttpClient;import org.apache.http.impl.client.DefaultConnectionKeepAliveStrategy;import ...原创 2018-11-29 11:11:27 · 5231 阅读 · 1 评论 -
SpringCloud之Eureka实践
附:SpringCloud之系列教程汇总跳转地址实践一、新建一个父级maven项目SpringCloud,以后的各个项目都作为它的子项目,我们这里用的SpringBoot版本为1.5.13.RELEASE,SpringCloud版本为Dalston.SR5pom.xml:<?xml version="1.0" encoding="UTF-8"?><projec...原创 2018-11-16 11:29:12 · 375 阅读 · 0 评论