Soul源码分析 —— 调试环境搭建

工具依赖

Maven
Git
JDK
IntelliJ IDEA

什么是Soul

Soul是网关,而网关是在分布式和集群环境中对流量进行统一管理的组件。

套用Soul官方的说法:

soul是一个异步的, 高性能的, 跨语言的, 响应式的API网关。
soul核心Features
提供了诸如限流、熔断、转发和路由监控等插件;
与 HTTP、RESTful、WebSocket、Dubbo 和 Spring Cloud 无缝对接;
支持热插拔, 用户可以定制化开发;
为了灵活的适配, 选择器和规则可以动态的适配;
支持集群部署;
支持 A/B 测试和灰度发布。

把项目跑起来先

从git拉代码
git clone git@github.com:dromara/soul.git

使用IDEA打开项目,等待maven自动拉下依赖之后执行

mvn install -Dmaven.test.skip=true -Dmaven.javadoc.skip=true -Drat.skip=true -Dcheckstyle.skip=true
本地部署soul-admin和soul-bootstrap服务

启动mysql服务在默认端口3306

mvn spring-boot:run soul-admin模块或者直接运行SoulAdminBootstrap.java, 输出如下日志

1-01-15 02:08:28.677  INFO 20508 --- [           main] o.s.b.w.embedded.tomcat.TomcatWeServer  : Tomcat started on port(s): 9095 (http) with context path ''
2021-01-15 02:08:28.690  INFO 20508 --- [           main] o.dromara.soul.admin.SoulAdminBootstrap  : Started SoulAdminBootstrap in 16.388 seconds (JVM running for 18.019)

运行soul-bootstrap的模块下面的SoulBootstrapApplication.java文件将输出如下日志

2021-01-15 02:08:51.163  INFO 20515 --- [           main] o.s.b.web.embedded.netty.NettyWebServer  : Netty started on port(s): 9195
2021-01-15 02:08:51.171  INFO 20515 --- [           main] o.d.s.b.SoulBootstrapApplication         : Started SoulBootstrapApplication in 12.309 seconds (JVM 
数据初始化

运行soul-admin会执行soul-admin/src/main/resources/META-INF/schema.sql文件,来初始化数据库和表结构, 并插入配置数据.

登陆admin界面

用定义在sql文件中的用户名和密码登陆http://localhost:9095/, 可以看到菜单的PlugInList和System Manage,点击System Manage可以看到Divide插件是缺省开启的。
在这里插入图片描述
在这里插入图片描述

插件的作用

每一个打开的插件就会增加soul网关对流量的适配。也就是说没有打开的插件时,soul网关会拒绝所有的流量。需要对http协议的支持,就有了divide插件,需要对dubbo协议的支持,就有了dubbo插件,等等。有些插件时通用的,比如说rate_limitor是做限流的,monitor是做系统性能监控的,等等。各插件的作用以后会具体研究。

soul-admin提供了什么

首先它提供了对插件的配置数据和元数据的可视化管理和缓存,并将数据持久化并高效地提供给插件服务读取。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值