soul网关源码学习路径(一)

前期准备工作

soul学习路径

  1. 先集合文档启动项目

  2. 知道主要功能并测试

  3. 逐步深入具体某一个插件

  4. 类比了解其他插件

  5. 在阅读源码过程中针对集成的第三方技术的使用

soul整体架构图

在这里插入图片描述

克隆源码并设置上游

git clone git@github.com:dromara/soul.git

git remote add upstream git@github.com:dromara/soul.git

快速编译

  mvn clean package install -Dmaven.test.skip=true -Dmaven.javadoc.skip=true -Drat.skip=true -Dcheckstyle.skip=true 


启动admin过程遇到问题

  1. @superbuilder 不能resolve
  2. 相关maven plugin 飘红
  3. 解决方法直接对报错模重新编译
mvn clean install
  1. 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

  2. 结合管理端页面大致看下各个模块的功能

启动soul网关服务

  1. 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 & 启动演示

  1. 刷新divide 插件此时启动服务带有@SoulSpringMvcClient 注解的已经同步到了admin
    在这里插入图片描述

  2. 倒入后测试访问http-example

    http://localhost:8188/order/findById?id=1

  3. 通过网关访问http-example

    http://localhost:9195/http/order/findById?id=2

    {"id":"2","name":"hello world findById"}
    
  4. 结合官网使用文档对照examples注意使用时注意事项 配置以及注解的使用

    
    soul:
      http:
        adminUrl: http://localhost:9095
        port: 8188
        contextPath: /http
        appName: http
        full: false
    
  5. 结合官网地址介绍文档,简单熟悉下plugins ,selector,selectorConditon,rule ,rule condition之间的关系

https://dromara.org/zh-cn/docs/soul/db.html

设计详解:

  • 一个插件对应多个选择器,一个选择器对应多个规则。
  • 一个选择器对应多个匹配条件,一个规则对应多个匹配条件。
  • 每个规则在对应插件下,不同的处理表现为handle字段,handle字段就是一个json字符串。具体的可以在admin使用过程中进行查看。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值