Spring Cloud Netflix 客户端负载平衡器:Ribbon

本文详细介绍了如何在 Spring Cloud 中使用 Ribbon 进行客户端负载均衡。通过示例展示了基本使用、自定义客户端配置、使用属性定制、取消与 Eureka 集成以及利用 Ribbon 原生 API 和缓存配置。内容涵盖了从创建 Eureka 客户端到使用 RestTemplate 和 LoadBalancerClient 实现负载均衡。
摘要由CSDN通过智能技术生成

部分内容摘自 Spring Cloud 官方文档中文版

本文源码地址:https://github.com/Wyxwx/SpringCloudDemo2

 

Ribbon 是一个客户端负载均衡器,它可以很好地控制 HTTP 和 TCP 客户端的行为。

 

目录

负载均衡

Ribbon 基本使用

自定义 Ribbon 客户端

使用属性自定义 Ribbon 客户端

取消在 Ribbon 中使用 Eureka

Ribbon 原生 API

缓存 Ribbon 配置


 

负载均衡

在如今的网络应用中,单个服务器的性能很难满足高并发的要求。若是执意利用提高服务器的硬件水平,将会得不偿失。在这种情况下,多数应用都选择将服务器集群部署。在 Spring Cloud 中,客户端 Service 都在服务中心注册,将相同功能的客户端命名为相同的 application name,部署在不同的服务器上。服务中心接收到对特定 application name 的请求后,将请求发送至某一客户端 Service 去处理,这就是负载均衡。

 

Ribbon 基本使用

根据 服务发现:Eureka (一) 注册和运行 创建一个服务注册中心(eureka_server)和两个功能相同的 Eureka 客户端(eureka_client_1、eureka_client_2)

两个客户端的配置文件分别改为:

server.port=8762

eureka.client.service-url.defaultZone=http://localhost:8761/eureka/

spring.application.name=ribbonClient

server.port=8763

eureka.client.service-url.defaultZone=http://localhost:8761/eureka/

spring.application.name=ribbonClient

两个客户端的 spring.application.name 相同,代表提供了同一种服务,分配不同的端口模拟在不同服务器的场景

在两个客户端模块中分别创建一个相同的 HelloController

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {

    @Value("${server.port}")
    private String port;

    @RequestMapping(value = "/hello")
    public String hello(){
        return "my port is " + port;
    }

}

接下来,按照创建 Eureka 客户端的步骤创建一个新的 Module: ribbon

在创建之后的 pom.xml 里加入以下依赖


        <dependency>
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值