笔记

5、微服务调用方式之feign 实战 订单调用商品服务
    简介:改造电商项目 订单服务 调用商品服务获取商品信息
        Feign: 伪RPC客户端(本质还是用http)
        官方文档: https://cloud.spring.io/spring-cloud-openfeign/

1、使用feign步骤讲解(新旧版本依赖名称不一样)
            加入依赖
                 <dependency>
                    <groupId>org.springframework.cloud</groupId>
                    <artifactId>spring-cloud-starter-openfeign</artifactId>
                </dependency>
            启动类增加@EnableFeignClients
            增加一个接口 并@FeignClient(name="product-service")

2、编码实战

3、注意点:
            1、路径
            2、Http方法必须对应
            3、使用requestBody,应该使用@PostMapping
            4、多个参数的时候,通过@RequestParam("id") int id)方式调用

开始

feign是一个发http请求的客户端。从order service发送请求到Product service
建议大家去看官方文档:官方文档: https://cloud.spring.io/spring-cloud-openfeign/

首先需要加依赖的包

启动类加注解

下面ribbon的方法可删可不删。这里先保留着

service下新增ProductClient。他的类形式Interface接口类

增加注解。里面的name的值就是调用的服务的名称


product的服务启动两个一个 8772 一个8773.

看到注册中心启动了两个服务

调用client

调用client里面的方法。获取到的是json字符串。

需要一个json工具类。新建utils包然后新建JsonUtils类

spring默认的是用jackson这个包解析json。注意这些都是jackson这个包下的。注意这里定义的ObjectMapper用了final修饰

解析json的字符串返回一个JsonNode对象

在这里我们断点调试一下

请求到的数据


JsonNode的数据格式

在jsonNode里面获取json属性的值,分别get name 的值和get 里面的price的值

发送请求


注意事项

这里也可以使用RequestMapping不过要指定value和method

多个参数的时候,通过@RequestParam("id") int id)方式调用。
参数一定要和调用的product的方法的参数保持一致

如果product的服务参数使用了requestBody那么orderService上面的注解一定要使用postMapping了。因为requestBody接收的就是post过来的参数。这里必须用PostMapping来修饰了

复杂的调用可以百度一下找对应的文章看。

转载于:https://www.cnblogs.com/wangjunwei/p/11445843.html

小D课堂 - 新版本微服务springcloud+Docker教程_4-05 微服务调用方式之feign 实战 订单调用商品服务...相关推荐

  1. 小D课堂 - 新版本微服务springcloud+Docker教程_汇总

    小D课堂 - 新版本微服务springcloud+Docker教程_1_01课程简介 小D课堂 - 新版本微服务springcloud+Docker教程_1_02技术选型 小D课堂 - 新版本微服务s ...

  2. SpringCloud 入门教程(六): 用声明式REST客户端Feign调用远端HTTP服务

    首先简单解释一下什么是声明式实现? 要做一件事, 需要知道三个要素,where, what, how.即在哪里( where)用什么办法(how)做什么(what).什么时候做(when)我们纳入ho ...

  3. [转]微服务与Docker

    在Docker上运行微服务 在过去的两年里,微服务架构已经成了非常热门的名词,它出现在很多论坛.视频.演讲中.作为一种更灵活.可靠.开放的架构,其应用实践也越来越多.近日,来自七牛云存储.DaoClo ...

  4. 中间件和微服务,Docker以及原生云架构的关系

    IT世界的技术更新非常迅速.一年前我曾写过一篇关于:微服务是否是企业服务总线和其他中间件的死亡魔法.本文章是之前文章的后续以及关于微服务.容器和原生云架构的中间件关系讨论的更新.各种规模的企业正在以令 ...

  5. springcloudalibaba架构(31):SpringCloud实现用户信息在微服务之间传递(Feign和Dubbo)

    文章目录 前言 第一节 微服务间用户信息传递问题 第二节 解决思路 第三节 实践操作(基于Feign) 1. 调用链路说明 2. shop-common改造 3. 开启注解 4. 启动服务器测试 第四 ...

  6. spring cloud 微服务调用--ribbon和feign调用

    这里介绍ribbon和feign调用两种通信服务调用方式,同时介绍如何引入第三方服务调用.案例包括了ribbon负载均衡和hystrix熔断--服务降级的处理,以及feign声明式服务调用.例子包括s ...

  7. 从 0 搭建 Spring Cloud 服务,完整教程!

    微信搜索逆锋起笔关注后回复编程pdf 领取编程大佬们所推荐的 23 种编程资料! 一.微服务基础 1.什么是 SpringCloud? SpringCloud 官网:https://spring.io ...

  8. SpringCloud详细教程(上)

    [订阅专栏合集,关注公众号,作者所有付费文章都能看(持续更新)] 推荐[SpringCloud教程]https://blog.csdn.net/hellozpc/article/details/836 ...

  9. 【谷粒商城高级篇】商品服务 商品上架

    谷粒商城笔记合集 分布式基础篇 分布式高级篇 高可用集群篇 ===简介&环境搭建=== ===Elasticsearch=== 项目简介与分布式概念(第一.二章) Elasticsearch: ...

  10. 海量数据大课学习笔记(12)-账号微服务-阿里云OSS接入实战-小滴课堂

    文章目录 前言 第1集 分布式文件存储业界常见解决方案介绍 第2集 阿里云OSS分布式对象存储介绍开通 第3集 权限知识 RBAC-ACL模式应用之阿里云RAM访问控制 第4集 阿里云OSS客户端SD ...

最新文章

  1. 产品设计体会(1011)少做就是多做
  2. 润乾集算报表优化应用结构之混合数据源
  3. 正则表达式表示任意字符
  4. python免费试听-线上儿童编程免费试听-品质保障
  5. Servlet中乱码问题
  6. java如何爬取304_HTTP 304错误的详细讲解
  7. 25道Spring框架面试题
  8. 常见前端数据格式转换
  9. JS实现的展开隐藏效果
  10. 输入焦点默认指示在编辑框上
  11. vs2017创建外部css,webpack - 从生成的Microsoft SPA模板VS2017 webpack中删除特定供应商css - 堆栈内存溢出...
  12. 测试人必备实用技能:写出一份好的Bug报告
  13. leetcode讲解--513. Find Bottom Left Tree Value
  14. Docker 容器与宿主机网段冲突导致网络无法 ping 通的解决方案
  15. Get不到AI的点?一定要看《程序员的AI书:从代码开始》!
  16. python测量 检测软件_pytest首页、文档和下载 - Python 测试工具 - OSCHINA - 中文开源技术交流社区...
  17. 中易云 易云系统 电镀废水处理远程监控解决方案
  18. Android App开发实战之实现微信记账本(附源码 超详细必看)
  19. 网络劫持问题都应该如何解决?
  20. python如何安装keras和tensorflow

热门文章

  1. 拓端tecdat|R语言GARCH模型对股市sp500收益率bootstrap、滚动估计预测VaR、拟合诊断和蒙特卡罗模拟可视化
  2. 拓端tecdat|在Python和R中使用交叉验证方法提高模型性能
  3. c语言文本格式自动对齐,c语言文件读取原始数据是1、2列是按相同的一起排列命名为Yi- 爱问知识人...
  4. (5) 学习笔记_numpy
  5. 《SpringBoot实战》笔记3
  6. 【标注图像】windows下使用labelImg
  7. 计算机设备的存放,哪一种设备不能用于长期保存计算机数据
  8. 从零开始进行Adadelta的梯度下降
  9. Python从头开始的演变策略
  10. Java并发工具类之CountDownLatch