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相关推荐

  1. SpringCloud采坑之Feign服务间调用默认返回xml

    2019独角兽企业重金招聘Python工程师标准>>> 日前在使用SpringCloud的时候,需要用到服务间的调用,采用Feign进行调用,但是默认返回了xml格式的数据,比较坑爹 ...

  2. .NET Core使用gRPC打造服务间通信基础设施

    一.什么是RPC rpc(远程过程调用)是一个古老而新颖的名词,他几乎与http协议同时或更早诞生,也是互联网数据传输过程中非常重要的传输机制. 利用这种传输机制,不同进程(或服务)间像调用本地进程中 ...

  3. 再见 Feign!推荐一款微服务间调用神器,跟 SpringCloud 绝配!

    在微服务项目中,如果我们想实现服务间调用,一般会选择Feign.之前介绍过一款HTTP客户端工具Retrofit,配合SpringBoot非常好用!其实Retrofit不仅支持普通的HTTP调用,还能 ...

  4. 怎么看调用的接口_SpringCloud服务间调用

    本篇简介 在上一篇我们介绍了SpringCloud中的注册中心组件Eureka.Eureka的作用是做服务注册与发现的,目的是让不同的服务与服务之间都可以通过注册中心进行间接关联,并且可以通过注册中心 ...

  5. 多云服务间调用解决方案

    有的公司,可能有业务监管要求或者成本考虑等因素,使用多个云服务商的服务.那么多云服务间的通信就是个问题,下面提出一些浅显的方案,仅供参考. 方案一:IP白名单 一句话:改动小,维护难 开通 IP 白名 ...

  6. Spring Cloud Alibaba 之 服务通信 REST消息通信:如何使用 OpenFeign 简化服务间通信

    上一讲我们学习了 Ribbon 与 RestTemplate 两个组件.Ribbon 提供了客户端负载均衡,而 RestTemplate 则封装了 HTTP 的通讯,简化了发送请求的过程.两者相辅相成 ...

  7. 05 | REST消息通信:如何使用 OpenFeign 简化服务间通信

    上一讲我们学习了 Ribbon 与 RestTemplate 两个组件.Ribbon 提供了客户端负载均衡,而 RestTemplate 则封装了 HTTP 的通讯,简化了发送请求的过程.两者相辅相成 ...

  8. Spring Cloud微服务之Feign——声明式服务间调用

    目录 写在前面 服务间调用常见的方案 方案一:HttpClient 方案二:RestTemplate 方案三:Feign 框架版本问题及可能遇到的坑 搭建服务注册中心 搭建服务1--service-a ...

  9. Istio:一个用于微服务间通信的服务网格开源项目

    http://www.infoq.com/cn/news/2017/05/istio Istio:一个用于微服务间通信的服务网格开源项目 Google.IBM和Lyft开源了微服务管理.保护和监控框架 ...

最新文章

  1. 使用ISE创建IP核(以加法器的IP核建立为例)
  2. js正则表达式语法大全_一条正则表达式闹的乌龙
  3. 提高ipad浏览器下大尺寸xml文件解析的性能
  4. Exchange日志清理
  5. 2017.9.27 书架 思考记录
  6. 一位程序员的十年工作总结,值得每位互联网人看
  7. 2019年最新资料!共7T!
  8. node socketlog
  9. 手把手教你学DSP 28335学习笔记
  10. 微博的html,微博输入html
  11. 腾讯云window阿帕奇服务器开通ssl证书实现https访问
  12. .net 5+ 知新:【2】 .Net Framework 、.Net 、 .NET Standard的概念与区别
  13. 开始愉快的学习编程了
  14. 2018-11-26-win10-UWP-Controls-by-function
  15. 一个简单的学籍信息管理系统,基于PHP和Bootstrap的实现
  16. win10 默认浏览器中找不到谷歌浏览器的解决办法
  17. 最新 955 互联网公司白名单来了!
  18. 人才公司环境与企业文化
  19. pancakeswap薄饼添加流动性后实现永久锁仓
  20. 四十余款不良APP被工信部下架处理

热门文章

  1. 跨境电商独立站建站优化清单
  2. java swing 字体设置_java如何改变Swing应用程序的默认字体/字号
  3. linux重启mysql的命令行_LINUX重启MYSQL的命令
  4. 吴恩达《机器学习》第十五章:异常检测
  5. Leetcode每日一题:all-nodes-distance-k-in-binary-tree(二叉树中所有距离为K的节点)
  6. 吴恩达机器学习总结五:单变量线性回归实战
  7. SpringBoot实战教程(8)| 整合mybatis-plus
  8. IDEA如何使用热部署方式启动项目?
  9. 按钮加ico图标_花里胡哨系列 —— 自定义U盘图标
  10. java策略模式详解_Java经典设计模式之策略模式原理与用法详解