zoukankan      html  css  js  c++  java
  • Spring-cloud微服务实战【六】:接口服务feign

    在上一篇文章中,我们使用了ribbon进行负载均衡,但是仔细思考一下,我们的请求封装和调用以及结果的返回都是我们自己编码完成的,如果需要调用的接口很多,那么无疑开发量是比较大的,那有没有比较好的方式呢?答案就是feign.让我们先通过代码来看一下feign的使用:
    首先,我们需要复制一份consumer的代码,并且重命名为dhp-micro-service-consumer-feign:
    file

    然后修改代码如下:
    1.新增maven依赖:
    file

    2.修改代码:
    首先新增一个feign的接口:
    file

    另外,如果要通过Feign进行远程调用,依然需要安全服务提供方的认证问题,所幸feign里面已经集成了这块功能:
    file

    此时,准备工作已经做好了,修改controller的代码:
    file

    然后启动起来试一试:
    file
    file

    说明feign已经继承成功,可以看到,和之前的代码量相比,使用feign之后代码已经简洁许多了,并且如果producer启动了集群,可以发现feign自带负载均衡功能,因为feign也集成了ribbon,我们用两张图来对比一下:
    在没有集成feign之前,我们是直接走ribbon:
    file

    集成feign之后,我们是走feign:
    file

    我们可以新增ribbon策略试一试:
    file

    再次启动,会发现负载均衡规则是随机访问了.

    数据压缩

    我们已经知道,feign最主要的作用就是将Rest服务的信息转化为接口,这其中还有其他的一些地方应该要考虑,比如:数据的压缩.Rest协议更多的传输的是文本,JSON或者XML,如果用户发送的请求很大,这个时候有必要对数据进行压缩处理,feign本身提供了对压缩的支持:
    file

    介绍完了feign,下一篇文章,我们会介绍服务熔断与降级hystrix,敬请期待.
    本文的GitHub地址

    本文由博客一文多发平台 OpenWrite 发布!

  • 相关阅读:
    maven下载出错
    Android中TextView和EditView常用属性设置
    在python3.6环境下使用cxfreeze打包程序
    Python安装环境配置和多版本共存
    python manage.py migrate出错
    python使用pip安装模块出错 Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None))
    类的继承
    显示一张大图两张小图思路!banner数据库设计
    微信模板
    微擎小程序第二次请求 promise
  • 原文地址:https://www.cnblogs.com/wukongbubai/p/12219920.html
Copyright © 2011-2022 走看看