美文网首页
Spring Cloud 服务调用

Spring Cloud 服务调用

作者: 幻影翔 | 来源:发表于2020-02-16 10:09 被阅读0次
    image.png

    ribbon和feign的区别,比较

    首先说一下微服务中常用的两种架构
    常规的微服务有两种类型:一种是基于dubbo的微服务架构、另外一种是基于Spring Cloud的微服务架构。从概念上来讲,Dubbo和Spring Cloud并不能放在一起对比,因为Dubbo仅仅是一个RPC框架,实现Java程序的远程调用,实施服务化的中间件则需要自己开发;而Spring Cloud则是实施微服务的一系列套件,包括:服务注册与发现、断路器、服务状态监控、配置管理、智能路由、一次性令牌、全局锁、分布式会话管理、集群状态管理等。
    在一开始做服务消费者这边时,就在考虑改用ribbon来做负载均衡好,还是使用feign来做负载均衡好;
    我们可以来对比一下两者之间的写法:
    ribbon:
    负载均衡是在RestTeplate这里加@LoadBalanced

    ribbon.png

    在controller中调用restTemplate来进行restful的访问其他服务。当然这里是已经进行过负载均衡过之后的。

    feign:
    feign是通过@FeignClient来寻找服务并且进行负载均衡的,默认算法是轮询算法。


    feign.png

    最终我选择了feign来进行负载均衡:
    原因有以下几点:

    • feign本身里面就包含有了ribbon
    • feign自身是一个声明式的伪http客户端,写起来更加思路清晰和方便
    • fegin是一个采用基于接口的注解的编程方式,更加简便
      注意feign里面开启熔断器处理时,需要有以下配置:
    server:
      port: 80
      
    feign: 
      hystrix: 
        enabled: true
    eureka:
      client: #客户端注册金eureka服务列表中
        register-with-eureka: false   #自己不能注册
        service-url:
          defaultZone: http://localhost:7001/eureka/,http://localhost:7002/eureka,http://localhost:7003/eureka
          #在微服务列表中注册的名字是spring.application.name的名
    

    在@feignclient里面申明到fallback会调用到订单的熔断器类


    image.png

    这个是熔断处理类,在里面对熔断进行处理:


    image.png

    原文链接:https://blog.csdn.net/weixin_42237752/article/details/95625031

    相关文章

      网友评论

          本文标题:Spring Cloud 服务调用

          本文链接:https://www.haomeiwen.com/subject/zaoyfhtx.html