微服务网关的一点思考

简介: 通常我们在决定架构/技术方案之前,都需要明确几个问题,对于网关也是如此。我们真的需要网关吗?什么时候需要?需要什么功能,有哪些迫切解决的问题?最大的侧重点是什么?功能/性能/扩展/活跃度?.... 在明确这些问题之后,面对众多的网关方案,是否足以支持我们做出最后的决定?我们对这些网关方案的理解真的足够深入了吗?在使用之后,可能遇到的问题,是否有足够的评估?是否有后续的扩展/定制化开发方案来支持未来的业务变化/数量级增长?如果不得已需要更换网关方案,那么对现有的整体架构影响有多大,是否可以快速切换而非推倒重来?

系列文章:

微服务架构:网关概念与 zuul

微服务网关:Spring Cloud Gateway —— Zuul

微服务网关:Spring Cloud Config- 配置中心

微服务网关方案:Kong & Nacos

一 摘要

   基于前面的系列文章,我们对网关概念和相关的解决方案有了一定的理解,接下来我们需要做进一步的思考。

二 几个问题

   通常我们在决定架构/技术方案之前,都需要明确几个问题,对于网关也是如此。我们真的需要网关吗?什么时候需要?需要什么功能,有哪些迫切解决的问题?最大的侧重点是什么?功能/性能/扩展/活跃度?....

   在明确这些问题之后,面对众多的网关方案,是否足以支持我们做出最后的决定?我们对这些网关方案的理解真的足够深入了吗?在使用之后,可能遇到的问题,是否有足够的评估?是否有后续的扩展/定制化开发方案来支持未来的业务变化/数量级增长?如果不得已需要更换网关方案,那么对现有的整体架构影响有多大,是否可以快速切换而非推倒重来?

三 网关本身

3.1 定位与发展趋势

   网关的作用和系统中的位置,在各网关方案中都有描述。简单来说,为微服务提供统一入口是API网关最主要的功能。除此之外,网关还可承担认证授权、访问控制、路由、负载均衡、缓存、日志、限流限额、转换、映射、过滤、熔断、注册、服务编排、API管理、监控、统计分析等非业务性的功能。

   随着业务需求和网关自身的发展,服务治理、服务网格(Service Mesh)等也变得越来越重要,尤其是对容器的支持,都已经纳入必须包括的能力之中,更不必说天然在k8s体系内的etcd了。

3.2 从设计原理到部署实践

   通过官方文档,我们能了解到网关的设计思想,核心优势,有些也会在文档中表明未来的开发方向。但了解这些还远远不够。了解架构设计,能够大概知道网关性能的理论上限,但真实的结果与实现紧密相关。尤其是适用场景、核心参数的调优方向,这些都是在实战中无法避开的问题,需要做到心中有数。

   接下来在机器上验证,搭建环境,功能测试、压力测试,做一些扩展实践,摸清使用方式,同时也看是否能暴露一些问题。测试时,尽可能按照业务当前和未来的真实使用方式也是非常重要的一点,

3.3 从应用到定制开发

   这也可以理解为从输血到造血的过程。在常规业务领域,业务量级有限的条件下,大部分技术方案只是使用就已经足够。但当业务到达一定量级,或者个性化较强的场景时,单纯的使用(包括既有的调优等)就不足以支撑了。而且,“使用”本身就是对外部的强依赖,熟练掌握的上限是达到某框架的理论上线,只有突破这个界限才有后续的无限可能。

四 后续

   接下来,将选择几种典型的网关方案做深入研究,会到源码级别,并且尝试明确典型场景下的能力上限,这些都会在后续的工作中起到重要的作用。

