入门运行Soul

简介: Soul 是基于 WebFlux 构建的响应式 API 网关,支持高性能、异步处理与多语言集成,兼容 Dubbo、Spring Cloud 等主流框架。具备插件化架构,支持热插拔、动态流量控制、A/B 测试及蓝绿发布,内置鉴权、限流、熔断等丰富插件,适用于高并发微服务场景。

Git地址:https://github.com/Dromara/soul

运行环境:

  • MySQL 5.*
  • JDK 1.8+
  • MAVEN 3.2.*
  • Git

更多原理性知识可以参考官网API:https://dromara.org/zh-cn/docs/soul/induction.html

前言

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

目前 Soul 功能列表如下:

  • 支持各种语言,无缝集成到 Dubbo、Spring Cloud、Spring Boot 中。

Soul 是极其少支持 Dubbo 的 API 网关,通过 Dubbo 泛化调用 实现。

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

整体架构如下图所示:

1.下载导入

执行:git clone https://github.com/Dromara/soul,下载到本地,导入到Idea中

2.启动soul-admin

更改soul-admin中配置文件,数据库模块

需要现在本地创建一个soul的数据库,如果不想使用这个名字也可以更改默认url配置项中的名称


运行之后,访问 http://127.0.0.1:9095/ 地址,进入登录页,默认内置管理员账号「admin/123456

以上完成admin相关模块启动


如果你的mysql数据库版本比较低,替换:META-INFO下面的schema.sql为下面

📎schema.sql

3.启动网关boostrap

理论上来说,admin启动成功后,直接启动boostrap模块就可以,不会报错,除非想更改配置文件中的数据同步方式,2.0之后的Soul支持WebSocket,Http长轮询,Zookeeper三种方式,默认使用 http 长轮询同步策略,可以做到秒级数据同步,如果刚好有其它类型服务,可以切换,官方建议使用WebSocket。

相关文章
|
4月前
|
微服务 监控
认识Seata
Seata是阿里巴巴开源的分布式事务解决方案,通过事务协调者(TC)、事务管理器(TM)和资源管理器(RM)协同工作,实现全局事务一致性。支持XA、AT、TCC、SAGA四种模式,其中AT为默认模式,具备最终一致性与低侵入性,广泛应用于微服务架构中。
认识Seata
|
4月前
|
缓存 弹性计算 分布式计算
阿里云服务器租用价格参考:活动价500元以内经济型、通用算力型云服务器
阿里云服务器活动价格在500元以内的云服务器有哪些?2026年,阿里云再次下调了云服务器的收费标准,为用户提供了更加经济实惠的选择,目前500元预算即可以购买38元、99元、199元等特价云服务器,也可以购买4核8G等配置更高的云服务器。本文将为您详细介绍在500元预算内,能够租用到的阿里云服务器实例及其配置,以供大家参考和选择。
295 2
|
4月前
|
Java 调度
什么是分片广播任务
本文介绍XXL-JOB的分片广播机制,通过集群执行器动态分片处理任务。调度中心为每个执行器分配分片参数,实现任务并行处理,提升效率。适用于大数据量分布式场景,支持动态扩容,每台机器处理部分数据,显著降低耗时。开发时可通过`getShardIndex()`和`getShardTotal()`获取分片信息,灵活控制业务逻辑。
|
4月前
|
缓存 NoSQL 关系型数据库
【高并发实战】Redis缓存穿透、击穿、雪崩:3大经典的“炸库”危机与自救指南
本文详解缓存穿透、击穿、雪崩三大问题:穿透是查不存在的数据,击穿是热点Key失效被高并发冲击,雪崩是大量Key同时过期或Redis故障。结合比喻与解决方案,助你彻底理解并防范数据库风险。
|
4月前
|
运维 监控 Shell
【自动化运维】告别手动搬运!编写Shell脚本自动备份与清理日志
本文介绍如何通过Shell脚本结合Crontab,实现服务器日志的自动备份与清理。每天凌晨2点自动压缩昨日日志并保存至备份目录,同时删除7天前的旧备份,防止磁盘占满。脚本具备目录创建、压缩打包、错误提示和日志记录功能,操作安全可靠,适合Linux运维新手实践自动化管理。
|
4月前
|
SQL Java 关系型数据库
【并发实战】拒绝数据乱套!乐观锁与悲观锁的落地应用指南
在分布式场景下,Java锁无法解决数据并发问题。本文详解悲观锁(SELECT FOR UPDATE)与乐观锁(版本号机制),结合MySQL与MyBatis-Plus实战,助你应对秒杀超卖等高并发难题,提升系统一致性与性能。
|
4月前
|
缓存 Java Docker
【Docker实战】如何写出“性感”的Dockerfile?从1GB瘦身到100MB的秘籍
本文介绍如何编写高效、安全的Dockerfile,以Java和Python为例,分享四大核心技巧:多阶段构建减小镜像体积,利用缓存加速构建,选用轻量基础镜像,配置.dockerignore忽略无用文件。助你打造小巧、快速、安全的容器镜像,提升部署效率与安全性。
|
4月前
|
存储 运维 Java
【Docker入门】5分钟彻底搞懂镜像、容器与仓库:Docker的核心三剑客
Docker 通过“镜像、容器、仓库”三大核心实现“一次构建,到处运行”。镜像如食谱,容器是做好的菜,仓库似超市货架。用生活化比喻秒懂其原理与协作流程。
|
4月前
|
SQL 关系型数据库 MySQL
【数据库进阶】为什么你的SQL查询这么慢?索引失效的7个常见场景
本文总结MySQL索引失效的7大常见场景:模糊查询以%开头、索引列参与计算或函数、隐式类型转换、违背最左前缀法则、OR条件使用不当、不等号查询及全表扫描风险,并结合EXPLAIN工具教你如何诊断与优化,提升查询性能。
|
4月前
|
关系型数据库 MySQL Shell
【DBA实战】删库跑路?不存在的!生产环境MySQL自动备份全攻略
本文介绍如何用Shell脚本结合`mysqldump`实现MySQL数据库的自动备份,涵盖备份、压缩、按日期命名及30天自动清理策略,并通过Crontab定时执行,确保数据安全。

热门文章

最新文章