什么是ip地址什么是网关_为什么要网关?

752e4c0e3cce44d8b737d373981dc46b.gif

6b4d425c5e59d26260d910ee3d4b74b4.png

为什么要网关?

微服务下一个系统被拆分为多个服务,但是像 安全认证,流量控制,日志,监控等功能是每个服务都需要的,没有网关的话,我们就需要在每个服务中单独实现,这使得我们做了很多重复的事情并且没有一个全局的视图来统一管理这些功能。

综上:一般情况下,网关一般都会提供请求转发、安全认证(身份/权限认证)、流量控制、负载均衡、容灾、日志、监控这些功能。

上面介绍了这么多功能实际上网关主要做了一件事情:请求过滤 。权限校验、流量控制这些都可以通过过滤器实现,请求转也是通过过滤器实现的。

你知道有哪些常见的网关系统?

我所了解的目前经常用到的开源 API 网关系统有:

  1. Kong

  2. Netflix zuul

5693989ab8d762dc91b06adde3db8a7f.png

可以看出不论是社区活跃度还是 Star数, Kong 都是略胜一筹。总的来说,Kong 相比于 Zuul 更加强大并且简单易用。Kong 基于 Openresty ,Zuul 基于 Java。

OpenResty(也称为 ngx_openresty)是一个全功能的 Web 应用服务器。它打包了标准的 Nginx 核心,很多的常用的第三方模块,以及它们的大多数依赖项。

通过揉和众多设计良好的 Nginx 模块,OpenResty 有效地把 Nginx 服务器转变为一个强大的 Web 应用服务器,基于它开发人员可以使用 Lua 编程语言对 Nginx 核心以及现有的各种 Nginx C 模块进行脚本编程,构建出可以处理一万以上并发请求的极端高性能的 Web 应用。——OpenResty

另外, Kong 还提供了插件机制来扩展其功能。

比如、在服务上启用 Zipkin 插件

$ curl -X POST http://kong:8001/services/{service}/plugins \
--data "name=zipkin" \
--data "config.http_endpoint=http://your.zipkin.collector:9411/api/v2/spans" \
--data "config.sample_ratio=0.001"

ps:这里没有太深入去探讨,需要深入了解的话可以自行查阅相关资料。

566b73a761e43e0320e24659d5434eda.png

计要素

系统级别
  • 高可用性

  • 均衡负载: 容错,防止雪崩.

  • 并发控制 : 错峰流控

  • 动态路由制定和修改

应用级别
  • 监控统计

  • 版本控制

  • 认证 鉴权

  • 数据安全: 防篡改,参数脱敏…

  • 协议转换: 如 HTTP => RPC协议.

其他
  • 预测流量高峰.

总结

  1. 网关(API Gateway)技术选型

  • zuul 社区活跃,基于 SrpingCloud 完整生态, 是构建微服务体系前置网关服务的最佳选型.见上图。

  • kong 基于OpenResty的 API 网关服务和网关服务管理层.

  • nginx+lua 成熟度也算可以

  • 自建网关:成本较高

网关(API Gateway)的设计要素

  • 限流:实现微服务访问流量计算,基于流量计算分析进行限流,可以定义多种限流规则。

  • 缓存:数据缓存。

  • 日志:日志记录。

  • 监控:记录请求响应数据,api耗时分析,性能监控。

  • 鉴权:权限身份认证。

  • 灰度:线上灰度部署,可以减小风险。

  • 路由:路由是API网关很核心的模块功能,此模块实现根据请求,锁定目标微服务并将请求进行转发。

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

  • 开发语言:java + groovy,groovy的好处是网关服务不需要重启就可以动态的添加filter来实现一些功能;

  • 微服务基础框架:springboot;

  • 网关基础组件:netflix zuul;

  • 服务注册中心:consul;

  • 权限校验:jwt;

  • API监控:prometheus + grafana;

  • API统一日志收集:logback + ELK;

  • 压力测试:Jmeter;

比如限流 你需要缓存一些限流的策略,主要是缓存网关功能用到的一些数据,不涉及业务数据。 路由主要是做转发。

e4817e0867c9aa53715d3a7ec578487a.png

版权声明:文章源于网络,不代表版主个人观点,如侵权或者不当之处,请联系编辑删除.

投稿信箱:714343803@qq.com(欢迎您原创投稿)

责任编辑:沈丘人(微信:ishenqiu)QQ:714343803

⊙网站: http://www.laomn.com

你若喜欢,别忘了点个【】和【哦 ff759cdd188ceb56e3bd7fcf2d740464.gif

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值