学习Spring Cloud第十课(Ribbon脱离Eureka使用)

       首先还是先看一下官方说明,如下所示。翻译大概是这样:Eureka是让我们抽象远程服务不必在客户端硬编码urls的一个非常方便的方式,但是如果Ribbon和Feign对你来说应用很合适但是你又不想使用eureka的话,举个例子,假如你已经为服务自定义了一个@RibbonClient并且项目可能没有用到Eureka(甚至eureka都不在编译文件当中)。Ribbon Client可以支持对本地配置的服务使用负载均衡。

Example: How to Use Ribbon Without Eureka
    Eureka is a convenient way to abstract the discovery of remote servers so you don’t have to hard code their
URLs in clients, but if you prefer not to use it, Ribbon and Feign are still quite amenable. Suppose you have
declared a @RibbonClient for "stores", and Eureka is not in use (and not even on the classpath). The Ribbon 
client defaults to a configured server list, and you can supply the configuration like this

application.yml
stores:
  ribbon:
    listOfServers: example.com,google.com
Example: Disable Eureka use in Ribbon
Setting the property ribbon.eureka.enabled = false will explicitly disable the use of Eureka in Ribbon.

application.yml
ribbon:
  eureka:
   enabled: false
        为了测试这个功能,我们复制一份movie工程(之所以复制,是不想污染原来的代码),如下图所示。

       然后我们进入到microservice-simple-consumer-movie-ribbon-without-eureka这个工程只剩下src和pom.xml文件其余都删掉。


      然后我们使用编辑器打开microservice-simple-consumer-movie-ribbon-without-eureka的pom.xml文件,修改下工程名字,如下图所示。


       接着我们还要在父工程的pom.xml文件当中添加该模块,如下图所示。


       对于IntellijIDEA这款工具来讲,我们都不用导入到开发工具,自动就已经添加到父工程下面了,如下图所示。


        下面我们来配置一下这个工程的pom.xml文件,将上节课通过配置文件配置的负载均衡策略去掉,添加如下配置。

ribbon:
  eureka:
   enabled: false
microservice-provider-user:
  ribbon:
    listOfServers: localhost:7900
       配置完后如下所示。

server:
  port: 8010
spring:
  application:
    name: microservice-consumer-movie
eureka:
  client:
    healthcheck:
      enabled: true
    serviceUrl:
      defaultZone: http://user:password123@localhost:8761/eureka
  instance:
    prefer-ip-address: true
ribbon:
  eureka:
   enabled: false
microservice-provider-user:
  ribbon:
    listOfServers: localhost:7900
      由于我配置的是只访问本地的7900,为了更好的演示,我起2个端口,分别是7900、7901都属于一个服务。我们还是先起eureka、接着起2个user,最后起我们刚配置好的movie。起完之后,我们查看eureka上注册的服务,发现已经都注册上来了。


      这时我们访问http://localhost:8010/movie/1,多刷新几次,发现只有7900起作用了,7901并没有被访问到,说明我们配置的ribbon脱离eureka起作用了。

       现在,我们将movie服务的名称改为microservice-provider-user2,然后启动7902和7903两个端口,然后我们配置pom.xml如下

microservice-provider-user:
  ribbon:
    listOfServers: localhost:7900
microservice-provider-user2:
  ribbon:
    listOfServers: localhost:7902
      然后我们在movie的Controller当中添加下图标出的代码

       重启movie工程,然后我们多次刷新http://localhost:8010/movie/1,然后就出现如下图所示日志,发现是我们配置的两个服务端口。


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值