可扩展、高性能、响应迅速的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, 蓝绿发布。

架构图

Soul架构图

模块介绍

开源项目地址: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. 执行git@github.com: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文件夹下)。
启动成功截图

soul-admin启动截图
soul-bootstrap启动截图

后台管理截图

soul后管截图

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值