
springcloud
1111
fastjson_
这个作者很懒,什么都没留下…
展开
-
SpringCloud:Eureka的健康检测机制
在某一些时候注册在Eureka的服务已经挂掉了,但是服务却还留在Eureka的服务列表的情况。1.Eureka服务端Eureka服务端的配置application.yml:server: port: 9501eureka: instance: hostname: 127.0.0.1 client: registerWithEureka: false fetchRegistry: false serviceUrl: defaultZon原创 2021-10-31 15:16:44 · 577 阅读 · 0 评论 -
第七篇 sleuth + zipkin实现链路监控 (Sleuth)
一、Zipkin简介Zipkin是Twitter的一个开源项目,它基于GoogleDapper实现。我们可以使用它来收集各个服务器上请求链路的跟踪数据,并通过它提供的RESTAPI接口来辅助我们查询跟踪数据以实现对分布式系统的监控程序,从而及时地发现系统中出现的延迟升高问题并找出系统性能瓶颈的根源。除了面向开发的API接口之外,它也提供了方便的UI组件来帮助我们直观的搜索跟踪信息和分析请求链路明细,比如:可以查询某段时间内各用户请求的处理时间等。Spring Cloud...原创 2020-10-24 12:29:31 · 325 阅读 · 0 评论 -
第七篇 分布式微服务的跟踪 (Sleuth)
一、Sleuth介绍 为什么要使用微服务跟踪?它解决了什么问题?1.微服务的现状?微服务的现状 随着业务的发展,单体架构变为微服务架构,并且系统规模也变得越来越大,各微服务间的调用关系也变得越来越复杂。多服务协同工作 在微服务的应用中,一个由客户端发起的请求在后端系统中会经过多个不同的微服务调用来协同产生最后的请求结果复杂的调用链条容易出错 在复杂的微服务架构系统中,几乎每一个前端请求都会形成一个复杂的分布式服务调用链路,在每条链路中任何一个依赖服务出现延迟超时或者错误都有可能引起原创 2020-10-24 09:56:09 · 370 阅读 · 0 评论 -
第六篇 消息总线 (Spring Cloud Bus)
一、实现原理1、ConfigServer(配置中心服务端)从远端git拉取配置文件并在本地git一份,ConfigClient(微服务)从ConfigServer端获取自己对应 配置文件;2、当远端git仓库配置文件发生改变,ConfigServer如何通知到ConfigClient端,即ConfigClient如何感知到配置发生更新?Spring Cloud Bus会向外提供一个http接口,即图中的/bus/refresh。我们将这个接口配置到远程的git的webhook上,当git上的文件原创 2020-10-11 14:29:31 · 296 阅读 · 0 评论 -
第一篇 构建高可用注册中心 (Eureka)
先说一下我们采用的最终方案spring: application: name: eureka server: port: 8761 eureka: instance: hostname: ${spring.cloud.client.ipAddress} prefer-ip-address: true client: serviceUrl: defaultZone: http://127.0.0.1:8762/eureka/,http:原创 2020-10-08 18:13:53 · 229 阅读 · 0 评论 -
第三篇 Turbine集群监控 (Hystrix)
一 、turbine简介HystrixDashboard首页提到监控端点/turbine.stream,它是用来监控集群的。从端点的命名来看,它需要引入Turbine,通过它来汇集监控信息,并将聚合后的信息提供给HystrixDashboard来集中展示和监控。二 、项目介绍引入Turbine来聚合Ribbon-consumer服务的监控信息,并输出给HystrixDashboard来进行展示三、实战步骤1创建标准SpringBoot工程,命名为turbine、...原创 2020-10-07 16:15:01 · 283 阅读 · 0 评论 -
第三篇 服务的监控Hystrix Dashboard (Hystrix)
一、Hystrix Dashboard是什么Hystrix提供了对于微服务调用状态的监控信息,但是需要结合spring-boot-actuator模块一起使用。Hystrix Dashboard主要用来实时监控Hystrix的各项指标信息。通过Hystrix Dashboard反馈的实时信息,可以帮助我们快速发现系统中存在的问题二、我们先来看下Hystrix Dashboard长什么样子1、新建一个maven工程,命名为hystrix-dashboard,pom中引入了Hystrix .原创 2020-10-07 14:17:31 · 453 阅读 · 0 评论 -
第三篇 在Feign中使用断路器 (Hystrix)
Hystrix提供的服务降级是服务容错的重要功能,上一篇我们已经在ribbon中使用了Hystrix的降级服务,下面我们在feign中使用,由于Feign是通过接口远程调用的,所以服务降级逻辑的实现只需要为feign客户端的定义接口编写一个具体的接口实现类。第一步、我们在feign微服务中导入Hystrix的依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.原创 2020-10-07 12:27:21 · 1060 阅读 · 0 评论 -
第一篇 创建maven父工程
缘起初学spring cloud的朋友可能不知道,其实SpringBoot与SpringCloud需要版本对应,否则可能会造成很多意料之外的错误,比如eureka注册了结果找不到服务类啊,比如某些jar导入不进来啊,等等这些错误。下面列出来springBoot和spring cloud的版本对应关系,需要配套使用,才不会出现各种奇怪的错误版本对应关系大版本对应:Spring Cloud Spring Boot Angel版本 兼容Spring Boot 1.2.x Bri原创 2020-10-06 14:20:51 · 449 阅读 · 0 评论 -
第五篇 分布式配置中心 纳入Eureka服务中 (config)
在上一章我们实现了一个具备基本结构的配置管理服务端和客户端,在本节中我们将进一步介绍spring cloud config服务的相关知识和用法一、 服务端详解1、基础架构在手动实践了spring cloud config的基础入门内容之后,在这里我们深入了解一下它是如何运作的,spring cloud config基本结构如下远程Git仓库:用来存储配置文件的地方 本地Git仓库:在Config Server的文件系统中,每次客户端请求获取配置信息的时候,Config Server从Git原创 2020-10-06 12:08:33 · 475 阅读 · 0 评论 -
第五篇 分布式配置中心 (config)
一、简介在分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理,实时更新,所以需要分布式配置中心组件。在Spring Cloud中,有分布式配置中心组件spring cloud config ,它支持配置服务放在配置服务的内存中(即本地),也支持放在远程Git仓库中。在spring cloud config 组件中,分两个角色,一是config server,二是config client。二、构建Config Server1、创建一个spring-boot项目,取名为config.原创 2020-10-05 11:20:27 · 399 阅读 · 0 评论 -
第四篇 API网关服务——过滤器 (Zuul)
一、Zuul过滤器生命周期Zuul大部分功能都是通过过滤器来实现的,Zuul定义了4种标准的过滤器类型,这些过滤器类型对应于请求的典型生命周期。a、pre:这种过滤器在请求被路由之前调用。可利用这种过滤器实现身份验证、在集群中选择请求的微服务,记录调试信息等。b、routing:这种过滤器将请求路由到微服务。这种过滤器用于构建发送给微服务的请求,并使用apachehttpclient或netflixribbon请求微服务。c、post:这种过滤器在路由到微服务以后执行。这种过滤器可用...原创 2020-10-04 12:31:31 · 478 阅读 · 0 评论 -
第四篇 API网关服务——路由功能 (Zuul)
在微服务架构中,需要几个基础的服务治理组件,包括服务注册与发现、服务消费、负载均衡、断路器、智能路由、配置管理等,由这几个基础组件相互协作,共同组建了一个简单的微服务系统。一个简答的微服务系统如下图:注意:A服务和B服务是可以相互调用的,作图的时候忘记了。并且配置服务也是注册到服务注册中心的。在Spring Cloud微服务系统中,一种常见的负载均衡方式是,客户端的请求首先经过负载均衡(zuul、Ngnix),再到达服务网关(zuul集群),然后再到具体的服。,服务统一注册到高可用的服务注册中心原创 2020-10-04 10:49:28 · 932 阅读 · 0 评论 -
第二篇 服务的消费-声明式调用 (Feign)
上一篇文章,讲述了如何通过RestTemplate+Ribbon去消费服务,这篇文章主要讲述如何通过Feign去消费服务一、Feign简介Feign是一个声明式的伪Http客户端,它使得写Http客户端变得更简单。使用Feign,只需要创建一个接口并注解。它具有可插拔的注解特性,可使用Feign 注解和JAX-RS注解。Feign支持可插拔的编码器和解码器。Feign默认集成了Ribbon,并和Eureka结合,默认实现了负载均衡的效果。简而言之:Feign 采用的是基于接口的注解 Fei原创 2020-10-03 14:17:11 · 310 阅读 · 0 评论 -
第三篇 服务的容错 (Hystrix)
在微服务架构中,根据业务来分解成一个单独的服务,服务与服务之间可以相互调用(RPC),在Spring Cloud中可以使用RestTemplate + Ribbon和Feign来调用。通常会分配部署。由于网络原因或者本身的原因,服务并不能保证100%可用,如果拆分服务出现问题,调用此服务就会出现线程中断,此时若有大量的请求涌入,Servlet容器的线程资源会被耗尽,导致服务崩溃。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。为了解决这个问题,提出了断路器模式一,断路器简介Net原创 2020-10-03 10:26:53 · 667 阅读 · 0 评论 -
第二篇 服务的消费 (Ribbon)
一、ribbon简介在上一篇文章,讲了服务的注册和发现。在微服务架构中,业务都会被拆分成一个独立的服务,服务与服务的通讯是基于http restful的。Spring cloud有两种服务调用方式,一种是ribbon+restTemplate,另一种是feign。在这一篇文章首先讲解下基于ribbon+restribbon是一个负载均衡客户端,可以很好的控制http和tcp的一些行为。Feign默认集成了ribbon。ribbon 已经默认实现了这些配置bean: IClientConfi原创 2020-10-01 12:47:16 · 330 阅读 · 0 评论 -
第一篇 服务的注册与发现——生产者 (Provider)
一、创建一个服务提供者 (eureka client)当client向server注册时,它会提供一些元数据,例如主机和端口,URL,主页等。Eureka server 从每个client实例接收心跳消息。 如果心跳超时,则通常将该实例从注册server中删除1、构建模型注:构建模型时要将web组件和spring cloud discovery组件给选上,否则服务注册不到注册中心构建完成,查看依赖pom<?xml version="1.0" encoding="UTF-8"原创 2020-09-20 17:56:58 · 344 阅读 · 0 评论 -
第一篇 服务的注册与发现——注册中心(Eureka)
一、spring cloud简介Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring Cloud并没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和原创 2020-09-20 16:04:23 · 306 阅读 · 0 评论 -
IDEA中启动多个微服务(开启Services管理)
微服务项目的开发过程中,工程会非常多,经常要启动很多个服务,才能完成一项测试。启动的多了,容易开发者带来错乱的感觉,很不方便管理。在idea作为开发工具时,推荐一个很好用的功能--Run Dashboard,新版本里面的名字改成了Services.idea > workspace.xml 中添加如下配置,重启idea <component name="RunDashboard"> <option name="configurationTypes">原创 2020-09-20 12:01:59 · 19612 阅读 · 5 评论