1、微服务网关作用和使用场景
1.1、什么是网关?
API Gateway,是系统的唯一对外的入口,介于客户端和服务器端之间的中间层,处理非业务功能 提供路由请求、鉴权、监控、缓存、限流等功能
统一接入
智能路由
AB测试、灰度测试
负载均衡、容灾处理
日志埋点(类似Nignx日志)
流量监控
限流处理
服务降级
安全防护
鉴权处理
监控
机器网络隔离
1.2、主流的网关
zuul:是Netflix开源的微服务网关,和Eureka,Ribbon,Hystrix等组件配合使用,Zuul 2.0比1.0的性能提高很多
kong: 由Mashape公司开源的,基于Nginx的API gateway
nginx+lua:是一个高性能的HTTP和反向代理服务器,lua是脚本语言,让Nginx执行Lua脚本,并且高并发、非阻塞的处理各种请求
2、SpringCloud的网关组件zuul基本使用
2.1、创建项目、加入依赖
2.2、启动类加入注解 @EnableZuulProxy
注解 @EnableZuulProxy默认集成断路器 @EnableCircuitBreaker
2.3、测试默认访问规则
默认规则:http://gateway:port/service-id/**
案例1:
http://localhost:9000/product-service/api/product/list
http://localhost:8771/api/product/list
案例2:
http://localhost:9000/order-service/api/order/feignSave?user_id=2&product_id=3
http://localhost:8781/api/order/feignSave?user_id=2&product_id=3
2.4、自定义路由映射
修改配置文件
zuul:
routes:
order-service: /apigateway/**
product-service: /apigateway/**
上面的配置是什么意思呢?
下面访