(一)soul的入门使用

(一)soul的入门使用

目标

  • 下载soul源码和编译
  • 启动soul-admin
  • 接入把springboot应用,接入soul-admin
  • 响应式编程

下载soul源码和编译

  • github地址:https://github.com/dromara/soul.git,
git cloue  https://github.com/dromara/soul.git
  • 最好fork一份到自己的github账户下,在IDEA上,右键>> git >> Repository >> Remotes>> 把自己的分支添加上去,
    以后最新的master代码,自己修改的就提交到自己的github账户去,源码处加注释修改,便于后期的复盘,学习
  • 编译
    在本地的工程目录下调出dos窗口,出现如下的SUCCESS表示成功
D:\github\soul>mvn clean package install -Dmaven.test.skip=true -Dmaven.javadoc.skip=true -Drat.skip=true -Dcheckstyle.skip=true

[INFO] Installing D:\github\soul\soul-register-center\soul-register-server\soul-register-server-zookeeper\target\soul-register-server-zookeeper-2.2.1-sources.jar to D:\repository\org\dromara\soul-register-server-zookeeper\2.2.1\soul-register-server-zookeeper-2.2.1-sources.jar
[INFO] Installing D:\github\soul\soul-register-center\soul-register-server\soul-register-server-zookeeper\target\soul-register-server-zookeeper-2.2.1-sources.jar to D:\repository\org\dromara\soul-register-server-zookeeper\2.2.1\soul-register-server-zookeeper-2.2.1-sources.jar
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for soul 2.2.1:
[INFO]
[INFO] soul ............................................... SUCCESS [ 10.511 s]
[INFO] soul-common ........................................ SUCCESS [ 12.273 s]
[INFO] soul-admin ......................................... SUCCESS [ 27.272 s]
[INFO] soul-plugin ........................................ SUCCESS [  0.223 s]
[INFO] soul-plugin-api .................................... SUCCESS [  2.814 s]
[INFO] soul-sync-data-center .............................. SUCCESS [  0.286 s]
[INFO] soul-sync-data-api ................................. SUCCESS [  3.181 s]
[INFO] soul-plugin-global ................................. SUCCESS [  3.505 s]
[INFO] soul-spring-boot-starter ........................... SUCCESS [  0.306 s]
[INFO] soul-spring-boot-starter-plugin .................... SUCCESS [  0.446 s]
[INFO] soul-spring-boot-starter-plugin-global ............. SUCCESS [  6.835 s]
[INFO] soul-spi ........................................... SUCCESS [  2.628 s]
[INFO] soul-plugin-base ................................... SUCCESS [  5.202 s]
[INFO] soul-metrics ....................................... SUCCESS [  0.283 s]
[INFO] soul-metrics-spi ................................... SUCCESS [  3.326 s]
[INFO] soul-metrics-prometheus ............................ SUCCESS [  4.468 s]
[INFO] soul-metrics-facade ................................ SUCCESS [  3.197 s]
[INFO] soul-web ........................................... SUCCESS [  7.285 s]
[INFO] soul-spring-boot-starter-gateway ................... SUCCESS [  0.389 s]
[INFO] soul-plugin-divide ................................. SUCCESS [  6.045 s]
[INFO] soul-spring-boot-starter-plugin-divide ............. SUCCESS [  3.488 s]
[INFO] soul-plugin-alibaba-dubbo .......................... SUCCESS [  5.049 s]
[INFO] soul-spring-boot-starter-plugin-alibaba-dubbo ...... SUCCESS [  3.558 s]
[INFO] soul-plugin-apache-dubbo ........................... SUCCESS [  5.107 s]
[INFO] soul-spring-boot-starter-plugin-apache-dubbo ....... SUCCESS [  4.003 s]
[INFO] soul-plugin-httpclient ............................. SUCCESS [  4.695 s]
[INFO] soul-spring-boot-starter-plugin-httpclient ......... SUCCESS [  5.502 s]
[INFO] soul-plugin-springcloud ............................ SUCCESS [  4.308 s]
[INFO] soul-spring-boot-starter-plugin-springcloud ........ SUCCESS [  3.508 s]
[INFO] soul-plugin-hystrix ................................ SUCCESS [  3.619 s]
[INFO] soul-spring-boot-starter-plugin-hystrix ............ SUCCESS [  2.559 s]
[INFO] soul-plugin-monitor ................................ SUCCESS [  2.663 s]
[INFO] soul-spring-boot-starter-plugin-monitor ............ SUCCESS [  2.607 s]
[INFO] soul-plugin-ratelimiter ............................ SUCCESS [  4.467 s]
[INFO] soul-spring-boot-starter-plugin-ratelimiter ........ SUCCESS [  2.901 s]
[INFO] soul-plugin-sign ................................... SUCCESS [  3.692 s]
[INFO] soul-spring-boot-starter-plugin-sign ............... SUCCESS [  3.158 s]
[INFO] soul-plugin-waf .................................... SUCCESS [  3.521 s]
[INFO] soul-spring-boot-starter-plugin-waf ................ SUCCESS [  3.304 s]
[INFO] soul-plugin-rewrite ................................ SUCCESS [  2.925 s]
[INFO] soul-spring-boot-starter-plugin-rewrite ............ SUCCESS [  2.818 s]
[INFO] soul-plugin-sentinel ............................... SUCCESS [  3.279 s]
[INFO] soul-spring-boot-starter-plugin-sentinel ........... SUCCESS [  3.251 s]
[INFO] soul-plugin-sofa ................................... SUCCESS [ 10.609 s]
[INFO] soul-spring-boot-starter-plugin-sofa ............... SUCCESS [  2.688 s]
[INFO] soul-plugin-resilience4j ........................... SUCCESS [  4.407 s]
[INFO] soul-spring-boot-starter-plugin-resilience4j ....... SUCCESS [  2.722 s]
[INFO] soul-plugin-tars ................................... SUCCESS [  5.019 s]
[INFO] soul-spring-boot-starter-plugin-tars ............... SUCCESS [  2.677 s]
[INFO] soul-plugin-context-path ........................... SUCCESS [  2.929 s]
[INFO] soul-spring-boot-starter-plugin-context-path ....... SUCCESS [  2.589 s]
[INFO] soul-sync-data-zookeeper ........................... SUCCESS [  3.548 s]
[INFO] soul-spring-boot-starter-sync-data-center .......... SUCCESS [  0.286 s]
[INFO] soul-spring-boot-starter-sync-data-zookeeper ....... SUCCESS [  3.120 s]
[INFO] soul-sync-data-websocket ........................... SUCCESS [  3.393 s]
[INFO] soul-spring-boot-starter-sync-data-websocket ....... SUCCESS [  3.773 s]
[INFO] soul-sync-data-http ................................ SUCCESS [  3.701 s]
[INFO] soul-spring-boot-starter-sync-data-http ............ SUCCESS [  3.028 s]
[INFO] soul-sync-data-nacos ............................... SUCCESS [  3.196 s]
[INFO] soul-spring-boot-starter-sync-data-nacos ........... SUCCESS [  3.263 s]
[INFO] soul-client ........................................ SUCCESS [  0.182 s]
[INFO] soul-client-common ................................. SUCCESS [  2.531 s]
[INFO] soul-client-http ................................... SUCCESS [  0.192 s]
[INFO] soul-client-springmvc .............................. SUCCESS [  2.802 s]
[INFO] soul-spring-boot-starter-client .................... SUCCESS [  0.277 s]
[INFO] soul-spring-boot-starter-client-springmvc .......... SUCCESS [  2.597 s]
[INFO] soul-client-springcloud ............................ SUCCESS [  3.098 s]
[INFO] soul-spring-boot-starter-client-springcloud ........ SUCCESS [  2.520 s]
[INFO] soul-client-dubbo .................................. SUCCESS [  0.200 s]
[INFO] soul-client-dubbo-common ........................... SUCCESS [  2.563 s]
[INFO] soul-client-alibaba-dubbo .......................... SUCCESS [  3.065 s]
[INFO] soul-spring-boot-starter-client-alibaba-dubbo ...... SUCCESS [  2.738 s]
[INFO] soul-client-apache-dubbo ........................... SUCCESS [  3.107 s]
[INFO] soul-spring-boot-starter-client-apache-dubbo ....... SUCCESS [  3.139 s]
[INFO] soul-client-sofa ................................... SUCCESS [  3.784 s]
[INFO] soul-spring-boot-starter-client-sofa ............... SUCCESS [  3.177 s]
[INFO] soul-client-tars ................................... SUCCESS [  3.394 s]
[INFO] soul-spring-boot-starter-client-tars ............... SUCCESS [  3.070 s]
[INFO] soul-bootstrap ..................................... SUCCESS [  4.603 s]
[INFO] soul-dist .......................................... SUCCESS [ 15.974 s]
[INFO] soul-register-center ............................... SUCCESS [  0.185 s]
[INFO] soul-register-common ............................... SUCCESS [  2.186 s]
[INFO] soul-register-client ............................... SUCCESS [  0.217 s]
[INFO] soul-register-client-api ........................... SUCCESS [  2.306 s]
[INFO] soul-register-client-http .......................... SUCCESS [  2.607 s]
[INFO] soul-register-client-zookeeper ..................... SUCCESS [  6.012 s]
[INFO] soul-register-server ............................... SUCCESS [  0.504 s]
[INFO] soul-register-server-api ........................... SUCCESS [  3.027 s]
[INFO] soul-register-server-http .......................... SUCCESS [  3.370 s]
[INFO] soul-register-server-zookeeper ..................... SUCCESS [  3.890 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  05:36 min
[INFO] Finished at: 2021-01-13T23:32:40+08:00
[INFO] ------------------------------------------------------------------------

D:\github\soul>

启动soul-admin

  • 项目导入IDEA,使用jdk1.8
  • 修改soul-admin的application.yml
    url,root,password三个即可,然后启动项目SoulAdminBootstrap,Soul-Admin 会自动创建数据库,以及表结构,并初始化默认数据
spring:
  #profiles:
  #  active: h2
  thymeleaf:
    cache: true
    encoding: utf-8
    enabled: true
    prefix: classpath:/static/
    suffix: .html
  datasource:
    url: jdbc:mysql://114.67.171.251:3341/soul?useUnicode=true&characterEncoding=utf-8
    username: root
    password: 123456
    driver-class-name: com.mysql.jdbc.Driver
  • 项目导入IDEA,使用jdk1.8

进入soul-admin页面

  • 访问界面:http://localhost:9095/index.html#/home,点击看看里面有什么组件
  • sawgger界面:http://localhost:9095/swagger-ui.html

接入把springboot应用,接入soul-admin

  • 添加依赖
        <dependency>
            <groupId>org.dromara</groupId>
            <artifactId>soul-spring-boot-starter-client-springmvc</artifactId>
            <version>2.2.1<</version>
        </dependency>
  • 添加配置

注意:context-path和port要修改,不然soul-admin的divide选择器列表找不到

soul:
  # Soul 针对 SpringMVC 的配置项,对应 SoulHttpConfig 配置类
  http:
    admin-url: http://127.0.0.1:9095 # Soul Admin 地址
    context-path: /order-service # 设置在 Soul 网关的路由前缀,例如说 /order、/product 等等。
    # 后续,网关会根据该 context-path 来进行路由
    app-name: order-service # 应用名。未配置情况下,默认使用 `spring.application.name` 配置项
    port: 8098 #你本项目的启动端口
    full: false   # 设置true 代表代理你的整个服务,false表示代理你其中某几个controller
  • 代码添加注解:
    @SoulSpringMvcClient 注解一共有三个属性:
    path:映射的 HTTP 接口的请求路径。
    desc:接口的描述,便于知道其用途。
    enable:是否开启,默认为 true 开启。
    @PostMapping(value = "/gateway")
    @ApiOperation(value = "网管测试")
    @SoulSpringMvcClient(path = "/order/gateway", desc = "获得用户详细")
    public String testGateway(HttpServletRequest request){
        final long start = System.currentTimeMillis();
        //orderService.batchInsertOrser();
        String url = request.getRequestURL().toString();//获得客户端发送请求的完整url
        System.out.println("获得客户端发送请求的完整url"+url);
        return "网关测试";
    }
  • 在sooul-admin查看
    在http://localhost:9095/index.html#/plug/divide,界面可以看到如下信息
规则名称                       开启           更新时间                 操作
/sb-demo-api/order/gateway	  开启           2021-01-14 00:32:49	修改删除
/sb-demo-api/user/get	      开启           2021-01-14 00:32:49	修改删除

到这里我们算springboot接入成功了

响应式编程

  • 举例了一个例子:我们乘坐同一条线的地铁类比初始化响应式编程(Flux和Mono),每趟车类比数据元素,
    我们乘坐地铁的人不需要关心上下趟车次会发生撞车问题,如果前面一趟车发生事故,或者开慢了,前面的那趟车次会发通知告知后面的车次,从而减慢速度,
    因为每次车之间依次存在相互感应/通知,上一趟车发生事故会及时发出信息告知下一趟车,再传递到后面的地铁车次。响应式编程就是这个逻辑
  • 相关学习文章:

https://juejin.cn/post/6844903858599428110
https://segmentfault.com/a/1190000024499748

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值