服务间的通信 RestTemplate和Feign
1.RestTemplate
Spring RestTemplate 是 Spring 提供的用于访问 Rest 服务的客户端,RestTemplate 提供了多种便捷访问远程Http服务的方法,能够大大提高客户端的编写效率,所以很多客户端比如 Android或者第三方服务商都是使用 RestTemplate 请求 restful 服务。
定义一个RestTemplate的Bean,设置成LoadBalanced
@Configuration public class RestTemplateConfiguration {@Bean @LoadBalanced public RestTemplate restTemplate(){return new RestTemplate();} }
调用时注入这个bean
@Autowired private RestTemplate restTemplate;public String getProduct(string productId) {String response=restTemplate.getForObject("http://Product/getProduct/" + productId, String.class); //Product为应用名字return response;}
2.Fegin
Feign是一种负载均衡的HTTP客户端, 使用Feign调用API就像调用本地方法一样,从避免了 调用目标微服务时,需要不断的解析/封装json 数据的繁琐。
Fegin是一个声明似的web服务客户端,它使得编写web服务客户端变得更加容易。使用Fegin创建一个接口并对它进行注解。它具有可插拔的注解支持包括Feign注解与JAX-RS注解,Feign还支持可插拔的编码器与解码器,Spring Cloud 增加了对 Spring MVC的注解,Spring Web 默认使用了HttpMessageConverters, Spring Cloud 集成 Ribbon 和 Eureka 提供的负载均衡的HTTP客户端 Feign。
引入依赖
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-feign</artifactId> </dependency>
启动类上添加注解 @EnableFeignClients
@EnableFeignClients(basePackages = "cn.qin.client") //扫描包
定义接口
@FeignClient(name= "Product") //应用名称 public interface ProductClient {@GetMapping("/getProduct")public String getProduct(String productId);}
在调用的地方 注入
@Autowiredprivate ProductClient client;@GetMapping(value = "getProduct")public String getProduct(String productId) {return client.getProduct(productId);}
服务间的通信 RestTemplate和Feign相关推荐
- SpringCloud采坑之Feign服务间调用默认返回xml
2019独角兽企业重金招聘Python工程师标准>>> 日前在使用SpringCloud的时候,需要用到服务间的调用,采用Feign进行调用,但是默认返回了xml格式的数据,比较坑爹 ...
- .NET Core使用gRPC打造服务间通信基础设施
一.什么是RPC rpc(远程过程调用)是一个古老而新颖的名词,他几乎与http协议同时或更早诞生,也是互联网数据传输过程中非常重要的传输机制. 利用这种传输机制,不同进程(或服务)间像调用本地进程中 ...
- 再见 Feign!推荐一款微服务间调用神器,跟 SpringCloud 绝配!
在微服务项目中,如果我们想实现服务间调用,一般会选择Feign.之前介绍过一款HTTP客户端工具Retrofit,配合SpringBoot非常好用!其实Retrofit不仅支持普通的HTTP调用,还能 ...
- 怎么看调用的接口_SpringCloud服务间调用
本篇简介 在上一篇我们介绍了SpringCloud中的注册中心组件Eureka.Eureka的作用是做服务注册与发现的,目的是让不同的服务与服务之间都可以通过注册中心进行间接关联,并且可以通过注册中心 ...
- 多云服务间调用解决方案
有的公司,可能有业务监管要求或者成本考虑等因素,使用多个云服务商的服务.那么多云服务间的通信就是个问题,下面提出一些浅显的方案,仅供参考. 方案一:IP白名单 一句话:改动小,维护难 开通 IP 白名 ...
- Spring Cloud Alibaba 之 服务通信 REST消息通信:如何使用 OpenFeign 简化服务间通信
上一讲我们学习了 Ribbon 与 RestTemplate 两个组件.Ribbon 提供了客户端负载均衡,而 RestTemplate 则封装了 HTTP 的通讯,简化了发送请求的过程.两者相辅相成 ...
- 05 | REST消息通信:如何使用 OpenFeign 简化服务间通信
上一讲我们学习了 Ribbon 与 RestTemplate 两个组件.Ribbon 提供了客户端负载均衡,而 RestTemplate 则封装了 HTTP 的通讯,简化了发送请求的过程.两者相辅相成 ...
- Spring Cloud微服务之Feign——声明式服务间调用
目录 写在前面 服务间调用常见的方案 方案一:HttpClient 方案二:RestTemplate 方案三:Feign 框架版本问题及可能遇到的坑 搭建服务注册中心 搭建服务1--service-a ...
- Istio:一个用于微服务间通信的服务网格开源项目
http://www.infoq.com/cn/news/2017/05/istio Istio:一个用于微服务间通信的服务网格开源项目 Google.IBM和Lyft开源了微服务管理.保护和监控框架 ...
最新文章
- 使用ISE创建IP核(以加法器的IP核建立为例)
- js正则表达式语法大全_一条正则表达式闹的乌龙
- 提高ipad浏览器下大尺寸xml文件解析的性能
- Exchange日志清理
- 2017.9.27 书架 思考记录
- 一位程序员的十年工作总结,值得每位互联网人看
- 2019年最新资料!共7T!
- node socketlog
- 手把手教你学DSP 28335学习笔记
- 微博的html,微博输入html
- 腾讯云window阿帕奇服务器开通ssl证书实现https访问
- .net 5+ 知新:【2】 .Net Framework 、.Net 、 .NET Standard的概念与区别
- 开始愉快的学习编程了
- 2018-11-26-win10-UWP-Controls-by-function
- 一个简单的学籍信息管理系统,基于PHP和Bootstrap的实现
- win10 默认浏览器中找不到谷歌浏览器的解决办法
- 最新 955 互联网公司白名单来了!
- 人才公司环境与企业文化
- pancakeswap薄饼添加流动性后实现永久锁仓
- 四十余款不良APP被工信部下架处理
热门文章
- 跨境电商独立站建站优化清单
- java swing 字体设置_java如何改变Swing应用程序的默认字体/字号
- linux重启mysql的命令行_LINUX重启MYSQL的命令
- 吴恩达《机器学习》第十五章:异常检测
- Leetcode每日一题:all-nodes-distance-k-in-binary-tree(二叉树中所有距离为K的节点)
- 吴恩达机器学习总结五:单变量线性回归实战
- SpringBoot实战教程(8)| 整合mybatis-plus
- IDEA如何使用热部署方式启动项目?
- 按钮加ico图标_花里胡哨系列 —— 自定义U盘图标
- java策略模式详解_Java经典设计模式之策略模式原理与用法详解