zoukankan      html  css  js  c++  java
  • spring cloud ribbon调用服务

    Ribbon

    Ribbon主要负责负载均衡调用,是基于Netflix Ribbon实现的一套客户端。主要功能是提供客户端的软件负载均衡算法和服务调用。Ribbon会自动的帮助你基于某种规则去连这些机器。

    简单来说 ribbon = 负载均衡 + restTemplate

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

    Nginx是服务器负载均衡,集中式负载均衡,客户端的所有请求都会交给nginx,然后由nginx实现转发请求。即负载均衡是由服务端实现的。

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

    二、Ribbon工作步骤

    Ribbon在工作时分成两步:

    • 第一步先选择EurekaServer,它优先选择在同一个区域内负载较少的server
    • 第二部再根据用户指定的策略,从server取到的服务注册列表中选择一个地址。

    Ribbon就是一个软负载均衡的客户端组件,它可以和其他所需请求的客户端结合使用,和eureka结合只是其中的一个实例。

    三、Ribbon调用服务

    3.1、设置服务端集群:

    eureka-client、eureka-client2

    eureka-client2就是 eureka-client的复制版,注意端口号要更改。

    在eureka-client中编写controller,用于服务调用测试。

    @RestController
    public class ClientController {
        @Value("${server.port}")
        private String port;
    
        @ResponseBody
        @RequestMapping("/port")
        public String getPort(){
            return port;
        }
    }
    

    3.2、客户端

    3.2.1、编写配置类

    @Configuration
    public class ApplicationContextConfig {
    
        @Bean
        @LoadBalanced
        public RestTemplate getRestTemplate(){
            return new RestTemplate();
        }
    }
    

    3.2.2、编写controller

    @RestController
    public class ConsumerController {
    
        @Resource
        private RestTemplate restTemplate;
    
        private static final String URL = "http://EUREKA-CLIENT";
    
        @RequestMapping("/consumer/port")
        @ResponseBody
        public String getPort() {
            return restTemplate.getForObject(URL + "/port", String.class);
        }
    }
    

    4、测试

    启动eureka-server、eureka-client、eureka-client2、eureka-consumer。

    访问localhost:8001/port进行自测。

    访问localhost:8002/port进行自测。

    自测成功后,不停访问localhost:7001/consumer/port。


    发现端口号会变更,说明Ribbon负载均衡已生效。

  • 相关阅读:
    ARM 平台下的 SSHD 配置
    IISExpress 开放局域网访问
    qt5 交叉编译
    QT4 交叉编译
    make install 时指定安装路径
    linux 读取物理寄存器
    Windows 7 64bit Python 2 Install
    用eggjs返回xml格式数据,前端解析xml
    vue-cli项目中axios的配置文件
    webpack配置练习typescript的web项目
  • 原文地址:https://www.cnblogs.com/Zzwena/p/12540103.html
Copyright © 2011-2022 走看看