高并发系统实战课
徐长龙
前微博架构师、极客时间架构师
11663 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 30 讲
结束语&结课测试 (2讲)
高并发系统实战课
15
15
1.0x
00:00/00:00
登录|注册

23|网关编程:如何通过用户网关和缓存降低研发成本?

把用户登陆鉴权的功能放在网关
SDK同步依赖升级问题
SEO友好策略
反机器人模式
机器人抓取识别
非法引用预防
服务监控
服务接口缓存
平滑重启
失败重试
网关鉴权与用户中心解耦
蜘蛛嗅探识别
思考题
内网网关的发展
网关的重要性
内外网关综合应用
内网网关服务
外网网关功能
总结
网关编程

该思维导图由 AI 生成,仅供参考

你好,我是徐长龙。
如果说用户的流量就像波涛汹涌的海浪,那网关就是防御冲击的堤坝。在大型的互联网项目里,网关必不可少,是我们目前最好用的防御手段。通过网关,我们能把大量的流量分流到各个服务上,如果配合使用 Lua 脚本引擎提供的一些能力,还能大大降低系统的耦合度和性能损耗,节约我们的成本。
一般来说,网关分为外网网关和内网网关。外网网关主要负责做限流、入侵预防、请求转发等工作,常见方式是使用 Nginx + Lua 做类似的工作;而最近几年,内网网关发展出现了各种定制功能的网关,比如 ServiceMesh、SideCar 等方式,以及类似 Kong、Nginx Unit 等,它们的用途虽然有差异,但是主要功能还是做负载均衡、流量管理调度和入侵预防这些工作。
那么网关到底提供了哪些至关重要的功能支持呢?这节课我们就来分析分析。

外网网关功能

我们先从外网网关的用法说起,我会给你分享两类外网网关的实用设计,两个设计可以帮助我们预防入侵和接触业务的依赖。

蜘蛛嗅探识别

流量大一些的网站都有过网站被攻击、被蜘蛛抓取,甚至被黑客入侵的经历。有了网关,我们就能实现限速和入侵检测功能,预防一些常见的入侵。
这里我主要想和你分享一下,非法引用和机器人抓取这两类最常见、也最严重的问题要如何应对。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文介绍了网关编程在互联网项目中的重要性和实际应用。文章首先介绍了外网网关和内网网关的功能及应用。外网网关主要用于限流、入侵预防和请求转发,通过蜘蛛嗅探识别和网关鉴权与用户中心解耦等设计,实现了对非法引用和机器人抓取的预防,以及解除业务对用户中心的依赖。内网网关则提供了失败重试和平滑重启机制,确保服务的稳定性和用户体验。综合应用上,外网网关和内网网关的功能相互补充,为互联网项目提供了全面的技术支持。 此外,文章还介绍了网关的巧妙用法,包括利用网关预防入侵、解除业务依赖、辅助系统平滑升级、提升用户体验、缓解流量冲击以及实现粒度稍大一些的服务监控。同时,对于服务接口缓存和服务监控的具体实现方式进行了详细阐述,为读者提供了实用的技术参考。 最后,文章还探讨了内网网关的发展趋势,指出随着微服务、Sidecar技术的流行,内网网关也在更新换代,出现了很多优秀的开源项目。作者对内网网关的未来发展进行了展望,认为随着容器化的流行,内网网关会迎来新的变革,服务发现、服务鉴权、流量调度、数据缓存、服务高可用、服务监控这些服务最终会统一成一套标准。 总的来说,本文全面介绍了网关编程的重要功能和实际应用,对于需要了解网关技术特点的读者具有很高的参考价值。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《高并发系统实战课》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(2)

  • 最新
  • 精选
  • xmr
    k8s就是使用DNS做服务发现

    作者回复: 感谢留言讨论,确实如此所以存在个别服务重启miss情况,好在他的目标普遍是ingress加上自动重试,这样相对好一些,但是如果ingress的ip出现变动就很麻烦了。另外如果用k8s要注意dns服务多部署几个,因为短链接流量大时会出现超时,阿里云也有个工具很有意思,有变更时会自动刷新容器内dns缓存

    2023-07-04归属地:广东
  • 若水清菡
    为什么内网都在用网关或实现服务发现功能,而不用内网 DNS 服务来实现这一功能呢? DNS记录在TTL失效前无法生效更新,一般情况下服务器会配置DNS缓存,本地缓存+内网DNS增加了记录生效时间的不一致,还需要确保本地DNS换成和内网DNS服务保持一致,增加了运维难度。如果使用网关实现服务发现,新服务启动后在网关注册一下,更新后再重新注册,只要客户端定时或者实时监听网关中这个服务的注册记录就可以及时发现服务注册变更情况,简化了运维难度,提升了运维效率。

    作者回复: 你好,若水,确实DNS的多层缓存导致了刷新的不确定性,这导致了api客户端同时要做自动重试功能,以及请求失败自动切换延时重试功能

    2023-01-26归属地:北京
收起评论
显示
设置
留言
2
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部