文章目录

简介快速入门测试

简介

Ribbon项目托管在 github 上,其对Ribbon的简介为:Ribbon是一个具有内置软件负载均衡器的进程间通信(远程过程调用)库。主要的使用模型涉及到支持各种序列化方案的REST调用。

快速入门

与学习eureka时类似,首先我们先创建一个ribbon-learn模块,然后在其中创建子模块,包括两个服务提供模块和一个消费模块。项目结构如下: 在provider模块,pom文件中除去暂时只有两个依赖(与前文的Eureka Client的依赖一致):

org.springframework.cloud

spring-cloud-starter-netflix-eureka-client

org.springframework.boot

spring-boot-starter-web

其中provider的配置文件如下:

server:

port: 8080 # providerB的端口为8081

spring:

application:

name: provider

eureka:

client:

service-url:

defaultZone: http://192.168.13.14:8761/eureka

register-with-eureka: true

fetch-registry: true

instance:

instance-id: ${eureka.instance.hostname}:${spring.application.name}:${server.port}

hostname: localhost

prefer-ip-address: true # 以 ip 形式显示具体的服务信息

两个provider模块中都有一个测试用的controller,他们简单的返回一个字符串,说明当前的服务名;

在consumer模块中,与provider模块不同,新增了ribbon的依赖:

org.springframework.cloud

spring-cloud-starter-netflix-ribbon

在配置文件中,出应用名与端口号不同于provider外,其余都一致;

server:

port: 8082

spring:

application:

name: consumer

eureka:

client:

service-url:

defaultZone: http://192.168.13.14:8761/eureka

register-with-eureka: true

fetch-registry: true

instance:

instance-id: ${eureka.instance.hostname}:${spring.application.name}:${server.port}

hostname: localhost

prefer-ip-address: true # 以 ip 形式显示具体的服务信息

此外,在配置类中,注入了RestTemplate,我们在该Bean上加上了ribbon的 @LoadBalanced 注解,将resttemplate交给ribbon进行管理。 然后,在consumer模块中添加一个测试的controller类,如下: 说明:在引入ribbon后,它会拦截我们的请求,然后根据Eureka Server中服务的信息对请求的url进行重构,并进行负载均衡。更加深入的原理,后文会继续探究。

测试

前提:我们的Eureka Server服务已经部署至服务器且一致运行;

依次启动我们创建的三个模块;访问consumer的接口:http://localhost:8082/consumer?serverName=provider多重复几次

然后我们就可以看到每次访问都返回了不同的值,证明ribbon确实对访问请求进行了负载均衡,且采用了轮询的策略。

以上就是ribbon的一个入门使用介绍,想要继续了解ribbon,可以阅读本专栏后续更新文章。

好文阅读

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: