跳到主要内容

【3】Spring Cloud 2020.x 集成Open Feign

文章目录

  • 前言(微服务架构下需要解决的问题)
    • 后台服务之间如何通信
    • 同步调用
    • 异步消息调用
  • 如此多的服务,如何实现?
      • 基于客户端的服务注册与发现
    • 基于服务端的服务注册与发现
  • 服务挂了,如何解决?
  • Cloud 2020.x 集成Open Feign
      1. 创建项目
    1. 引入依赖
    1. 编写测试代码
      1. 测试
  • 参考文档

前言(微服务架构下需要解决的问题)

后台服务之间如何通信

在之前《》中,我们介绍了微服务架构下,前后端分离,客户端通过API 网关来和后台应用进行通信,网关提供统一服务入口。
 

而所有的微服务都是独立的 Java 进程跑在独立的虚拟机上,所以服务间的通信就是 IPC(Inter Process Communication),已经有很多成熟的方案。现在基本最通用的有两种方式:同步调用、异步消息调用

同步调用

  • REST(JAX-RS,Spring Boot)
  • RPC(Thrift, Dubbo)

同步调用比较简单,一致性强,但是容易出调用问题,性能体验上也会差些,特别是调用层次多的时候。一般 REST 基于 HTTP,更容易实现,更容易被接受,服务端实现技术也更灵活些,各个语言都能支持,同时能跨客户端,对客户端没有特殊的要求,只要封装了 HTTP 的 SDK 就能调用,所以相对使用的广一些。RPC 也有自己的优点,传输协议更高效,安全更可控,特别在一个公司内部,如果有统一个的开发规范和统一的服务框架时,他的开发效率优势更明显些。就看各自的技术积累实际条件,自己的选择了。

异步消息调用

  • Kafka
  • Notify
  • MessageQueue