zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    C++ 中static 使用大全
    JsonCpp 简单使用
    [转]C++ string的trim, split方法
    线程函数
    C++ 读写文件流
    JQ_返回顶部
    JQ_开发经验
    JQ_五星级评分特效
    JQ_One()函数特效
    JQ_插件开发
  • 原文地址:https://www.cnblogs.com/rmxd/p/12554904.html
Copyright © 2011-2022 走看看