我用 Rocket-API 实现了开放平台
开放平台功能主要包括,鉴权,熔断,限流,缓存,请求改写,返回值改写,网关等功能,相关概要功能图如下:
而这一切都建立在接口管理上,在分布式集群环境中,在不重启服务的情况下如何实现接口的动态管理发布,一直是让人比较头痛的一个问题。
而这个问题,在 Rocket-API 中得到了解决,她能够在线动态的接口管理,而不需要重启服务,通过 Springboot RequestMappingHandlerMapping 来实现。提供的发布功能,能够触发在分布式环境同一项目所有实例的 mapping 的重载,和 SpringBoot 的配置动态刷新 Bus 消息总线逻辑类似,同样不需要重启整个集群
既然接口管理 Rocket-API 帮我搞定了,那我就只需要关注这个接口中的逻辑就可以了,比如上面说到的 『鉴权,限流,熔断,缓存,请求改写,网关』等
在 Rocket-API 中的实现
复制代码
直接写简化的代码会比传统的页面配置型的开放平台更灵活
咋一看是否有觉得代理某个接口比较复杂,其实简化后可以这么写,单纯的代理:
复制代码
route
这个函数是通过 Rocket-API 提供的com.github.alenfive.rocketapi.function.IFunction
来实现的
https://gitee.com/alenfive/rocket-api
版权声明: 本文为 InfoQ 作者【棒锤🐮】的原创文章。
原文链接:【http://xie.infoq.cn/article/851ee8f75bc7cc159e1eda311】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论