SpringCloud(H版)学习---服务调用

一、概述

  

  1、Ribbon

    SpingCloud Ribbon是基于NetFlix Ribbon实现的一套客户端-负载均衡的工具。简单的说,Ribbon是NetFlix公司发布的开源项目,主要功能是提供客户端的软件负载均衡算法和服务调用。Ribbon客户端组件提供一系列完善的配置项如连接超时、重试等。再简单点说,就是在配置文件中列出Load Balancer (简称LB)后面的机器,Ribbon会自动帮助我们基于某种规则(如简单轮询、随机连接等)去连接这些机器。我们很容易使用Ribbon实现自定义的负载均衡算法。官网资料:https://github.com/Netflix/ribbon/wiki/Getting-Started,Ribbon目前也进行维护模式。目前SpringCloud打算使用SpringCloud Load Balancer 替换Ribbon。Ribbon=负载均衡+RestTemplate调用

    RestTemplate官网API:

https://docs.spring.io/spring-framework/docs/5.2.2.RELEASE/javadoc-api/org/springframework/web/client/RestTemplate.html

  2、OpenFeign

    官网地址:https://spring.io/projects/spring-cloud-openfeign,GitHub地址:https://github.com/spring-cloud/spring-cloud-openfeign

    ①Feign是一个声明式WebService客户端。使用Feign能让编写Web Service客户端更加简单。它的使用方法是定义一个服务接口然后在上面添加注解。Feign也支持可插拔式的编码器和解码器。SpringCloud对Feign进行了封装,使其支持了Spring MVC标准注解和HttpMessageConverters。Feign可以与Eureka和Ribbon组合以支持负载均衡。

    ②OpenFeign与Feign的区别:

    ③OpenFeign日志级别:

      (1)NONE:默认的,不显示任何日志;

      (2)BASIC:仅记录请求方法、URL、响应状态码及执行时间;

      (3)HEADERS:除了BASIC定义的信息之外,还有请求和响应的头信息;

      (4)FULL:除了HEADERS中定义的信息之外,还有请求和响应的正文及数据。

  3、Ribbon本地负载均衡与Nginx服务端负载均衡区别

   (1)Nginx是服务器负载均衡,客户端所有请求都会交给Nginx,然后由Nginx实现转发请求。即负载均衡是由服务端来实现。

   (2)Ribbon是本地负载均衡,在调用微服务接口时,会在注册中心上获取信息服务列表之后缓存到JVM本地,从而实现本地RPC远程调用技术。

二、Ribbon服务调用

Ribbon工作流程:

  1、选择Eureka Server,它优先选择在同一个区域内负载比较少的Server

  2、根据用户指定的策略,再从Server取到的服务注册列表中选择一个地址

  部分参考鄙人博客:SpringCloud全家桶学习之客户端负载均衡及自定义负载均衡算法----Ribbon(三),其中有包含源码、自定义轮询算法配置。

三、OpenFeign服务调用

  部分参考鄙人博客:SpringCloud全家桶学习之Feign负载均衡----Feign(四)

1、简单使用

1.1、接口+注解

  ps:红框对应红框,蓝框对应蓝框内容。

 1.2、主类添加注解@EnableFeignClients

2、日志增强

2.1增加配置类

 2.2 application.yml增加配置

 2.3测试

Github地址:https://github.com/Simple-Coder/cloud2020

posted @ 2020-03-23 20:43  coder、  阅读(654)  评论(0编辑  收藏  举报