在前面章节中我们介绍了ribbon的使用以及启动原理,在这篇文章中将主要介绍openfeign的原理。在Spring cloud体系中, feign其实有着很重比较重要的地位,因为feign能够大大简化我们对远程请求以及返回结果的处理,帮助我们快速开发。我们还是以一个简单的demo开始我们的代码调试和讲解步骤. DEMO 对于feign中, spring还是集成的很好的,同时也为我们提供了扩展的地方。 引入依赖 <dependency> <groupId>org.springframewor…

11月 27, 2021 2条评论 966点热度 1人点赞 阅读全文

在spring cloud负载均衡之ribbon—demo实现 我们介绍了Ribbon的使用方式,其中给出了完整的demo使用方式,这篇文章将介绍RestTemplate类将介绍与Ribbon配合工作流程。如果对ribbon的工作原理感兴趣,可以参考spring clound负载均衡之Ribbon(三)- 工作原理 , 这篇文章介绍了Ribbon中重要的类型,以及类型的作用。 使用方式 在正式开始介绍RestTemplate方式工作方式之前,我们回顾下如何通过RestTemplate进行远程请求, 具体使用方式如下…

10月 3, 2021 0条评论 660点热度 0人点赞 阅读全文

在之前文章spring clound负载均衡之Ribbon(二)- 自动装配 中,介绍了ribbon自动装配的原理,这篇文章中将主要介绍在ribbon启动过程中,涉及到的重要类型。这些类型在ribbon中充当比较重要的作用。下面我们就一起来看看吧。 RibbonClientSpecification 该类作为ribbon配置类型存在,主要由spring-cloud提供,我们看下该类型的源码: /** * Specification with name and configuration. */ public int…

9月 25, 2021 0条评论 664点热度 0人点赞 阅读全文

在之前的文章spring cloud负载均衡之ribbon—demo实现  通过demo的方式实现了ribbon的使用,在这个实例中,通过round robin的方法轮询访问远程依赖的服务列表,达到负载均衡的方式。在这边文章中,主要介绍ribbon自动装配的过程,以及在装配过程中比较重要的类型,让我们对ribbon有一个整体的设计概念,便于后面我们对ribbon的学习。 前情回顾 spring cloud负载均衡之ribbon—demo实现 中,我们在创建RestTemplate的时候, 使用了@LoadBalan…

9月 16, 2021 0条评论 484点热度 0人点赞 阅读全文

在微服务实现中,比较重要的一个组建就是负载均衡,主要是同一个服务又多实例时,为了能够将请求分发到不同的实例节点上, 负载均衡是一个比不可少的组件。在spring cloud eureka的实现中,默认使用了ribbon作为服务均衡的实现, 本篇文章主要是以demo的方式优先了解ribbon的一个具体的使用,然后才能更好的从源码角度分析ribbon的工作原理。 微服务准备 在该demo种,将会创建两个简单的服务,提供相同的接口,名称为spring-cloud-eureka-client-a 与spring-cloud…

9月 16, 2021 0条评论 477点热度 0人点赞 阅读全文

在之前章节中介绍了Eureka Server的启动流程,  该篇文章主要实现一个eureka server的简单demo, 便于在本地做调试。 创建项目 在本地中,创建一个maven项目, 具体的pom.xml配置如下: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instan…

9月 15, 2021 0条评论 398点热度 0人点赞 阅读全文

在之前章节spring cloud 服务发现之Eureka Client(三)—DiscoveryClient 中介绍了Eureka 客户端在启动过程中的流程,在DiscoveryClient启动过程中,会有两个重要的定时任务: 发送心跳信息 从EurekaServer同步注册实例节点 这篇文章就主要介绍这两个定时任务的执行逻辑以及从源码角度分析代码实现,能够更好的理解和使用Eureka。 心跳任务 之前章节中介绍了在DiscoveryClient实例化过程中,心跳任务TimedSupervisorTask开始执行…

9月 10, 2021 0条评论 491点热度 0人点赞 阅读全文

在上篇文章spring cloud 服务发现之Eureka Client(二)—自动装配中,介绍了Eureka Client自动装配的过程,其中设计到几个比较重要的类,包括ServiceRegistry, EurekaClient, EurekaDiscoveryClient类型。这些类型在Eureka Client整个生命周期中充当这比较重要的角色,在今天这章节中,将主要介绍DiscoveryClient对象,该对象主要包括了一下几个步骤: 注册当前实例 从eureka server中获取实例列表 心跳启动 类结…

9月 7, 2021 0条评论 512点热度 0人点赞 阅读全文

在spring cloud 服务发现之Eureka Client(一)—客户端配置DEMO章节中介绍了如何快速的启动一个Eureka Client, 并将当前服务信息注册到Eureka Server中。在这篇文章中,将主要介绍在Eureka Client自动状态的过程中,需要执行那些过程,那些类是在启动过程中比不可少了。 这篇文章中,主要介绍通用的使用过程,其他的装配过程基本类似。 EnableDiscoveryClient 该类作为通用的服务发现客户端的启用类,可以用作不同的服务发现组件。该类源码如下: @Tar…

9月 6, 2021 0条评论 421点热度 0人点赞 阅读全文

这篇文章主要通过DEMO的方式启动一个微服务,并将服务注册到Eureka Server. Eureka Server为本地启动的服务信息,可以通过之前的文章查看启动过程,以及启动原理。 POM配置 pom配置主要配置了启动需要的依赖包信息, 具体代码如下: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/200…

9月 4, 2021 0条评论 409点热度 0人点赞 阅读全文

Eureka Server本身在做服务注册时,客户端是否下线,是通过客户端向服务端发送心跳信息, 服务端一次来保证客户端处于UP状态。同时当客户端心跳发送失败时,这是服务端将通过自身的剔除策略,将处于DOWN状态下的服务从Registry中进行移除,保证服务可用性。 策略如何启用? 前面章节中,服务的启动过程中详细阐述了EurekaServer的启用过程, 其中有介绍到, 当EurekaServerBootstrap在执行initilize方法时,会启动evict定时任务,执行服务剔除操作,具体代码如下: prot…

8月 21, 2021 0条评论 336点热度 0人点赞 阅读全文
12