zoukankan      html  css  js  c++  java
  • 阶段5 3.微服务项目【学成在线】_day09 课程预览 Eureka Feign_06-Feign远程调用-Ribbon测试


    2.1.2 Ribbon测试
    Spring Cloud引入Ribbon配合 restTemplate 实现客户端负载均衡。Java中远程调用的技术有很多,如:
    webservice、socket、rmi、Apache HttpClient、OkHttp等,互联网项目使用基于http的客户端较多,本项目使
    用OkHttp。



    现在要实现课程去服务去调用cms服务。调用放course服务就是客户端

    在course服务里面 采用客户端负载均衡的方式来调用cms。

    首先加入ribbon的包和okhttp的引用

    ribbon要发起http的远程调用。

    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring‐cloud‐starter‐ribbon</artifactId>
    </dependency>
    <dependency>
        <groupId>com.squareup.okhttp3</groupId>
        <artifactId>okhttp</artifactId>
    </dependency>

    引入后刷新包

    配置ribbon请求的参数

    cms启动多个实例

    主要端口的环境变量


    首先启动cms

    然后再关闭,这里就有了cms的applicaiton了

    复制一个


    改个名字 配置上环境变量

    点击右下角的Apply

    把cms01拖进来到xc_edu的文件夹







    也拖进来。这样这两个启动脚本就做好了。

    启动一个eureka01。然后启动cms01

    启动cms02

    远程调用

    curse服务启动类里面定义 一个Bean restTemplate方法返回RestTemplate。这样restTemplate在其他类里面就可以用@Autowired注入


    新建测试类。复制上面的TestDao类


    这是eureka中的服务列表。



    定义serviceId就是 eureka中注册的服务名






    ribbon还布局负载均衡的功能,要想让他具备负载均衡 就必须在RestTemplate上注解。开启负载均衡

    启动服务测试,这样就拿到了数据

    负载均衡的测试

    添加@LoadBalanced注解后,restTemplate会走LoadBalancerInterceptor拦截器,此拦截器中会通过
    RibbonLoadBalancerClient查询服务地址,可以在此类打断点观察每次调用的服务地址和端口,两个cms服务会轮
    流被调用。

    循环10次调用



    第一次的地址

    第二次的地址

    这就是轮询的负载均衡



     

  • 相关阅读:
    Activity相关
    关于JNI接口封装(将so接口调用封装到jar包)
    在android系统源码目录下编译apk
    【原创】分享一个分析函数统计案例
    【原创】Oracle函数中对于NO_DATA_FOUND异常处理的研究
    【原创】一种维护型项目升级打包的解决方案
    【原创】如何找到Oracle中哪条记录被锁
    【原创】ORA-04068: 已丢弃程序包 的当前状态研究
    【原创】CQ数据库损坏修复
    【原创】物化视图日志对性能的影响测试
  • 原文地址:https://www.cnblogs.com/wangjunwei/p/11664420.html
Copyright © 2011-2022 走看看