开源网关框架 soul 学习
文章平均质量分 63
coder-bo
一步一个脚印
展开
-
soul网关学习十一之RateLimitPlugin插件的调用
RateLimitPlugin 学习 1.soul-bootstrap 配置2.soul-admin 端开启插件3.令牌桶算法4.RateLimiterPlugin插件对请求处理1.soul-bootstrap 配置引用插件2.soul-admin 端开启插件因为 RateLimitPlugin 流控是使用 redis 的,所以 RateLimitPlugin的配置如下url 为redis的访问地址,如果是集群多个配置需要使用 “;” 分隔。配置限流策略依次配置 RateLimitP原创 2021-02-02 23:56:02 · 222 阅读 · 0 评论 -
soul网关学习十之apache-dubbo插件的调用
soul在处理对apache-dubbo的请求处理时会使用dubbo的泛化调用。主要流程如下;1.在注册ApacheDubboPlugin时会注入ApacheDubboProxyService和DubboMultiParameterResolveServiceImplApacheDubboProxyService用于接收网关的请求再进行dubbo的泛化调用DubboMultiParameterResolveServiceImpl用于处理请求参数,用于dubbo的泛化调用加载metadata时如果有d原创 2021-01-28 01:15:45 · 320 阅读 · 0 评论 -
soul网关学习九之springCloud插件的http调用
soul网关springCloud插件的http调用与divide插件的调用过程基本相似,具体可见 soul网关学习五之divide插件的http调用 ,只是在进行负载均衡与获取实际调用下游真实服务地址时使用springCloud的LoadBalancerClient 获取。1.请求先通过GlobalPlugin全局插件设置 soulContext2.通过AbstractSoulPlugin.execute() 获取到匹配的selector与rule3.再调用SpringCloud.doExecute原创 2021-01-27 01:19:18 · 223 阅读 · 0 评论 -
soul网关学习八soul-admin和soul-bootstrap使用http长轮询同步数据源码分析
soul-admin和soul-bootstrap使用http长轮询同步数据源码分析soul-admin 端开启配置[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AKil5lK9-1611490071456)(https://uploader.shimo.im/f/37xeHISDOB1T4xoX.png!thumbnail?fileGuid=9k3gwDh8Q6Gpc9ky)]加载配置启动时会注册一个HttpLongPollingDataChangedLi原创 2021-01-24 20:08:19 · 324 阅读 · 0 评论 -
soul网关学习七之soul-admin使用zookeeper同步数据到网关
上一篇中介绍了使用websocket同步数据,soul也可以使用zk来同步数据1.配置引入 zk 相关的jar包soul-admin中打开zk配置soul-bootstrap中打开 zk配置因为使用zk,需要单独启动一个zk。引用 soul-spring-boot-starter-sync-data-zookeeper2. 配置加载2.1 soul-admin 端admin端使用spring的事件注册机制在更改配置时发送事件,将修改的配置发送出去。接收事件后将获取的配置修改到zk的原创 2021-01-22 00:44:49 · 217 阅读 · 0 评论 -
soul网关学习六之soul-admin使用websocket同步数据到网关
soul-admin 可以使用websocket与soul-bootstrap进行通信soul-bootstrap中配置websokcet的地址1.配置加载在项目启动时会在 WebsocketSyncDataConfiguration 中注册websocketConfig websocket 配置pluginSubscriber 用于广播plugin的改动metaSubscribers 用于广播 metaData的改动authSubscribers 用于改动 auth的改动看下 Webs原创 2021-01-21 00:21:40 · 223 阅读 · 0 评论 -
soul网关学习五之divide插件的http调用
soul网关的 divide 插件处理 http 调用流程本文简单分析 divide 如何对http请求进行转发请求全部会调用 SoulWebHandler.handle()方法,然后会调用new DefaultSoulPluginChain(plugins).execute(exchange)方法。plugins 则是 soul网关的所有插件集合, exchange 包含当前请求的所有内容。这里使用责任链设计模式依次对soul插件进行遍历 public Mono<Void>原创 2021-01-20 00:31:15 · 225 阅读 · 0 评论 -
soul网关学习四之 SoulConfiguration 自动配置
核心 startersoul-spring-boot-starter-gateway依赖 soul-web ,该module中springboot 会自动配置SoulConfigurationErrorHandlerConfiguration SoulExtConfigurationSpringExtConfiguration SoulConfiguration是soul的核心配置类,会创建如下几个beanSoulWebHandler 该类中会包含soul所有的插件。@B原创 2021-01-18 01:27:02 · 473 阅读 · 0 评论 -
soul网关学习二之运行soul-examples-dubbo示例代码
启动 soul-examples-dubbo编译有三个项目soul-examples-alibaba-dubbo-service,soul-examples-apache-dubbo-service,soul-examples-dubbo-api直接编译 soul-examples-alibaba-dubbo-service 会报错,发现右侧maven控制栏中soul-examples-apache-dubbo-service,soul-examples-dubbo-api两个项目浅灰色,打开set原创 2021-01-17 12:00:00 · 184 阅读 · 0 评论 -
soul网关学习一之环境搭建及及soul-examples-http示例代码
0.soul简介soul是什么soul是一个异步的,高性能的,跨语言的,响应式的API网关。特性支持各种语言(http协议),支持 dubbo,springcloud协议。插件化设计思想,插件热插拔,易扩展。灵活的流量筛选,能满足各种流量控制。内置丰富的插件支持,鉴权,限流,熔断,防火墙等等。流量配置动态化,性能极高,网关消耗在 1~2ms。支持集群部署,支持 A/B Test, 蓝绿发布。架构图1.下载soul项目从github上clone项目地址:https://gith原创 2021-01-17 11:57:52 · 518 阅读 · 0 评论 -
soul网关学习三之运行springcloud示例代码
springCloud接入soul网关官方示例代码启动eureka因为 springcloud需要连接注册中心,soul示例中使用的是 eureka,也可以使用nacos等。本文使用的是 eureka启动 soul-example-eureka 下的 EurekaServerApplication启动 sou-admin,启动后开启 springCloud插件启动 soul-bootstrap需要使用 springCloud 插件,需要引用 springCloud 相关的jar包,官方示原创 2021-01-16 23:58:09 · 237 阅读 · 0 评论