阿里面试官:写个微服务网关?(上)

本文涉及的产品
云原生网关 MSE Higress,422元/月
MSE Nacos/ZooKeeper 企业版试用,1600元额度,限量50份
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 阿里面试官:写个微服务网关?

架构

  • 基于SpringBoot的Web Server
  • 网关属于高并发模块
    逻辑简单,业务逻辑剥离到业务层
  • 设计目标-高性能
    缓存设计
    异步线程设计
  • image.png

网关时序图

image.png

跨域

从一个源(如baidu.com) 加载的文档或者脚本默认不能访问另一个源(如tencent.com)的资源。

CORS (Cross-Origin Resources Sharing)解决跨域问题

对HTTP请求头进行豁免

  • 建立豁免清单
  • Access-Control- Allow-Origin
    如需允许所有资源都可以访问您的资源,您可以如此设置:
Access-Control-Allow-Origin: *

如需允许https://developer.mozilla.org访问您的资源,您可以设置:

Access-Control-Allow-Origin: https://developer.mozilla.org

CORS和缓存

如果服务器未使用“*”,而是指定了一个域,那么为了向客户端表明服务器的返回会根据Origin请求头而有所不同,必须在Vary响应头中包含Origin。

Access-Control-Allow-Origin: https://developer.mozilla.org
Vary: Origin

Access-Control- Allow- Credentials

  • 是否允许cookie跨域

Access-Control- Allow- Methods

  • 允许提交请求的方法

Session 设计(鉴权)

读写请求使用的上下文对象,称之会话(Session).

高可用设计

  • 无状态化

单机下不存在Session共享,因此内存存储能保证极大的性能

  • 无法应对高并发、高可用

分布式方案

Session绑定

将 uid hash 到固定的节点,可是如何保证高可用呢?使用主从,但这简单问题复杂化,不推荐。

image.png

Session复制

Tomcat 有组件支持该机制

image.png

优点:

每台机器存储全量的 session,做到了高可用。

缺点:

集群同步复杂适用于小规模网关,

数据存储不合理,内存开销大

目录
相关文章
|
2月前
|
Cloud Native API
微服务引擎 MSE 及云原生 API 网关 2025 年 6 月产品动态
微服务引擎 MSE 及云原生 API 网关 2025 年 6 月产品动态
|
2月前
|
运维 Cloud Native 应用服务中间件
阿里云微服务引擎 MSE 及 API 网关 2025 年 6 月产品动态
阿里云微服务引擎 MSE 面向业界主流开源微服务项目, 提供注册配置中心和分布式协调(原生支持 Nacos/ZooKeeper/Eureka )、云原生网关(原生支持Higress/Nginx/Envoy,遵循Ingress标准)、微服务治理(原生支持 Spring Cloud/Dubbo/Sentinel,遵循 OpenSergo 服务治理规范)能力。API 网关 (API Gateway),提供 APl 托管服务,覆盖设计、开发、测试、发布、售卖、运维监测、安全管控、下线等 API 生命周期阶段。帮助您快速构建以 API 为核心的系统架构.满足新技术引入、系统集成、业务中台等诸多场景需要。
|
4月前
|
存储 关系型数据库 MySQL
阿里面试:MySQL 一个表最多 加几个索引? 6个?64个?还是多少?
阿里面试:MySQL 一个表最多 加几个索引? 6个?64个?还是多少?
阿里面试:MySQL 一个表最多 加几个索引? 6个?64个?还是多少?
|
3月前
|
监控 Java 数据安全/隐私保护
阿里面试:SpringBoot启动时, 如何执行扩展代码?你们项目 SpringBoot 进行过 哪些 扩展?
阿里面试:SpringBoot启动时, 如何执行扩展代码?你们项目 SpringBoot 进行过 哪些 扩展?
|
2月前
|
负载均衡 架构师 Cloud Native
阿里面试:服务与发现 ,该选 CP 还是 AP?为什么?
阿里面试:服务与发现 ,该选 CP 还是 AP?为什么?
阿里面试:服务与发现 ,该选  CP 还是 AP?为什么?
|
2月前
|
API
阿里云微服务引擎 MSE 及 API 网关 2025 年 7 月产品动态
阿里云微服务引擎 MSE 及 API 网关 2025 年 7 月产品动态
|
2月前
|
运维 Cloud Native 应用服务中间件
阿里云微服务引擎 MSE 及 API 网关 2025 年 7 月产品动态
阿里云微服务引擎 MSE 面向业界主流开源微服务项目, 提供注册配置中心和分布式协调(原生支持 Nacos/ZooKeeper/Eureka )、云原生网关(原生支持Higress/Nginx/Envoy,遵循Ingress标准)、微服务治理(原生支持 Spring Cloud/Dubbo/Sentinel,遵循 OpenSergo 服务治理规范)能力。API 网关 (API Gateway),提供 APl 托管服务,覆盖设计、开发、测试、发布、售卖、运维监测、安全管控、下线等 API 生命周期阶段。帮助您快速构建以 API 为核心的系统架构.满足新技术引入、系统集成、业务中台等诸多场景需要。
|
4月前
|
API
微服务引擎 MSE 及 API 网关 2025 年 4 月产品动态
微服务引擎 MSE 及 API 网关 2025 年 4 月产品动态
348 44