SpringCloud-day05-服务调用Ribbon
6.服务调用Ribbon
6.1Ribbon简介
eureka服务注册与发现,但是结合eureka集群的服务调用并没有谈到。这里就要用到Ribbon,结合eureka,来实现服务的调用;
Ribbon是Netflix发布的负载均衡器,它有助于控制HTTP和TCP的客户端的行为。为Ribbon配置服务提供者地址后,Ribbon就可基于某种负载均衡算法,自动地帮助服务消费者去请求。
Ribbon默认为我们提供了很多负载均衡算法,例如轮询、随机等。当然,我们也可为Ribbon实现自定义的负载均衡算法。
在Spring Cloud中,当Ribbon与Eureka配合使用时,Ribbon可自动从Eureka Server获取服务提供者地址列表,并基于负载均衡算法,请求其中一个服务提供者实例。
Ribbon与Eureka配合使用时的架构如下图:
6.2.Ribbon简单实用
Ribbon是客户端负载均衡,所以肯定集成再消费端,也就是consumer端
修改ticket-consumer-80
第一步: ticket-consumer-80,引入依赖,pom.xml 加入 ribbon相关依赖
1 <!-- Ribbon与Eureka 结合消费端负载均衡--> 2 <dependency> 3 <groupId>org.springframework.cloud</groupId> 4 <artifactId>spring-cloud-starter-eureka</artifactId> 5 </dependency> 6 <dependency> 7 <groupId>org.springframework.cloud</groupId> 8 <artifactId>spring-cloud-starter-ribbon</artifactId> 9 </dependency> 10 <dependency> 11 <groupId>org.springframework.cloud</groupId> 12 <artifactId>spring-cloud-starter-config</artifactId> 13 </dependency>
第二步: ticket-consumer-80 的 application.yml如下
server:
port: 80
context-path: /
# 客户端负载均衡配置
eureka:
client:
register-with-eureka: false
service-url:
defaultZone: http://eureka7001.wfd360.com:7001/eureka/,http://eureka7002.wfd360.com:7002/eureka/,http://eureka7003.wfd360.com:7003/eureka/
第三步:ribbon结合eureka来调用服务提供者,SpringCloudConfig也改成 要加个负载均衡配置 @LoadBalanced
第四步:因为和eureka整合,所以启动类TicketConsumerApplication_80 加个注解 @EnableEurekaClient
第五步:在服务提供者ticket-provider-6001的application.yml加下配置,指定下应用名称:
application:
name: service-ticket
直观图如下:
第六步:修改下TicketConsumerController的URL,改成指定的微服务应用名称,在第五步中我们的服务名称为:service-ticket,注意要大写
代码如下
private static final String URL="http://SERVICE-TICKET/";
第七步:测试 ,先启动3个注册中心,在启动服务提供者,最后启动消费者
访问:http://localhost/ticket/list ,结果如下,则配置成功
ribbon的基本使用结束,
springCloud课程与代码下载:https://www.cnblogs.com/newAndHui/p/13210228.html
完美!