SpringCloud之zuul微服务网关

服务网关API Gateway
可以有很多实现方法,如Nginx、Zuul,甚至是一个Node.js的服务端。它们最重要的作用是为前台提供后台服务的聚合,提供一个统一的服务出口,
解除它们之间的耦合,同时负责鉴权、认证、安全和跳转等作用。
Zuul是边缘服务,用来提供动态路由、监控、鉴权、安全、调度等功能,将权限控制等一些业务逻辑抽离出来,单独放到Zuul里,使得服务组件更简单,具有更好的可复用性。
Zuul是反向代理工具,代理了后台的所有服务端,前端请求不需要知道真正的服务端是谁,只要交给Zuul就可以了,Zuul负责路由到真正的服务商。

图例
这里写图片描述

Zuul做为网关层,自身也是一个微服务,跟其它服务Service-1,Service-2, … Service-N一样,都注册在eureka server上,可以相互发现,zuul能感知到哪些服务在线,同时通过配置路由规则(后面会给出示例),可以将请求自动转发到指定的后端微服务上,对于一些公用的预处理(比如:权限认证,token合法性校验,灰度验证时部分流量引导之类),可以放在所谓的过滤器(ZuulFilter)里处理,这样后端服务以后新增了服务,zuul层几乎不用修改。

pom

 <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-starter-netflix-zuul</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
    </dependency>

路由
这里写图片描述

这里写图片描述

这里写图片描述

zuul中自动引入了Ribbon和Hystrix

这里写图片描述

这里写图片描述
说明

register-center(服务注册)
config-server(配置服务)
service-provider(服务提供者)
service-consumer(服务消费者)
service-gateway(微服务网关)

系统级别

高可用性
均衡负载: 容错,防止雪崩.
并发控制 : 错峰流控
动态路由制定和修改

应用级别

监控统计
版本控制
认证 鉴权
数据安全: 防篡改,参数脱敏…
协议转换: 如 HTTP => RPC协议.

网关(API Gateway)技术选型

 1. zuul
 2. kong
 3. nginx+lua

网关(API Gateway)的设计要素

 1. 限流:实现微服务访问流量计算,基于流量计算分析进行限流,可以定义多种限流规则。
 2. 缓存:数据缓存。
 3. 日志:日志记录。
 4. 监控:记录请求响应数据,api耗时分析,性能监控。
 5. 鉴权:权限身份认证。
 6. 灰度:线上灰度部署,可以减小风险。
 7. 路由:路由是API网关很核心的模块功能,此模块实现根据请求,锁定目标微服务并将
  请求进行转发。

简单介绍下你的网关实施方案

 1. 开发语言:java + groovy,groovy的好处是网关服务不需要重启
    就可以动态的添加filter来实    现一些功能;
 2. 微服务基础框架:springboot;
 3. 网关基础组件:netflix zuul;
 4. 服务注册中心:consul;
 5. 权限校验:jwt;
 6. API监控:prometheus + grafana;
 7. API统一日志收集:logback + ELK;
 8. 压力测试:Jmeter;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Kwan的解忧杂货铺@新空间代码工作室

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值