soul环境搭建并运行

624 阅读3分钟

1、soul 简介

Soul(github.com/Dromara/sou…) 是基于 WebFlux 实现的响应式的 API 网关,具有异步、高性能、跨语言等特点。 目前 Soul 功能列表如下:

  1. 支持各种语言,无缝集成到 Dubbo、Spring Cloud、Spring Boot 中。Soul 是极其少支持 Dubbo 的 API 网关,通过 Dubbo 泛化调用 实现。
  2. 丰富的插件支持,鉴权,限流,熔断,防火墙等等。
  3. 网关多种规则动态配置,支持各种策略配置。
  4. 插件热插拔,易扩展。
  5. 支持集群部署,支持 A/B Test。

2、熟悉soul项目

  1. 从github上把soul的源码下载下来(github.com/dromara/sou… mvn clean package install -Dmaven.test.skip=true -Dmaven.javadoc.skip=true -Drat.skip=true -Dcheckstyle.skip=true

  2. 熟悉soul 的项目结构,比如

    soul-admin:插件和其他信息配置管理后台(读写数据库配置)。
    soul-bootstrap:API网关,可以从soap-admin读取和推送配置,转发请求。

    soul-client:使用Spring MVC,Dubbo,Spring Cloud的用户快速访问。
    soul-common:框架通用类
    soul-dist:构建项目
    soul-metrics:soul指标。
    soul-plugin:灵魂提供程序插件集合。
    soul-spi:soul spi定义。

    soul-spring-boot-starter:支持spring boot启动器
    soul-sync-data-center:提供者ZooKeeper,HTTP,WebSocket,Nacos同步数据
    soul-examples:RPC示例项目
    soul-web:核心处理软件包,包括插件,请求路由和转发等

  3. 熟悉soul 的文档: dromara.org/zh-cn/docs/…

3、启动soul-admin

  1. 本地启动mysql,新建soul 数据库(soul也可以自动创建数据库,包括表明和初始化数据)

  2. 修改soul-admin 的配置文件application.yml, 把里面数据库对应的url、username、password换成本地启动的mysql

  3. 启动soul-admin, 登陆 localhost:9095, username:admin, password:123456。 熟悉左侧菜单栏。

4、启动soul-bootstrap

  1. soul-bootstrap的application-local.yml配置文件配置的websocket.urls 地址为刚才启动的soul-admin的访问地址。
  2. 启动soul-bootstrap, 访问 localhost:9195

5、启动sole-examples-http

  1. 启动sole-examples-http,观察soul-admin后台插件列表的负载均衡情况。PluginList->divide。 查看对应的SelectorList 和 RulesList

6、验证sole-examples-http服务和soul-bootstrap网关能否正常工作

  1. 访问sole-examples-http 的请求,http://localhost:8188/order/findById?id=333 , 查看结果:

    { "id": "333", "name": "hello world findById" }

    Sole-examples-http 项目启动成功,请求可以正常访问

  2. 通过sole-bootstrap网关访问sole-examples-http项目请求,由于sole-bootstrap的端口号是9195,配置的soul.http.contextPath=/http, 故需要在第2步请求的地址上改动端口号和请求路径。http://localhost:9195/order/findById?id=666,运行结果:

    { "id": "666", "name": "hello world findById" }

    可以看到运行成功。sole-bootstrap网关正常工作。当然还可以启动多个sole-examples-http服务,在sole-admin后台 插件管理->divide 里面对 url match /http 的请求添加对应的http配置,并配置对应的访问权重,来验证sole-bootstrap网关的负载均衡生效情况。

7、总结

通过上面的运行,可以发现sole-admin后台可以很方便的配置sole-bootstrap网关对应的服务的负载均衡权重,比较方便快捷。而且 sole-bootstrap网关方便灵活,很容易入手使用。下篇文章我们将详细介绍sole-examples-http服务,并结合divde插件,发起http请 求soul网关,体验http代理来细致说明。