相关文章
|
2月前
|
Cloud Native API
微服务引擎 MSE 及云原生 API 网关 2024 年 9 月产品动态
微服务引擎 MSE 及云原生 API 网关 2024 年 9 月产品动态。
|
2月前
|
缓存 监控 API
探索微服务架构中的API网关模式
【10月更文挑战第5天】随着微服务架构的兴起,企业纷纷采用这一模式构建复杂应用。在这种架构下,应用被拆分成若干小型、独立的服务,每个服务围绕特定业务功能构建并通过HTTP协议协作。随着服务数量增加,统一管理这些服务间的交互变得至关重要。API网关作为微服务架构的关键组件,承担起路由请求、聚合数据、处理认证与授权等功能。本文通过一个在线零售平台的具体案例,探讨API网关的优势及其实现细节,展示其在简化客户端集成、提升安全性和性能方面的关键作用。
77 2
|
2月前
|
存储 缓存 监控
探索微服务架构中的API网关模式
【10月更文挑战第1天】探索微服务架构中的API网关模式
98 2
|
3月前
|
监控 负载均衡 安全
微服务(五)-服务网关zuul(一)
微服务(五)-服务网关zuul(一)
|
5天前
|
NoSQL 前端开发 测试技术
👀探秘微服务:从零开启网关 SSO 服务搭建之旅
单点登录(Single Sign-On,简称SSO)是一种认证机制,它允许用户只需一次登录就可以访问多个应用程序或系统。本文结合网关和SaToken快速搭建可用的Session管理服务。
37 8
|
14天前
|
Cloud Native API 微服务
微服务引擎 MSE 及云原生 API 网关 2024 年 11 月产品动态
微服务引擎 MSE 及云原生 API 网关 2024 年 11 月产品动态。
|
15天前
|
运维 Cloud Native 应用服务中间件
阿里云微服务引擎 MSE 及 云原生 API 网关 2024 年 11 月产品动态
阿里云微服务引擎 MSE 面向业界主流开源微服务项目, 提供注册配置中心和分布式协调(原生支持 Nacos/ZooKeeper/Eureka )、云原生网关(原生支持Higress/Nginx/Envoy,遵循Ingress标准)、微服务治理(原生支持 Spring Cloud/Dubbo/Sentinel,遵循 OpenSergo 服务治理规范)能力。API 网关 (API Gateway),提供 APl 托管服务,覆盖设计、开发、测试、发布、售卖、运维监测、安全管控、下线等 API 生命周期阶段。帮助您快速构建以 API 为核心的系统架构.满足新技术引入、系统集成、业务中台等诸多场景需要
|
20天前
|
设计模式 负载均衡 监控
探索微服务架构下的API网关设计
在微服务的大潮中,API网关如同一座桥梁,连接着服务的提供者与消费者。本文将深入探讨API网关的核心功能、设计原则及实现策略,旨在为读者揭示如何构建一个高效、可靠的API网关。通过分析API网关在微服务架构中的作用和挑战,我们将了解到,一个优秀的API网关不仅要处理服务路由、负载均衡、认证授权等基础问题,还需考虑如何提升系统的可扩展性、安全性和可维护性。文章最后将提供实用的代码示例,帮助读者更好地理解和应用API网关的设计概念。
48 8
|
1月前
|
负载均衡 监控 API
dotnet微服务之API网关Ocelot
Ocelot 是一个基于 .NET 的 API 网关,适用于微服务架构。本文介绍了如何创建一个 Web API 项目并使用 Ocelot 进行 API 请求路由、负载均衡等。通过配置 `ocelot.json` 和修改 `Program.cs`,实现对 `GoodApi` 和 `OrderApi` 两个项目的路由管理。最终,通过访问 `https://localhost:7122/good/Hello` 和 `https://localhost:7122/order/Hello` 验证配置成功。
32 1
dotnet微服务之API网关Ocelot
|
1月前
|
缓存 负载均衡 JavaScript
探索微服务架构下的API网关模式
【10月更文挑战第37天】在微服务架构的海洋中,API网关犹如一座灯塔,指引着服务的航向。它不仅是客户端请求的集散地,更是后端微服务的守门人。本文将深入探讨API网关的设计哲学、核心功能以及它在微服务生态中扮演的角色,同时通过实际代码示例,揭示如何实现一个高效、可靠的API网关。