开发者社区> 问答> 正文

Spring Cloud如进行声明式调用客户端Feign?

Spring Cloud如进行声明式调用客户端Feign?

展开
收起
1358896759097293 2021-05-07 21:31:24 1088 0
1 条回答
写回答
取消 提交回答
  • 45271990@qq.com
    1. 调用方,简化微服务API调用
    1. Feign是一种声明式、模板化的HTTP客户端。
    2. 简化Http客户端开发
    3. 只需要创建一个接口+@注解
    4. Feign 注解和JAX-RS注解。
    5. Feign支持可插拔的编码器和解码器
    6. Feign默认集成了Ribbon,并和Eureka结合
    7. Eclipse或者 IDEA实战

    Feign本身叫声明式调用,通过声明与客户端代理,使用简单的几个注解就能完成一个后端的微服务API调用工作,微服务框架本身它实际的设计思想是去简化微服务开发工程师的一个工作。 因为整个Spring Cloud体系,包含的数10种框架,都在不断的进行迭代发展,里面微服务客户端的调用工具还可以继续使用,但部分组件,有更多的选择,整个Spring Cloud生态是变得越来越丰富,越来越强大,利于去做一个多样化微服务架构的设计。 具体看Feign的使用,参考前几次微服务项目创建的经验,可以用Eclipse、IDEA,也可以用在线的网站向导去生成一个Spring Cloud的一个项目。 演示操作如下 10.png 10.1.png

    为了方便开发,要点选添加Dev tool式组件web项,主要作用是因为要调后台客户端services,更多的时候希望包容RecAPI在本地,通过本地的软件RecAPI底层代理来调远端的后台的微服务,形成一个调动链,本地测试方便。还有Eureka Clie,因为依赖的是Feign是调用端,Feign一定要加进来,版本选2.3.7往后选,不用最新的,因为一般公司的项目迭代没有那么快,大部分企业可能还停留在二点零点几,特别新版本,企业是很难使用。 10.2.png 10.3.png

    配置文件作为一个调用端,它实际和微服务端配置基本上差不多,直接复制微服务的,拷贝过来,端口因为都在同一台机器上,所以里面端口尽量不要重复,9001表示调动端的代码,项目改成Feign Client,端口9001,要去注册中心查,因为要查找后台服务当前在线的微服务集群信息,地址也很重要,需要打开,还要加几个注解,作为客户端和数据中心首先打交道,接下来进行调用。 需要建一个代理接口包含一个声明,不包含方法体,具体如下: 10.4.png

    声明一个客户端的接口,通过依赖注入,Spring框架自动会给装配一个客户端的代理对象,然后通过代理对象来调查,还有Feign Client要给一个服务名,名字要统一,具体操作如下: 10.5.png

    还有地址偏移要匹配,名字与服务端统一,不统一也可以允许一次再封装。 10.6.png

    通过代理调用,浏览器测试,具体操作如下: 10.7.png

    10.8.png

    先启动注册中心测试保证微服务再到客户端: 10.9.png

    10.10.png

    2021-05-10 13:27:38
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
云栖社区特邀专家徐雷Java Spring Boot开发实战系列课程(第20讲):经典面试题与阿里等名企内部招聘求职面试技巧 立即下载
微服务架构模式与原理Spring Cloud开发实战 立即下载
阿里特邀专家徐雷Java Spring Boot开发实战系列课程(第18讲):制作Java Docker镜像与推送到DockerHub和阿里云Docker仓库 立即下载