一种新型微服务网关架构设计_第1页
一种新型微服务网关架构设计_第2页
一种新型微服务网关架构设计_第3页
一种新型微服务网关架构设计_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、一种新型微服务网关架构设计刘晋强摘要微服务架构是当前主流系统平台的基础架构,对企业软件系统集成、开发、维护效率可 大幅提升,随着spring cloud等架构的兴起,基于微服务网关的服务管理模式逐渐成为主 流,微服务网关也逐渐成为微服务系统架构的核心。本文简单介绍了主流微服务网关产品原 理,分析阐述了应用现状和技术特点,开发了简单的原型系统,提出了一种新型微服务网关架 构方案。关键词微服务架构微服务网关网络代理引言微服务网关是微服务系统架构的重要组成,微服务系统架构将业务实现模块化、解耦为 多个相互独立的微服务应用,不同的微服务应用采用不同的网络接口,而外部客户端请求事 务,往往需要调用多个微

2、服务接口才能完成。微服务网关是介于客户端和服务器端之间的中 间层,外部请求经由微服务网关转发。进一步的,负责安全、性能、监控,提高业务灵活性 同时确保安全性,并且简化了大型系统平台应用开发。本文介绍了主流微服务网关产品原理, 分析了现状和技术特点,提出了一种新型微服务网关架构方案。微服务网关简介当前微服务网关产品主要有Nginx、ZUUL、Spring Cloud、Linkerd等。Nginx由内核和模块组成,内核包括基础插件和默认配置,可以直接通过简单配置直接 用作代理服务器,设计非常微小和简洁,处理过程清晰、简单,通过配置文件与客户端请求 进行URL匹配,进而启动不同的模块去完成相应的处理

3、。Nginx采用异步、非阻塞的方式 来处理请求,处理过程不需要阻塞等待,可以同时处理百万级并发的客户端请求Nginx凭 借基础功能简洁、稳定、高性能、高可靠性,在近年来快速增长很快,同时为了满足丰富功 能和满足已知需求,衍生了 njs、lua、openresty、apisix等多种解决方案和技术。Zuul是一款主流的开源微服务网关组件,Zuul的核心是一系列的过滤器。主要实现的 功能包括身份认证与安全、审查与监控、动态路由、压力测试、负载分配、静态响应处理、 多域弹性等。采用多线程阻塞的方式,这种方式在内部延迟严重、并发请求过多情况下会引 起处理性能下降,Zuul2的采用异步、非阻塞框架,通过

4、事件和回调来处理的,解决了上述 问题。Spring Cloud微服务网关是面向Spring Cloud微服务框架,初期采用zuul扩展,通 过组件的集成,提供了完备的通用基础功能。主要针对快速分布式系统开发设计,具有强大 的应用发现和管理能力,Spring Cloud是一种面向云环境的软件架构。Linkerd设计目标在于简化微服务架构下的运维,处理时间敏感的服务到服务的通信, 能够提供轻量级高性能网络代理,提供微服务框架支撑。提供了负载均衡、熔断机器、服务 发现、动态请求路由、重试和离线、TLS、HTTP网关集成、透明代理、gRPC、分布式跟踪、 运维等诸多功能。新型微服务网关架构基本原理为将

5、基于会话的请求/响应服务转变为订阅/发布的消息处理,除了执行实际处 理的扩展应用,系统内部统一采用订阅/发布的消息模式交互,适合于大批量并发应用场景, 采用统一的通信模式和协议,减免了异构网络及通信方式带来的兼容性问题和重复开发。其 核心为MessageBus,也即消息总线,一般采用成熟的消息中间件产品,应用集成框架组织和 关联功能应用,并能通过注入插件到MessageBus的方式监控和管理消息。服务应用,既可 以集成到内部本地调用,也可以扩展到外部系统。授投认征i(寄事轻量设计、弹性扩展主流微服务网关软件基于成熟软件发展而来,在初始阶段设计精巧、功能单一、性能稳 定,采用插件技术提供了优越的

6、扩展能力,提供更加全面的应用支撑,但随着功能的越来 越多,为了更快适应市场变化满足市场需求,大量引用第三方软件,软件变得也来越复杂。 并且通讯协议、通信数据处理方式等底层技术的更新升级开发和测试工作量也很大;因此, 对于主流微服务网关产品能够长期稳定发展,功能框架的确定性和功能实现的灵活性是很重 要的,而且由于大部分应用项目一旦运营后,往往存在新旧版本过渡、共存等情况,微服务 网关技术的发展,有必要、也有能力对服务的动态切换和多版本并存提供支持。提升性能负载均衡技术、服务集群部署等对互联网软件平台并发服务提供近乎完美的支撑,NIO 技术应用是的微服务通信处理能力也大大增强,机器性能提升技术,如

7、硬件性能提升、虚拟 机、内存优化等技术也越来越强大。然而软件逻辑性能的提升对现在及未来仍然很有意义; 减免重复处理、一致的接口协议、优化的功能布局,可大幅降低重复的数据处理,对提高性 能也十分重要。基于业务场景的支持环境随着功能需求的增长,微服务网关需要整合的通用功能越来越多,而对于不同的业务场 景,简单的应用领域只需要少量的基础功能,对于复杂的应用领域,现有的微服务网关产品 又远远不能满足需求,插件化的设计有极大的灵活性,同时也造成软件逻辑复杂,配置管理 繁琐。采用针对应用领域的定制化配置,能大幅降低使用难度,同时也能使得软件系统轻量、 稳定。Nginx派系实际上仍在遵循这一原则,基础的、可

8、靠的、高性能的基础功能,配置简 单、使用方便。同时也形成了多种多样的功能集成产品,女Dopenresty、apisix等,然而这 些扩展方案,均是在nginx内部运行,功能扩展的越来越多对运行的可靠性和性能有负面影 响,并且有些插件的变更,需要停机维护。基本的思路是,确保底层支持轻量、稳定、可靠的情况下,允许针对行业领域应用,定 制不同的应用集成框架,支持插件管理、服务接口、管理控制台等,对典型应用场景业务提 供全面的定制化支持。基于消息/事件的数据处理模式该微服务网关将请求/相应模式的数据会话,转化为事件/消息模式,异步处理数据,不 再使用TCP/UDP/HTTP/HTTPS等基础通信方式,

9、而是直接使用更加可靠、稳定、高效的消息 中间件,如Redis、memcache、activeMQ等所提供的方式。这样任何数据处理单元或集群, 均无需直接响应消息,而是在处理完消息后,将结果包装为新的消息,北向数据处理完全转 变为事件/消息模式,支持序列化处理大批量并发请求。5iibsCTit卜 Publish对于静态资源的请求集群服务软件剥离常规、通用功接口方式采用支持高并发、高性能的QUIC技术方案能,只需进行业务数据处理,从而提高处理性能并且能提高开发效率。静态资源的缓存处理 在客户端仍然遵循HTTP1.1/HTTP2/HTTP3规定,而在微服务网关处理上采用服务端主动通知 的模式,也即资源变化后,服务端发送消息到微服务网关,微服务网关在空闲时自动同步资 源,这样大幅降低静态资源的重复传输,并且在静态资源更新后,能够及时更新。这种策略 也可在HTTP1.1/HTTP2.0静态资源传输上,避免静态资源重复传输,并且保证客户端静态资 源最新,然而实现起来相对复杂。总结微服务网关是微服务系统平台架构的重要组成,将业务实现模块化、解耦为多个相互独 立的微服务应用,该设计方案中,将请求/响应模式的会话通信,转化为事件/消息模式,直 接采用可靠、稳定、

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论