soul网关源码学习路径(一)
第一天:
1.搭建网关环境(github 一键三连 star,watch,fork)
2.编译代码,运行soul-admin soul-bootstrap
3.记录心得,写博客分享,发朋友圈啥的
组长同学整理的前期准备工作
准备:https://github.com/50133142/javanotes/blob/main/notes/%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90/%E7%9C%8B%E6%BA%90%E7%A0%81%E5%BF%83%E5%BE%97.md
soul学习路径
-
先集合文档启动项目
-
知道主要功能并测试
-
逐步深入具体某一个插件
-
类比了解其他插件
-
在阅读源码过程中针对集成的第三方技术的使用
克隆源码并设置上游
git clone [email protected]:dromara/soul.git
git remote add upstream [email protected]:dromara/soul.git
快速编译
mvn clean package install -Dmaven.test.skip=true -Dmaven.javadoc.skip=true -Drat.skip=true -Dcheckstyle.skip=true
启动admin过程遇到问题
- @superbuilder 不能resolve
- 相关maven plugin 飘红
- 解决方法直接对报错模重新编译
mvn clean install
-
9095端口成功启动
2021-01-14 14:51:21.580 INFO 28352 — [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 9095 (http) with context path ‘’
2021-01-14 14:51:21.586 INFO 28352 — [ main] o.dromara.soul.admin.SoulAdminBootstrap : Started SoulAdminBootstrap in 8.595 seconds (JVM running for 9.773)
2021-01-14 14:51:22.121 INFO 28352 — [2)-172.24.79.63] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet ‘dispatcherServlet’
2021-01-14 14:51:22.122 INFO 28352 — [2)-172.24.79.63] o.s.web.servlet.DispatcherServlet : Initializing Servlet ‘dispatcherServlet’
2021-01-14 14:51:22.141 INFO 28352 — [2)-172.24.79.63] o.s.web.servlet.DispatcherServlet : Completed initialization in 19 ms -
结合管理端页面大致看下各个模块的功能
启动soul网关服务
- 9195启动成功
2021-01-14 15:04:40.148 INFO 28642 --- [ main] b.s.s.d.w.WebsocketSyncDataConfiguration : you use websocket sync soul data.......
2021-01-14 15:04:40.278 INFO 28642 --- [ main] o.d.s.p.s.d.w.WebsocketSyncDataService : websocket connection is successful.....
2021-01-14 15:04:40.452 INFO 28642 --- [ main] o.s.b.a.e.web.EndpointLinksResolver : Exposing 2 endpoint(s) beneath base path '/actuator'
2021-01-14 15:04:41.490 INFO 28642 --- [ main] o.s.b.web.embedded.netty.NettyWebServer : Netty started on port(s): 9195
2021-01-14 15:04:41.495 INFO 28642 --- [ main] o.d.s.b.SoulBootstrapApplication : Started SoulBootstrapApplication in 5.419 seconds (JVM running for 6.388)
导入soul-examples module & 启动演示
-
刷新divide 插件此时启动服务带有@SoulSpringMvcClient 注解的已经同步到了admin
-
倒入后测试访问http-example
http://localhost:8188/order/findById?id=1
-
通过网关访问http-example
http://localhost:9195/http/order/findById?id=2
{"id":"2","name":"hello world findById"}
-
结合官网使用文档对照examples注意使用时注意事项 配置以及注解的使用
soul: http: adminUrl: http://localhost:9095 port: 8188 contextPath: /http appName: http full: false
-
结合官网地址介绍文档,简单熟悉下plugins ,selector,selectorConditon,rule ,rule condition之间的关系
https://dromara.org/zh-cn/docs/soul/db.html
设计详解:
- 一个插件对应多个选择器,一个选择器对应多个规则。
- 一个选择器对应多个匹配条件,一个规则对应多个匹配条件。
- 每个规则在对应插件下,不同的处理表现为handle字段,handle字段就是一个json字符串。具体的可以在admin使用过程中进行查看。
上一篇: angularJs监听器的实现及排坑
下一篇: textarea实现自适应高度