Java Web架构篇之API网关

什么是API网关

API网关是一个服务器,是系统的唯一入口。从面向对象设计的角度看,它与外观模式类似。API网关封装了系统内部架构,为每个客户端提供一个定制的API。它可能还具有其它职责,如身份验证、监控、负载均衡、缓存、请求分片与管理、静态响应处理。
API网关方式的核心要点是,所有的客户端和消费端都通过统一的网关接入微服务,在网关层处理所有的非业务功能。通常,网关也是提供REST/HTTP的访问API。服务端通过API-GW注册和管理服务。


API网关解决的问题

  • 客户端请求多个微服务,增加客户端复杂度
  • 存在跨域,认证不统一问题
  • 与微服务耦合太强,微服务变更,客户端需要变更

如何构建API网关

API网关的作用

API网关所处的位置通常为:

客户端
统一API网关
内部微服务

使用API网关的好处:

  • 易于监控
  • 统一认证
  • 减少客户端与微服务交互,解耦接口依赖

网关大致分类

单节点API网关

Backends for frontends网关


开源网关

Netflix Zuul是一种提供动态路由、监视、弹性、安全性等功能的边缘服务。Zuul是Netflix出品的一个基于JVM路由和服务端的负载均衡器(Spring Cloud使用)。

提供能力:

  • 身份认证与安全
  • 审查与监控
  • 动态路由
  • 压力测试
  • 负载分配
  • 静态响应处理

API网关存在的问题及解决方案

问题

  • 拿单节点网关来说,这种网关相当于是处于 Web 层和 Service 之间,用来聚合服务的?注意,我们需要的是聚合服务,而以上这些开源项目都不具备这个功能,我说的聚合具体指的是开箱即用。
  • 除了单点问题,还有一个问题,网关需要承担日志,监控,安全,服务发现,版本控制等,甚至超时,熔断,重试,聚合查询等职能,这很容易造成性能问题。

解决方案

单点问题:Keepalived + LVS(LVS原理介绍) 保证一个网关挂掉时,迅速进行失效转移
性能问题:双重网关(双重网关,外部网关处理安全,认证,限流,监控,日志等,内部网关处理缓存,重试,熔断等)


参考:
谈谈微服务中的 API 网关(API Gateway)

  • 1
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
前后端分离项目的web架构通常由前端、后端和API网关三部分组成。其中前后端分离是指前端和后端的代码被拆分成两个独立的项目进行开发和维护。 前端: 前端通常使用Vue、React等框架进行开发,其代码部署在Nginx、Apache等Web服务器上,通过向API网关发送请求获取数据并呈现给用户。前端工程师不需要深入理解后端的实现,只需要了解API的请求方式和数据格式即可。 后端: 后端通常使用Java、Spring等框架进行开发,其代码部署在Tomcat、Jboss等应用服务器上,提供API服务供前端调用。后端工程师需要实现API的逻辑和数据存储等功能,并遵循RESTful API的规范。 API网关API网关是前后端分离项目的核心组件,它负责前后端的交互和应用安全。API网关通常使用Nginx、Kong等开源API Gateway,它们提供了路由、负载均衡、安全认证、流量监控等功能,可以有效地协调前后端的开发和运维工作。 下面是一个简单的前后端分离项目架构图: ``` ┌────────────────┐ │ Backend │ ├────────────────┤ │ │ │ API Server │ │ │ └────────────────┘ │ ▼ ┌────────────────┐ │ API Gateway │ ├────────────────┤ │ │ │ Load │ │ Balancer │ │ │ └────────────────┘ │ ▼ ┌────────────────┐ │ Frontend │ ├────────────────┤ │ │ │ Web Server │ │ │ └────────────────┘ ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值