SpringCloud入门学习笔记3--注册到Eureka上的服务调用(ribbon+restTemplate模式)

一、Ribbon简介

Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法,将Netflix的中间层服务连接在一起。Ribbon客户端组件提供一系列完善的配置项如连接超时,重试等。简单的说,就是在配置文件中列出Load Balancer(简称LB)后面所有的机器,Ribbon会自动的帮助你基于某种规则(如简单轮询,随即连接等)去连接这些机器。我们也很容易使用Ribbon实现自定义的负载均衡算法。

二、搭建工程

2.1 创建一个服务消费者

(1)右键点击父工程>new>module创建demo_ribbon_restTemplate模块

(2) pom.xml引入eureka-client依赖以及netflix-ribbon依赖

(3)添加application.yml配置文件

server:
  port: 9005
spring:
  application:
    name: demo-ribbon
eureka:
  client:
    service-url:
      defaultZone: http://127.0.0.1:8888/eureka
  instance:
    prefer-ip-address: true #以IP地址注册到服务中心

(4)编写启动类RibbonApplication,添加注解@EnableDiscoveryClient,向服务中心注册。并且向程序的ioc注入一个bean: restTemplate。@LoadBalanced注解表明这个restRemplate开启负载均衡的功能。

(5)ribbon包下新建一个包 service。写一个测试类RibboService,通过之前注入ioc容器的restTemplate来消费demo_ribbon_service服务的“/test”接口,在这里我们直接用的服务名替代了具体的url地址,在ribbon中它会根据服务名来选择具体的服务实例,根据服务实例在请求的时候会用具体的url替换掉服务名。

(6)ribbon包下新建包 controller,新建一个测试类 TestController,调用RibbonTestService

的方法

2.2 创建一个服务提供者

(1)新建模块,demo_ribbon_service

(2)pom.xml引入eureka-client依赖

(3)添加application.yml配置文件

server:
  port: 9001
spring:
  application:
    name: demo-ribbon-service
eureka:
  client:
    service-url:
      defaultZone: http://127.0.0.1:8888/eureka
  instance:
    prefer-ip-address: true #以IP地址注册到服务中心

(4)编写启动类 EurekaServiceApplication

(5)编写类  ServiceController

(6)启动前面写好的demo_eureka项目。然后启动 demo_ribbon_restTemplate

打开Eureka界面,消费者demo_ribbon已经注册成功了,端口号为9005。

下面启动服务提供者demo_ribbon_service。首先将demo_ribbon_service的端口号修改为9001,启动完成后依次修改为9002和9003再依次重新启动,目的是在Eureka上面注册3个服务提供者,相当于一个小的集群。以便我们观察ribbon负载均衡下服务的调用情况。

同一个项目要启动多次的话需要设置一下

最后上面将会有三个不同端口的demo_ribbon_service服务,最终Eureaka上面注册的服务如下:

(8)在浏览器输入  http://localhost:9005/test?param=111,多次输入后可以观察到端口号依次变化为 9001,9002,9003,服务被依次调用

下一篇:微服务注册到Eureka后,服务间的调用(feign模式)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值