目录
百战程序员,全站22050+开发课程+文档 ,学习精选优质好课快人一步!观看视频 快捷键ALT+N

JAVA全系列 教程

3762个小节阅读:7088.9k

收藏
全部开发者教程

C语言快速入门

JAVA全系列 教程

面向对象的程序设计语言

Python全系列 教程

Python3.x版本,未来主流的版本

人工智能 教程

顺势而为,AI创新未来

大厂算法 教程

算法,程序员自我提升必经之路

C++ 教程

一门通用计算机编程语言

微服务 教程

目前业界流行的框架组合

web前端全系列 教程

通向WEB技术世界的钥匙

大数据全系列 教程

站在云端操控万千数据

AIGC全能工具班

A

A A

White Night

阅读(351)
赞(0)

3 微服务API网关

image-20220720190957314

3.1 什么是网关

从一个房间到另一个房间,必须必须要经过一扇门,同样,从一个网络向另一个网络发送信息,必须经过一道“关口”,这道关口就是网关。顾名思义,网关(Gateway)就是一个网络连接到另一个网络的“关口”。

3.2 那什么是 api 网关呢?

在微服务流行起来之前,api 网关就一直存在,最主要的应用场景就是开放平台,也就是 open api; 这种场景大家接触的一定比较多,比如阿里的开放平台。微服务流行起来后,api网关就成了上层应用集成的标配组件。

3.3 为什么需要网关?

把 API 网关放到微服务的最前端,让 API 网关变成所有应用请求的入口。这样就可以简化客户端实现和微服务应用程序之间的沟通方式。

image-20220720191024974

3.4 OpenResty 为什么能做网关

过网关,可以对 api 访问的前置操作进行统一的管理,比如鉴权、限流、负载均衡、日志收集、请求分片等。所以 API 网关的核心是所有客户端对接后端服务之前,都需要统一接入网关,通过网关层将所有非业务功能进行处理。

image-20220720191052909

网关作用

  • 统一入口
  • 安全:黑名单权限身份认证
  • 限流:实现微服务访问流量计算,基于流量计算分析进行限流,可以定义多种限流规则。
  • 缓存:数据缓存
  • 日志:日志记录
  • 监控:记录请求响应数据,api耗时分析,性能监控
  • 重试:异常重试
  • 熔断: 降级

需要更加高级功能:

  1. 云原生友好,架构要变得轻巧,便于容器化;
  2. 对接 Prometheus、Zipkin、Skywalking 等统计、监控组件;
  3. 支持 gRPC 代理,以及 HTTP 到 gRPC 之间的协议转换,把用户的 HTTP 请求转为内部服务的 gPRC 请求;
  4. 承担 OpenID Relying Party 的角色,对接 Auth0、Okta 等身份认证提供商的服务,把流量安全作为头等大事来对待;
  5. 通过运行时动态执行用户函数的方式来实现 Serverless,让网关的边缘节点更加灵活;
  6. 不锁定用户,支持混合云的部署架构;
  7. 最后,网关节点要状态无关,可以随意地扩容和缩容。

3.5 遇到得问题:

  • 依赖 MySQL 等关系型数据库。
  • 插件不能热加载。
  • 代码结构复杂, 难以掌握。

现有框架

image-20220720191118885

3.6 API 网关的核心组件和概念

  • 路由
  • 插件
  • Schema
  • 存储

北京市昌平区回龙观镇南店村综合商业楼2楼226室

©2014-2023 百战卓越(北京)科技有限公司 All Rights Reserved.

京ICP备14032124号-2