Soul 源码分析17 Sentinel Plugin 分析 Sentinel Plugin[reference]https://dromara.org/zh/projects/soul/sentinel-plugin/在bootstrap pom.xml 中添加 sentinel的支持 <!-- soul sentinel plugin start--> <dependency> <groupId>org.dromara</groupId>
Soul 源码分析16 Resilience4j plugin 分析 SOUL Resilience4j plugin首先启动项目 soul-admin, soul-bootstrap,以soul-examples中的soul-example-http为例,注册到soul网关上。检查soul-bootstrap的pom文件中是否引入相关依赖: <dependency> <groupId>org.dromara</groupId> <artifactId>soul-
Soul 源码分析15 Hystrix plugin 分析 Hystrix plugin 分析这是一段对Hystrix的介绍, 目前该项目已经不再开发, 只有维护Hystrix is a latency and fault tolerance library designed to isolate points of access to remote systems, services and 3rd party libraries, stop cascading failure and enable resilience in complex distrib
Soul 源码分析14 sofa plugin 分析 SOUL sofa plugin 分析soul-plugin/soul-plugin-global/src/main/java/org/dromara/soul/plugin/global/GlobalPlugin.java 中使用了builder构建soulContext@Overridepublic Mono<Void> execute(final ServerWebExchange exchange, final SoulPluginChain chain) {
Soul 源码分析13 alibaba-dubbo apache-dubbo plugin 分析 SOUL: alibaba-dubbo apache-dubbo plugin 分析dubbo插件主要讲http 请求 转化为dubbo请求, 实现泛化调用 soul-plugin/soul-plugin-apache-dubbo/src/main/java/org/dromara/soul/plugin/apache/dubbo/ApacheDubboPlugin.java@Override protected Mono<Void> doExecute(final ServerWe
Soul 源码分析12 SpringCloud plugin分析 SOUL: SpringCloud plugin & WebClient plugin接上一章, 直接看 SpringCloud Plugin的处理逻辑加在SpringCloudplugin需要在soul-bootstrap/pom.xml加入<!--soul springCloud plugin start--><dependency> <groupId>org.dromara</groupId> <arti
Soul 源码分析11 divide plugin分析 SOUL: divide plugin通过上一节的分析, 我们知道了请求被plugin chain处理是通过 SoulWebHandler 中的静态类 DefaultSoulPluginChain 来处理的@Override public Mono<Void> execute(final ServerWebExchange exchange) { return Mono.defer(() -> { if (this
Soul 源码分析10 一个请求是如何被SOUL处理的 一个请求是如何被SOUL处理的至此, soul的基本使用方式已经清楚了, 接下来我们带着标题的疑问来看 一个请求是如何被SOUL处理的基于以前的结果,我们已知 会被 SoulWebHandler处理, SoulWebHandler实现了WebHandler, 我们来看下WebHandler的作用,注释写的很清楚, WebHandler用来处理request的, 我们知道 handler()方法处理的ServerWebExchange 是WebFlux 中对request, response的封装,
Soul 源码分析09 SOUL admin/bootstrap cluster SOUL admin/bootstrap cluster模拟soul 网关集群部署, 启动2个admin, 2个bootstrap如上开启配置可以启动多个实例,也可以打包后通过java -jar启动在soul-bootstrap的application.yml配置刚才启动的soul-admin的 urlsoul: sync: websocket : urls: ws://localhost:9095/websocket,ws://localhost
Soul 源码分析08 SOUL Admin & 网关 nacos 数据同步 SOUL Admin & 网关 nacos 数据同步首先准备好nacos server, 这里不详细叙述sh startup.sh -m standalone.......省略nacos is starting with standalonenacos is starting,you can check the /Users/wincher/Documents/learning/service/nacos/logs/start.outhttp://127.0.0.1:8848/naco
Soul 源码分析07 SOUL Admin & 网关 Http长轮询 数据同步 SOUL Admin & 网关 Http长轮询 数据同步书接上回, 使用Http长轮询, 数据同步,soul-admin/src/main/resources/application.ymlsoul: sync:# websocket:# enabled: true# zookeeper:# url: localhost:2181# sessionTimeout: 5000# connectionTimeout:
Soul 源码分析06 SOUL Admin & 网关 Zookeeper 数据同步 SOUL Admin & 网关 Zookeeper 数据同步目前SOUL提供了这几种数据同步方式, 上一节我们使用了WebSocket, 这一节使用Zookeerper来做数据同步, 代码实现结构与WebSocket如出一辙, 只不过具体的同步过程使用了Zookeeper自身的特性启动 zk,我用的docker docker run -p 2181:2181 --restart unless-stopped --name zk -d zookeeper保证 soul-bootstrap po
Soul 源码分析05 SOUL Admin & 网关 Websocket 数据同步 SOUL Admin & 网关 Websocket 数据同步启动后 admin 和 bootstrap 后, admin log中可以看到2021-01-21 00:09:46.004 INFO 11893 --- [0.0-9095-exec-8] o.d.s.a.l.websocket.WebsocketCollector : websocket on open successful....根据log找到 soul-admin/src/main/java/org/dromara/s
Soul 源码分析04 SOUL Spring Cloud plugin usage title: soul_gateway_src_code_learning_05date: 2021-01-20 00:03:36tags: SOULSOUL Spring Cloud demo有了上一节的经验打开bootstrap pom中的 springcloud 和 eureka 依赖<!--soul springCloud plugin start--><dependency> <groupId>org.dromara</groupId.
Soul 源码分析03 SOUL sofa plugin usage SOUL sofa demo和上一节的dubbo一样, 使用sofa插件, 访问 http://127.0.0.1:9095/#/system/plugin 可以看到 sofa 插件默认是点击editor开启sofa plugin启动 zk,我用的docker docker run -p 2181:2181 --restart unless-stopped --name zk -d zookeeperIDEA中运行 soul-examples/soul-examples-sofa/src/main/
Soul 源码分析02 SOUL Dubbo plugin SOUL dubbo demo使用dubbo插件, 访问 http://127.0.0.1:9095/#/system/plugin 可以看到 dubbo 插件默认是点击editor开启dubbo plugin启动 zk,我用的docker docker run -p 2181:2181 --restart unless-stopped --name zk -d zookeeperIDEA中运行 soul-examples/soul-examples-dubbo/soul-examples-a
Soul 源码分析01 SOUL divide plugin auto register SOUL divide plugin auto register上篇我们使用divide插件配置selector和rule成功将访问网关的请求转发到了baidu.com今天对divide plugin进一步的使用我们启动SOUL项目准备好的示例 soul-examples/soul-examples-http/src/main/java/org/dromara/soul/examples/http/SoulTestHttpApplication.java稍微留意一下log, 字面意思就是将接口注册到
Soul 源码分析00 get started Soul 源码分析00 get started这是一个异步的,高性能的,跨语言的,响应式的API网关。我希望能够有一样东西像灵魂一样,保护您的微服务。参考了Kong,Spring-Cloud-Gateway等优秀的网关后,站在巨人的肩膀上,Soul由此诞生!Features支持各种语言(http协议),支持 dubbo,springcloud协议。插件化设计思想,插件热插拔,易扩展。灵活的流量筛选,能满足各种流量控制。内置丰富的插件支持,鉴权,限流,熔断,防火墙等等。流量配置动态化,性能极高