基础技术技术分享系列二:基于Netty的Tesla Gateway
Posted FinTech技术创新
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基础技术技术分享系列二:基于Netty的Tesla Gateway相关的知识,希望对你有一定的参考价值。
李宗杰,基础技术板块,2016年加入民生,进入Tesla团队,开发并维护了多个实用开发组件,目前在零售风险团队做贷款业务。
针对高并发、可管控的网关类需求,李宗杰所在的基础技术团队于今年完成了服务代理网关组件Tesla Gateway的开发,可以使用该组件基于通用的请求转发、流量控制、并发控制和路由等功能进行配置或二次开发,快速实现业务功能逻辑,减少重复劳动。
最近一年来,国内外都比较火的概念-----Service mesh,即服务网格,作用于服务与服务之间通信的专用基础设置层,负责为现代云原生应用复杂服务拓扑传递可靠的请求,说的就是我们的Tesla Gateway。使用Tesla Gateway,真正达到:
不修改一行代码,接入服务治理体系!
不修改一行代码,大大增强系统运维能力!
对于Tesla Gateway的功能,李宗杰给我们展示了如上功能图,并描述到:“绿色方块那里都可以扩展(),得益于如此良好的扩展性、模块特征,可以非常方便的对gateway中的功能进行定制化的热插拔和扩展开发,对请求进行解码、预处理、鉴权、限流等操作,通过zk进行服务的注册发现,将请求发送到有效的服务节点上,同时可以在各个环节抓取系统的日志,异步发送监控中心去,进行业务分析及报警处理”。
同时,为了实现不停机维护,Tesla Gateway还提供了人性化的操控控制台,所有功能都可以通过控制台进行控制,并实现按配置项进行修改,what?修改配置重新启动? No!No!No!完全不需要!
总之,相比于传统网关,李宗杰为我们总结了Tesla Gateway的四点优势:
一、高性能、高并发支撑
为了高性能、可扩展性,将gateway构建在一个支持异步、I/O非阻塞的平台上是必要的,为此Tesla Gateway使用了基于NIO的Netty网络框架,并使用同步异步互转、Reactor 模型大大提升吞吐量,目前单普通虚拟机单jvm极小内存访问挡板服务,性能轻松可达到5000以上TPS。
二、多协议支持,透明转换
目前Tesla Gateway内置http、http json、webservice、socket透传等协议,可以支持不同协议服务间的相互调用,以及协议之间的转换。且因建立在socket基础上,对协议的扩展也非常容易。目前团队也正在开发通用报文协议的支持,敬请期待。
三、简化客户端实现,能力可扩展
Tesla Gateway是服务调用的统一入口,所有请求均经过gateway路由到合适的应用提供端,客户端只需要同gateway交互,不必处理服务调用的复杂逻辑。可和应用实例一起部署,也可以集中部署,为应用提供解码、鉴权、限流、服务路由、链路熔断、延迟感知、负载均衡、故障隔离、优雅停机、灰度发布等基础能力之外,也可以根据业务需求非常方便的进行插件式扩展,快速实现业务功能逻辑。
四、多级控制、动态路由及服务自发现
gateway提供多级控制功能,如在流量控制方面,针对不同的控制需求,可以针对整个应用集群的并发量进行控制,或针对指定业务规则的多级控制。包括访问者ip、渠道、请求方系统、服务的单一或组合规则,从而实现多维度、可叠加的流量和优先级控制。并且提供静态路由及灵活的动态路由规则,配合动态渠道的服务发现,可很好的进行服务的路由控制。
目前Tesla Gateway已提供给分行特色业务平台、CPOS、OpenApi等项目组推广使用,另外也正在服务于我行服务治理体系大禹治理中,均使用顺畅、效果良好,更多好用好玩的功能,欢迎大家试用探索。
以上是关于基础技术技术分享系列二:基于Netty的Tesla Gateway的主要内容,如果未能解决你的问题,请参考以下文章
#私藏项目实操分享# Java深层系列「技术盲区」让我们一起探索一下Netty(Java)底层的“零拷贝Zero-Copy”技术(上)