可扩展、高性能、响应迅速的API网关——Soul(一)

本文章将成系列介绍:包含但不限于高性能微服务API网关Soul的环境搭建、源码设计

概述

Soul 是基于 WebFlux 实现的响应式的 API 网关,具有异步、高性能、跨语言等特点。

作者:我希望能够有一样东西像灵魂一样,保护您的微服务。在参考了 Kong、Spring Cloud Gateway 等优秀的网关后,站在巨人的肩膀上,Soul 由此诞生!

目前 Soul 功能列表如下:

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

架构图

可扩展、高性能、响应迅速的API网关——Soul(一)_第1张图片

模块介绍

开源项目地址:https://github.com/dromara/soul

  • soul-admin : 插件和其他信息配置的管理后台
  • soul-bootstrap : 用于启动项目,用户可以参考
  • soul-client : 用户可以使用 Spring MVC,Dubbo,Spring Cloud 快速访问
  • soul-common : 框架的通用类
  • soul-dist : 构建项目
  • soul-metrics : prometheus(普罗米修斯)实现的 metrics
  • soul-plugin : Soul 支持的插件集合
  • soul-spi : 定义 Soul spi
  • soul-spring-boot-starter : 支持 spring boot starter
  • soul-sync-data-center : 提供 ZooKeeper,HTTP,WebSocket,Nacos 的方式同步数据
  • soul-examples : RPC 示例项目
  • soul-web : 包括插件、请求路由和转发等的核心处理包

环境搭建

前置条件

  1. JDK 1.8+
  2. Maven 3.2.x
  3. Git
  4. mysql
  5. IDE(可有可无)
执行步骤
  1. 执行[email protected]:dromara/soul.git
  2. 在对应路径下执行:mvn clean package install -Dmaven.test.skip=true -Dmaven.javadoc.skip=true -Drat.skip=true -Dcheckstyle.skip=true
  3. 启动soul-admin、soul-bootstap模块,与其他spring-boot项目一样,启动其对应的启动类。当然,在这之前需要检查修改对应的配置文件(数据库连接等)、执行对应的sql(这些文件均在resources文件夹下)。

启动成功截图

可扩展、高性能、响应迅速的API网关——Soul(一)_第2张图片
可扩展、高性能、响应迅速的API网关——Soul(一)_第3张图片

后台管理截图

可扩展、高性能、响应迅速的API网关——Soul(一)_第4张图片

本系列文章也是记录了笔者学习soul的历程,欢迎各路大佬一起交流讨论

你可能感兴趣的:(开源项目,网关,分布式,高并发,微服务)