ShenYu网关

版本:org.apache.shenyu:shenyu:2.4.0

请求转发

请求在插件里面的链式调用,转发到下游应用;

服务接入

客户端服务的接入(注册中心选择,数据同步的选择);

服务的注册

http注册,zk注册,会不会变动?新增删除下线;
http注册
ContextRegisterListener 容器刷新时更新?
HttpClientRegisterRepository 具体的注册动作
ShenyuClientRegisterEventPublisher 连接刷新到 disruptor 的过程
zk注册
ZookeeperClientRegisterRepository

shenyu-examples-http
Controller
WebSocket /echo
RouterFunction webflux
PaymentTypeService ??

结论:即 shenyu网关 不能动态感知代理的服务,服务下线,熔断时不能正常处理。

数据同步

admin数据同步gateway ;
如下图所示,shenyu-admin 在用户发生配置变更之后,会通过 EventPublisher 发出配置变更通知,由 EventDispatcher 处理该变更通知,
然后根据配置的同步策略(http、weboscket、zookeeper、naocs、etcd、consul),将配置发送给对应的事件处理器。
如果是 websocket 同步策略,则将变更后的数据主动推送给 shenyu-web,并且在网关层,会有对应的 WebsocketDataHandler 处理器来处理 shenyu-admin 的数据推送。
Apache ShenYu使用java-websocket 这个第三方库来进行websocket连接。 如果您想深入了解代码实现,请参考源码 WebsocketSyncDataService。

其他

disruptor

disruptor 在 client 中的作用,解决了什么问题?官网介绍解耦作用?