龙空技术网

API网关框架ShenYu正式毕业成为Apache顶级项目

GitHub精选 10976

前言:

今天姐妹们对“路由转发首页apache”大约比较注重,小伙伴们都想要学习一些“路由转发首页apache”的相关文章。那么小编也在网摘上收集了一些有关“路由转发首页apache””的相关知识,希望咱们能喜欢,兄弟们一起来学习一下吧!

《开源精选》是我们分享Github、Gitee等开源社区中优质项目的栏目,包括技术、学习、实用与各种有趣的内容。本期推荐的是Java Reactor 开发的响应式 API 网关——ShenYu。

Apache ShenYu 一款使用 Java Reactor 开发的响应式 API 网关。以其高性能,动态灵活的流量管控,热插拔,易部署等特性,开箱即用为用户提供整套全生命周期的 API 网关,包含 API 注册、服务代理、协议转换与 API 治理等功能。

功能特性支持各种语言(http 协议),支持 Dubbo、 Spring Cloud、 gRPC、 Motan、 Sofa、 Tars 等协议插件化设计思想,插件热插拔,易扩展灵活的流量筛选,能满足各种流量控制内置丰富的插件支持,鉴权,限流,熔断,防火墙等等流量配置动态化,性能极高支持集群部署,支持 A/B Test,蓝绿发布架构脑图模块shenyu-admin : 插件和其他信息配置的管理后台shenyu-bootstrap : 用于启动项目,用户可以参考shenyu-client : 用户可以使用 Spring MVC,Dubbo,Spring Cloud 快速访问shenyu-disruptor : 基于disruptor的封装shenyu-register-center : shenyu-client提供各种rpc接入注册中心的支持shenyu-common : 框架的通用类shenyu-dist : 构建项目shenyu-metrics : prometheus(普罗米修斯)实现的 metricsshenyu-plugin : ShenYu 支持的插件集合shenyu-spi : 定义 ShenYu spishenyu-spring-boot-starter : 支持 spring boot startershenyu-sync-data-center : 提供 ZooKeeper,HTTP,WebSocket,Nacos 的方式同步数据shenyu-examples : RPC 示例项目shenyu-web : 包括插件、请求路由和转发等的核心处理包

快速启动

运行ShenYu管理员:

> docker pull apache/shenyu-admin> docker network create shenyu> docker run -d -p 9095:9095 --net shenyu apache/shenyu-admin

运行引导程序:

> docker network create shenyu> docker pull apache/shenyu-bootstrap> docker run -d -p 9195:9195 --net shenyu apache/shenyu-bootstrap

设置路由器:

真实请求: http: //127.0.0.1 :8080/helloworld

{  "name" : "Shenyu",  "data" : "hello world"}
设置路由规则

添加localKey: 123456到header。如果需要自定义localKey,可以使用sha512工具根据明文生成key并更新shenyu.local.sha512Key属性。

curl --location --request POST '; \--header 'Content-Type: application/json' \--header 'localKey: 123456' \--data-raw '{    "pluginName": "divide",    "selectorHandler": "[{\"upstreamUrl\":\"127.0.0.1:8080\"}]",    "conditionDataList": [{        "paramType": "uri",        "operator": "match",        "paramValue": "/**"    }],    "ruleDataList": [{        "ruleHandler": "{\"loadBalance\":\"random\"}",        "conditionDataList": [{            "paramType": "uri",            "operator": "match",            "paramValue": "/**"        }]    }]}'
代理请求:
{  "name" : "Shenyu",  "data" : "hello world"}

数据缓存和数据同步

由于所有数据都已在 JVM 中使用 ConcurrentHashMap 进行缓存,因此速度非常快。

当用户在后台管理中更改配置信息时,Apache ShenYu 通过监听 ZooKeeper 节点(或 WebSocket 推送、HTTP 长轮询)来动态更新缓存。

—END—

开源协议:Apache2.0

开源地址:

标签: #路由转发首页apache