入门运行Soul

简介: Soul 是基于 WebFlux 构建的响应式 API 网关,支持高性能、异步处理与多协议集成,如 Dubbo、Spring Cloud。具备插件化架构、动态配置、流量控制、热插拔等特性,兼容多种语言,支持集群部署与 A/B 测试,网关延迟低至 1~2ms。

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。

相关文章
|
26天前
|
Arthas 存储 运维
记Arthas实现一次CPU排查与代码热更新
本文介绍如何使用Arthas排查Java应用CPU占用过高问题,通过thread、watch、jad等指令定位线程阻塞与异常代码,并实现无需重启的热更新修复,结合profile生成火焰图进行性能分析,提升线上问题处理效率。
记Arthas实现一次CPU排查与代码热更新
|
26天前
|
存储 JSON Dubbo
Soul数据库设计
该插件采用数据库设计,存储插件、选择器、规则及其匹配条件的配置数据。通过UML类图展示表结构,核心为plugin、selector、rule三大模块,支持多层级关联:插件→选择器→规则→匹配条件,各规则处理逻辑以JSON存于handle字段,适用于Dubbo、SpringCloud等协议。
|
26天前
|
Dubbo Java 应用服务中间件
搭建dubbo-zk应用
基于Spring Boot 2.2.2与Dubbo 2.0.0,构建ZooKeeper注册的分布式服务架构,实现Provider与Consumer模块间高效RPC通信,含完整POM配置及启动验证流程。
搭建dubbo-zk应用
|
26天前
|
Arthas 监控 Java
下载安装
Arthas 是一款Java诊断工具,使用前需确保服务器已启动Java应用、安装JDK并可访问公网。通过下载 arthas-boot.jar 并启动,可连接目标Java进程进行实时监控与问题排查,支持多进程选择,操作简单高效。
下载安装
|
26天前
|
Java 数据库连接 调度
xxljob执行源码分析
本文深入解析XXL-JOB分布式任务调度框架的源码实现,涵盖架构设计、核心执行流程与关键线程机制。内容包括任务触发、快慢线程池分离、注册与心跳检测、失败重试告警、日志清理、时间轮调度等核心模块,结合源码与流程图全面剖析其高性能设计原理。(239字)
xxljob执行源码分析
|
26天前
|
存储 算法 BI
xxljob本地运行
本文介绍XXL-JOB分布式任务调度框架的本地部署与使用,涵盖源码获取、服务端数据库配置、客户端注册及任务调度测试全过程,助你快速搭建并运行定时任务系统。
 xxljob本地运行
|
26天前
|
关系型数据库 应用服务中间件 nginx
容器化部署引擎Docker
Docker是容器化部署引擎,通过镜像打包应用及依赖,实现跨环境一致运行。它利用沙箱机制隔离容器,解决开发、测试与生产环境差异问题,相比虚拟机更轻量、启动更快,助力高效部署微服务集群。
|
26天前
|
SQL Java 数据库连接
持久层框架MyBatisPlus
MyBatisPlus是MyBatis的增强框架,简化单表CRUD操作,通过继承BaseMapper即可实现增删改查,支持条件构造器、分页插件、代码生成等功能,提升开发效率,广泛应用于企业项目中。
 持久层框架MyBatisPlus
|
26天前
|
存储 安全 Java
鉴权
本文介绍基于Spring Security与JWT的客户端Token认证方案,涵盖实现思路、核心类设计及完整流程。通过自定义过滤器与认证逻辑,结合RBAC权限模型,实现安全的Spring Boot应用保护机制,支持Token生成、验签与接口访问控制。
鉴权
|
26天前
|
Java Maven
打包
本文介绍Java项目打包为可执行JAR的两种方式:一是将所有内容整合到单一JAR中,通过Maven配置主类并使用`mvn clean package`打包,再用`java -jar`运行;二是将JAR、依赖与配置文件分离,便于管理。同时提供前台/后台运行及停止进程(kill -9 pid)等操作指令。
打包

热门文章

最新文章