【技术实现步骤摘要】
一种基于Netty与插件机制的API网关及控制方法
本专利技术涉及信息处理
,尤其涉及一种基于Netty与插件机制的API网关及系统。
技术介绍
在现代分布式架构下,大型网站以及应用必然由多个类型的业务功能模块组成,一般应用分布式集群模式部署,为降低耦合度,必然会存在多个服务提供者,而每个类型的服务提供者的服务资源数量,也会随着整个系统体量的增大而随之增长和变更。相对于远程服务,客户终端的请求可能需要从多个服务提供者中聚合数据,而内部服务的划分、结构随着时间的变化也有所改变,而服务的改变必然引起请求处理流程的改变,这为服务的统一管理带来了难度。在互联网环境下,分布式服务集群对外暴露服务资源,需要考虑安全风险、访问控制等问题,而网关是集群的前置控制层,是集群的边缘服务,对外屏蔽内部集群的变动细节,本质上,是对终端访问信息流的控制,可以按需实现请求信息内部转换、负载均衡、统一鉴权、协议转换、监控检测等。
技术实现思路
本专利技术实施例的目的是提供一种基于Netty与插件机制的API网关,应用Ne ...
【技术保护点】
1.一种基于Netty与插件机制的API网关,其特征在于,包括请求接收模块、链路建立模块、插件模块以及业务模块;/n所述请求接收模块,用于获取用户发送的接入集群请求;/n所述链路建立模块,用于通过Netty服务层对所述接入集群请求的数据包进行解码生成请求实体和请求数据,将所述请求数据分配到特定的业务线程池,建立业务链路;/n所述插件模块,用于通过预设的插件对所述请求实体进行判断,将不符合预设条件的请求过滤,将符合预设条件的请求发送至所述业务模块;/n所述业务模块,用于根据所述符合预设条件的请求的类型,将所述符合预设条件的请求发送至对应的处理模块,以完成对所述用户请求的处理。/n
【技术特征摘要】
1.一种基于Netty与插件机制的API网关,其特征在于,包括请求接收模块、链路建立模块、插件模块以及业务模块;
所述请求接收模块,用于获取用户发送的接入集群请求;
所述链路建立模块,用于通过Netty服务层对所述接入集群请求的数据包进行解码生成请求实体和请求数据,将所述请求数据分配到特定的业务线程池,建立业务链路;
所述插件模块,用于通过预设的插件对所述请求实体进行判断,将不符合预设条件的请求过滤,将符合预设条件的请求发送至所述业务模块;
所述业务模块,用于根据所述符合预设条件的请求的类型,将所述符合预设条件的请求发送至对应的处理模块,以完成对所述用户请求的处理。
2.如权利要求1所述的基于Netty与插件机制的API网关,其特征在于,所述链路建立模块包括接收单元和第一处理单元;
所述接收单元,用于在Acceptor主线程池中随机选择一个线程作为Acceptor线程以绑定端口和接收客户端连接请求;
所述第一处理单元,用于在所述Acceptor线程接收到连接请求后,通过所述Acceptor主线程池的其他线程处理客户端的登录、握手以及安全认证,以建立业务链路。
3.如权利要求2所述的基于Netty与插件机制的API网关,其特征在于,所述插件模块包括插件管理单元、过滤单元以及插件配置更新单元;
所述插件管理单元,用于在于客户端建立业务链路后,异步获取所有插件的配置数据,并根据所述所有插件的配置数据,管理插件的启用状态;
所述过滤单元,用于将客户端的每一个请求发送至所有处于开启状态的插件进行过滤处理;
所述插件配置更新单元,用于当某个插件的配置信息发生变更后,实时更新该插件的缓存配置信息。
4.如权利要求3所述的基于Netty与插件机制的API网关,其特征在于,插件的配置数据包括插件的类型和插件的启用状态。
5.如权利要求2所述的基于Netty与插件机制的API网关,其特征在于,所述业务模块包括第二处理单元和第三处理单元;
所述第二处理单元,用于将所述客户端的请求发送至IO子线程的任一线程中,以供该线程对所述客户端的请求进行读写和编码操作;
所述第三处理单元,用于根据所述客户端的请求的请求类型,将所述客户端的请求发送至对应的WorkThreadsPools,以完成对所述客户端请求的处理。
6.一种...
【专利技术属性】
技术研发人员:刘志锋,罗伟杰,黄楚龙,卢彬,潘伟健,苏兴,
申请(专利权)人:青木数字技术股份有限公司,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。