我是靠谱客的博主 爱撒娇巨人,最近开发中收集的这篇文章主要介绍Java Web架构篇之API网关什么是API网关API网关解决的问题如何构建API网关开源网关API网关存在的问题及解决方案解决方案,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
什么是API网关
API网关是一个服务器,是系统的唯一入口。从面向对象设计的角度看,它与外观模式类似。API网关封装了系统内部架构,为每个客户端提供一个定制的API。它可能还具有其它职责,如身份验证、监控、负载均衡、缓存、请求分片与管理、静态响应处理。
API网关方式的核心要点是,所有的客户端和消费端都通过统一的网关接入微服务,在网关层处理所有的非业务功能。通常,网关也是提供REST/HTTP的访问API。服务端通过API-GW注册和管理服务。
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)
最后
以上就是爱撒娇巨人为你收集整理的Java Web架构篇之API网关什么是API网关API网关解决的问题如何构建API网关开源网关API网关存在的问题及解决方案解决方案的全部内容,希望文章能够帮你解决Java Web架构篇之API网关什么是API网关API网关解决的问题如何构建API网关开源网关API网关存在的问题及解决方案解决方案所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复