微服务不能没有网关,就如同 Java 程序员不能没有IDEA、Eclipse。为什么呢?
之所以网关对微服务这么重要,主要有以下几点原因:
1. 解决 API 放哪里的问题
要知道,采用微服务架构的系统本身是由很多的独立服务单元组合起来的。而客户端要调用系统,则必须通过系统提供的各种对外开放的功能 API 来实现。
问题来了,这些 API 要放在哪里呢?直接放在组成系统的服务单元上行不行?
比如,在一套电商系统上,关于订单相关的 API ,放在组成订单服务的服务单元上;风控服务的 API ,放在组成风控服务的服务单元上。
好,咱们假设有这么一个场景,有一位用户想在这套电商系统上查看下商品详情。那么,这个查看商品详情的操作,就可能:
- 调用商品服务的 API 获取商品描述
- 调用评价服务的 API 获取相关评价
- 调用商家服务的 API 获取商家信息
- 调用礼券服务的 API 获取相关礼券
- ……
可以看到,就这么一个商品查看操作,就可能会调用许多服务的 API。
那这些 API 如果全部分散到各个服务单元上,供客户端