Soul网关源码学习(1)- Soul的简单介绍和编译

前言

在开始学习Soul之前,我们先来了解一下Soul到底是什么?Soul是一个异步的,高性能的,跨语言的,响应式的API网关。Soul是站在巨人的肩膀上诞生的,它参考了Kong,Spring-Cloud-Gateway等优秀的网关,并在此基础上添加了一系列微服务领域的企业级功能:

  • 支持各种语言(http协议),支持dubbo和springcloud协议。
  • 插件化设计思想,插件热插拔,易扩展。
  • 灵活的流量筛选,能满足各种流量控制。
  • 内置丰富的插件支持,鉴权,限流,熔断,防火墙等等。
  • 流量配置动态化,性能极高,网关消耗在 1~2ms。
  • 支持集群部署,支持 A/B Test, 蓝绿发布。

所以Soul不仅只是一个网关,它还是该领域一整个成熟的解决方案。

GitHub下载编译

在了解了Soul是什么之后,那下一步自然就是去Githup下载相关的源码,然后亲自编译运行一把了。
clone源码:

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

编译源码:

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

启动网关

通过源码我们可以看到,soul下面存在很多的模块:
在这里插入图片描述
但是,由于这是系列的第一篇文章,我们先在Idea的环境下,简单地感受一下Soul的功能,后面我们再逐步从使用和源码上深入分析。
这里我们先关注两个模块:Soul-bootstrap和Soul-admin。

启动Soul-bootstrap

Soul-bootstrap是网关的服务端,这是一个SpringBoot的工程,所以启动非常简单,直接run起来即可。

021-01-14 17:35:15.445  INFO 19316 --- [           main] o.d.s.w.configuration.SoulConfiguration  : load plugin:[response] [org.dromara.soul.plugin.alibaba.dubbo.response.DubboResponsePlugin]
2021-01-14 17:35:15.744  INFO 19316 --- [           main] b.s.s.d.w.WebsocketSyncDataConfiguration : you use websocket sync soul data.......
2021-01-14 17:35:15.868  INFO 19316 --- [           main] o.d.s.p.s.d.w.WebsocketSyncDataService   : websocket connection is successful.....
2021-01-14 17:35:15.993  INFO 19316 --- [           main] o.s.b.a.e.web.EndpointLinksResolver      : Exposing 2 endpoint(s) beneath base path '/actuator'
2021-01-14 17:35:17.451  INFO 19316 --- [           main] o.s.b.web.embedded.netty.NettyWebServer  : Netty started on port(s): 9195
2021-01-14 17:35:17.454  INFO 19316 --- [           main] o.d.s.b.SoulBootstrapApplication         : Started SoulBootstrapApplication in 5.031 seconds (JVM running for 5.822)

启动Soul-admin

soul-admin是网关的控制台,在启动控制台之前我们先配置一下数据库连接,数据库是控制台用对配置进行持久化的。

#修改为你的数据库连接信息
  datasource:
    url: jdbc:mysql://localhost:3306/soul?useUnicode=true&characterEncoding=utf-8
    username: root
    password:
    driver-class-name: com.mysql.jdbc.Driver

当然我们目前只是测试,所以也可以直接使用h2就行,非常的方便。

# 把上面的JDBC配置注释掉,同时打开下面的注释即可
spring:
  profiles:
    active: h2

弄好持久化配置之后,直接Run SoulAdminBootstrap即可,然后我们使用浏览器,访问 http://127.0.0.1:9095/ 地址,进入登录页。
在这里插入图片描述
使用默认账号密码(admin/123456)登录:

在这里插入图片描述

结语

第一篇文章非常的简单,只是笼统地介绍了一下soul是什么,如何下载和编译soul源码,并且启动soul网关服务和控制台。但是,启动了之后,光看着也是不行的,所以下一篇我们将通过soul源码下的examples模块,分别测试Http和dubbo的代理转发,初步认识一下soul的网关到底是怎么使用的。

猜你喜欢

转载自blog.csdn.net/u012180773/article/details/112613117