利用SpringCloud实现微服务, 服务间调用有两种方式,: RestfulAPI 和 Feign
RestfulAPI的好处是简单灵活, 易于使用. 缺点是需要在服务中进行模型解析操作, 消费者无法感知生产者的接口变化.
Feign 可以将http请求封装成Facade接口, 让http调用产生类似函数调用的效果, 在一定程度上提高代码的可维护性.

一. 基本结构

每个微服务分为两个module:

  1. service: 负责接口的具体实现

  2. facade: 负责提供对外调用的接口

利用feign实现接口式http调用 - 图1
服务提供方将 facade 模块打包, 通过maven统一管理.
服务使用方将服务提供方的包添加到 pom.xml 的依赖中, 在代码中直接通过函数调用使用.

二. 代码构建和配置

—— Talk is cheap, show me the code. ——

2.1 服务提供方

增加新的module, 专门提供api用户客户端调用.

2.2 服务使用方