使用 Ribbon 实现客户端负载均衡2024年11月14日 | 阅读时长:3 分钟 Netflix RibbonNetflix Ribbon 是 Netflix 开源软件 (Netflix OSS) 的一部分。它是一个云库,提供客户端负载均衡。它可以自动与 Netflix 服务发现 (Eureka) 交互,因为它属于 Netflix 系列。 Ribbon 主要提供客户端负载均衡算法。它是一个客户端负载均衡器,可以控制 HTTP 和 TCP 客户端的行为。重要的一点是,当我们使用 Feign 时,也会应用 Ribbon。 Ribbon 的特性
模块
负载均衡的类型有两种类型的负载均衡
让我们在我们的项目中配置 Ribbon 服务器。 步骤 1:转到项目 currency-conversion-service。 步骤 2:打开 pom.xml 文件并添加 ribbon 依赖项。 添加依赖项后,我们需要在代理上启用 ribbon。 步骤 3:打开 CurrencyExchangeServiceProxy.java 文件。 通过添加注解 @RibbonClient 并指定我们要与之通信的服务的名称来启用 Ribbon。 Ribbon 客户端为客户端提供声明式配置。 CurrencyExchangeServiceProxy.java 步骤 4:在注解 @FeignClient 中,删除属性 URL。 因为我们不需要与特定的服务通信。 我们将在 application.properties 文件中配置该 URL。 步骤 5:打开项目 currency-conversion-service 的 application.properties 文件并配置服务器。 我们必须配置的属性是 我们配置了要调用的 currency-exchange-service 的两个实例。 application.properties 运行使用 Ribbon 实现的客户端负载均衡我们有两个 CurrentlyExchangeServiceApplication.java 的实例,如下图所示 ![]() 首先,在端口 8000 上运行 CurrencyExchangeServiceApplication,然后在端口 8001 上运行 CurrencyExchangeServiceApplication。 在两个端口上运行 CurrencyExchangeServiceApplication 后,通过发送请求 https://:8100/currency-converter-feign/from/EUR/to/INR/quantity/10000 运行 CurrencyConversionServiceApplication.java。它返回以下响应。 ![]() 在上图中,端口 8000 表示 currency-exchange-service 正在端口 8000 上运行并处理当前请求。 现在,刷新页面。 我们得到相同的响应,除了端口号和数量,因为我们更改了请求中的数量。 ![]() 在上图中,端口 8001 表示 currency-exchange-service 正在端口 8001 上运行并处理当前请求。 让我们通过一个图来理解负载均衡 ![]() 在上图中,Ribbon 在三个活动的 CurrencyExchangeServices 之间分配负载。 CurrencyExchangeService1 在端口 8000 上运行,CurrencyExchangeService2 在端口 8001 上运行,依此类推。 因此,无论通过 CurrencyCalculationService 使用 Ribbon 发出什么调用,都会在这些三个服务之间分配。 下一主题Eureka 命名服务器 |
我们请求您订阅我们的新闻通讯以获取最新更新。