啥是api网关
api网关是一个服务器,是系统的唯一入口。所有客户端和消费端都是通过统一的网关接入微服务,在网关层处理所有的非业务功能。
Api网关作用
- 统一对外接口。减少对外暴露服务增加系统安全性,调用方就不能知道后端服务的结构。
- 统一鉴权。不需要每个服务应用对调用方接口的入参进行鉴权,只需要在网关这一层上进行鉴权,保证后端应用服务专注业务的功能。
- 服务注册与授权。可以控制调用方可以使用和不能使用的服务
- 服务限流。通过网关可以对调用方每个接口的每日调用及总调用次数进行限制
- 全链路跟踪。通过网关提供的唯一请求id,监控调用流程以及调用的响应时间
简易api网关搭建
主要简单搭建4个子项目,eureka-server是注册中心,zuul-gateway是一个简单的网关,comment-service和product-service是两个服务,如下:
下面是各个工程的简单配置:
eureka-server工程
- 启动类:
@SpringBootApplication
@EnableEurekaServer
public class EurekaServerApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaServerApplication.class, args);
}
}
- 配置:
spring.application.name=eureka-server
server.port=1111
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
eureka.client.service-url.defaultZone=http://localhost:${
server.port}/eureka/
zuul-server工程
- 启动类
@SpringCloudApplication
@EnableZuulProxy
public