源码
文章平均质量分 62
calu
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
soul源码阅读 soul插件之hystrix插件
hystrix插件根据官网的介绍,hystrix插件是网关用来对流量进行熔断的核心实现。查看代码可以发现,HystrixPlugin extends AbstractSoulPlugin AbstractSoulPlugin implements SoulPluginSoulPlugin 是一个接口,接口定义了4个方法execute,getOrder,named,skip。execute是执行方法,getorder是获取优先级,named获取的是插件名,skip方式是判断是否跳过该插件。Abs原创 2021-02-01 16:41:50 · 468 阅读 · 0 评论 -
soul源码阅读 soul数据同步之dubbo插件原理解析
alibabaDbubode的类图如下,继承了AubstactSoulPlugin类,实现了SoulPlugin接口SoulWebHandler->在SoulWebHandler.execute会循环查看pluginList。我发现soul的很多代码都会做循环查询,虽然说现在插件的数量并不多,循环 20次以内就可以解决,但是如果以后插件数量从10变成100,那这些大量的循环应该要优化才对。然后调用方法跳到了AbstractSoulPlugin.execute,非...原创 2021-01-28 08:00:23 · 344 阅读 · 0 评论 -
soul源码阅读 soul数据同步之divide插件
首先启动soul-admin,soul-bootstrap,以及soul-example-http。soul-example-http启动两个,用于实验负载均衡。然后修改流量权重。把端口8189的流量权重设为99,8188的权重设为1使用http访问网关进行转发可以发现基本上所有的请求都转发到8189的端口了通过修改规则并查看http请求,发现修改负载均衡请求的http地址是http://localhost:9095/rule/1349406507408502784...原创 2021-01-27 07:57:01 · 323 阅读 · 0 评论 -
soul源码阅读 soul数据同步之Admin集群
因为使用zk或者nacos天然就支持数据同步,所以我比较感兴趣的是怎么用websocket进行数据同步找了好久终于发现是这样搞的首先配置好port,这里我们配置两个,一个是9094,一个是9095。先启动一个,然后再启动另一个。如果要启动多个记得要按下图勾选,allow parallel run。然后就可以同时启动两个啦。接下来是启动bootstrap,如图配置两个websocket的地址。其实在WebsocketSyncDataService这个方法里面有这样一段代码.原创 2021-01-26 01:12:53 · 214 阅读 · 0 评论 -
soul源码阅读 soul数据同步之nacos
nacos的安装在官网明确写的很清楚,这里就不再赘述了。管理页面地址是http://localhost:8848/nacos记得登录用户名密码是nacos/nacos;启动nacos同步图1图2然后就死活搞不定,通过研究代码发现这里如果改为namespace的话就可以注册成功。我的nacos是拉取的master代码然后自己编译的,所以可以看看nacos的代码图3记得这里要配置和图1一样的namespace,这样就可以调通了。这里应该是验证的key?...原创 2021-01-24 01:08:50 · 245 阅读 · 0 评论 -
soul源码阅读 soul数据同步之http长轮询
启动项目修改两个配置文件,配置成htpp长轮询。不清楚的话可以先看我的第一篇启动的时候得注意,先得启动soul-admin,然后再启动soul-bootstrap,要不然会报服务找不到。源码分析HttpLongPollingDataChangedListener这个类看名字就在知道是http长轮询数据改变的监听器,查看该类的uml图发现如图3所示。图3在调试过程中发现每隔一分钟就会调用HttpLongPollingDataChangedListener.compareChan.原创 2021-01-23 06:53:18 · 856 阅读 · 0 评论 -
soul_admin之使用zookeeper数据同步
soul-admin修改成zookeeper的数据同步方式参考的是项目文档https://dromara.org/zh-cn/docs/soul/user-dataSync.html记得先启动zookeeper,我是使用docker启动的,端口是2181。1.在soul-bootstrap的pom.xml引入依赖<!--soul data sync start use zookeeper--> <dependency> <grou原创 2021-01-22 02:09:51 · 247 阅读 · 0 评论 -
soul源码阅读 soul数据同步之websocket同步
websocket 同步在soul-admin的application.yml文件的配置中,可以选择使用zookeeper,websocket,http长轮询三种策略做数据同步server: port: 9095 address: 0.0.0.0soul: database: dialect: mysql init_script: "META-INF/schema.sql" sync: websocket: enabled: trueso原创 2021-01-21 07:52:07 · 271 阅读 · 0 评论 -
soul_sofa
今天研究soul_sofa相关插件运行启动启动TestSofaApplication后怎么都没有办法调通接口,后来上了官网看了一下文档,发现得在boostratp模块下的pom.xml文件添加以上的依赖,然后重启一下bootstrap就可以了! <dependency> <groupId>com.alipay.sofa</groupId> <artifactId>sofa-rpc-al原创 2021-01-19 06:42:30 · 384 阅读 · 0 评论 -
soul_example_http
任务运行examples下面的 http服务 结合divde插件,发起http请求soul网关,体验http代理 其实前一篇文章已经写了通过soul转发成功了,所以探讨一下soul的接口注册流程。数据库设计soul的数据库设计图1所示,该图为官网的图图1然后我们分别查询了 selector,selector_condition,rule,rule_condition表,如图2所示。可以看得到不同的selector和其数据。规则就是 一个插件对应多个选择器,一个选择器对应多...原创 2021-01-16 04:04:26 · 317 阅读 · 0 评论 -
soul源码阅读 启动soul应用
soul的官方文档地址:https://dromara.org/zh-cn/docs/soul/soul.html素质三连,watch,start,fork之后clone到本地,进行install编译,中间遇到的很坑的小问题,就是soul-example的maven文件无法识别,其实只有选中pom.xml然后右键,选择add as maven project就可以解决了。然后mvn clean install 编译整个maven项目即可。后台管理模块在soul-admin包下,记得修改你的数据库.原创 2021-01-15 01:15:10 · 889 阅读 · 0 评论
分享