入门运行Soul

简介: Soul 是基于 WebFlux 的高性能响应式 API 网关,支持 Dubbo、Spring Cloud、Spring Boot,具备跨语言、异步、低延迟(1~2ms)特性。采用插件化设计,支持热插拔、动态流量控制、A/B 测试与蓝绿发布,内置鉴权、限流、熔断等丰富插件,可通过 WebSocket、HTTP 长轮询等方式实现配置实时同步。

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

相关文章
|
3月前
|
存储 缓存 安全
One Trick Per Day
初始化Map应避免默认容量导致扩容,推荐Guava的`newHashMapWithExpectedSize`;禁用Executors创建线程池,防止OOM,应手动通过`ThreadPoolExecutor`设置合理参数;`Arrays.asList`返回不可变列表,禁止修改操作;遍历Map使用`entrySet`提升性能;`SimpleDateFormat`非线程安全,建议用`ThreadLocal`或Java8时间类;并发修改记录需加锁,优先乐观锁,冲突高则用悲观锁。
|
3月前
|
存储 缓存 监控
EFC&CTO:缓存引发数据不一致问题排查与深度解析
EFC客户端更新缓存架构后,CTO测试出现data mismatch。经排查,因分布式缓存版本号回退,导致旧NULL数据被读入pagecache并刷入文件系统,破坏了NAS数据一致性。修复后10轮测试通过。
|
3月前
|
运维 安全 Devops
生产环境缺陷管理
git-poison基于go-git实现分布式bug追溯,解决多分支开发中bug漏修、漏发等问题。通过“投毒-解毒”机制,自动化卡点发布流程,降低协同成本,避免人为失误,已在大型团队落地应用,显著提升发布安全与效率。
|
3月前
|
缓存 运维 监控
一场FullGC故障排查
本文记录了线上容器 CPU 使用率达 104% 告警的排查与解决过程。排查初期,因机器内存使用率正常(62%),排除 Full GC、接口高并发等猜测,后发现监控偏差,通过 JVM 监控确认 Full GC 导致 CPU 飙升。经 JProfiler 分析堆内存快照,定位到问题根源:Excel 解析<Map>对象长期占用堆内存,空间效率低,且因任务逻辑长期存在(4-12 小时),易打满老年代触发 Full GC。解决方案分两类:一是激进方案(数据存入 Redis,彻底避免内存占用),二是保守方案(删除无用字段、优化缓存逻辑缩减数据量)。最后总结排查要点,强调 JVM 监控的重要性及大对象排查的
|
3月前
|
Java 测试技术 API
从Google线上故障,谈灰度发布的重要性
2025年6月12日,Google Cloud因未灰度发布的新配置引发空指针异常,导致Gmail、YouTube等服务中断超7小时。故障暴露了缺乏配置灰度与错误处理机制的风险。本文结合Nacos等配置中心的IP/标签灰度方案,探讨如何通过渐进式发布保障系统稳定性,避免全局故障。
|
3月前
|
存储 Java
Excel读取并数据List/Map-POI
该工具类基于POI解析.xls格式Excel文件,支持按行读取数据并映射为Java对象。通过反射机制将每行数据转换为VO实例,分别支持全局Map(键值对)和List形式存储结果,适用于固定模板的数据导入场景,需注意列数、顺序与VO字段一致。
|
3月前
|
Java 测试技术 Linux
生产环境发布管理
本文介绍大型团队如何通过自动化部署平台实现多环境(dev/test/pre/prod)高效发布与运维。涵盖各环境职责、基于Jenkins+K8S的CI/CD流程、分支管理、一键发布及日志排查方案,结合Skywalking实现链路追踪,提升发布效率与问题定位能力。(238字)
|
3月前
|
SQL Java 数据库连接
Activity代码实现
本教程通过创建BPMN流程、部署定义、启动实例、查询与完成任务,演示Activiti工作流引擎的基本使用。涵盖流程定义部署、任务操作及数据库表变化,帮助快速掌握工作流开发核心步骤。
|
3月前
|
Java 数据安全/隐私保护
脱敏工具
提供身份证、姓名、手机号脱敏的Java实现,通过正则替换隐藏敏感信息:身份证保留前后部分,中间用*代替;姓名仅显示首尾字符;手机号显示前3后4位,中间4位脱敏,保障数据安全。
|
3月前
|
Java 数据安全/隐私保护
随机ID
提供两个Java方法:一个生成指定长度的随机数字与大小写字母组合字符串,另一个仅生成指定长度的随机数字。适用于需要随机验证码、密码等场景,使用简单,可直接调用。

热门文章

最新文章