1.入门运行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。

相关文章
|
8天前
|
存储 缓存 监控
EFC&CTO:缓存引发数据不一致问题排查与深度解析
EFC客户端在适配CTO测试时发现数据不一致问题,经排查为分布式缓存版本号回退导致读取旧数据,进而污染pagecache并写坏文件系统。通过维护递增版本号修复,最终解决问题并优化对POSIX语义的理解。
|
9天前
|
机器学习/深度学习 存储 搜索推荐
第二章 基础算法
本文系统介绍了加密算法、排序算法及字符串处理等核心技术。涵盖对称与非对称加密、哈希摘要、电子签名原理,详解冒泡、快排、归并等排序算法的实现与优化,并结合实际场景讲解正则匹配与二分查找的应用,内容全面,适合技术学习与面试准备。
 第二章 基础算法
|
8天前
|
Dubbo Java 应用服务中间件
2.搭建dubbo-zk应用
基于Spring Boot 2.2.2与Dubbo 2.0.0,构建ZooKeeper注册中心的分布式服务架构,实现Provider与Consumer模块间高效RPC通信,附完整项目结构及配置示例。
|
8天前
|
存储 Java Nacos
第九章 SpringCloud框架
本文系统介绍了微服务架构中的核心技术组件,涵盖Nacos与Eureka的服务注册与发现机制、OpenFeign的远程调用流程、Sentinel与Hystrix的限流熔断对比、滑动窗口算法原理,以及Spring Cloud Gateway的路由断言、过滤器功能与实现方式,全面解析微服务间通信、配置管理与流量治理方案。
|
9天前
|
NoSQL Java 数据库连接
第七章 SpringBoot框架
SpringBoot简化了Spring开发,核心功能包括starter起步依赖、自动配置和内嵌服务器支持。通过条件注解实现Bean的自动化加载,支持自定义starter,并提供多种外部配置方式,提升开发效率与项目可维护性。(238字)
|
8天前
|
缓存 安全 Java
第五章 Spring框架
Spring的IOC(控制反转)指将对象创建交给容器管理,DI(依赖注入)则实现对象间的依赖关系自动注入。Bean默认单例非线程安全,作用域可设为singleton、prototype等,通过@Scope注解配置。Bean生命周期包括实例化、初始化、销毁等阶段,循环依赖通过三级缓存解决,但构造函数循环依赖需@Lazy解决。AOP基于动态代理实现日志、事务等横切关注点,事务通过@Transactional注解管理,支持传播行为如REQUIRED、REQUIRES_NEW。常用注解涵盖声明、注入、配置及AOP等方面。
|
8天前
|
存储 安全 网络协议
第三章 web阶段
HTTP协议是超文本传输协议,基于TCP实现,规定了客户端与服务器间的数据通信规则。常见请求方式有GET和POST,前者用于获取数据,后者用于提交数据。HTTPS在HTTP基础上通过SSL加密提升安全性。常见状态码如200(成功)、404(未找到)、500(服务器错误)等。转发是服务器内部跳转,重定向则由浏览器发起新请求。Cookie和Session用于会话跟踪,前者存于客户端,后者依赖服务器存储,底层仍借助Cookie传递ID。
|
8天前
|
Java
HUTOOL-Word生成-Word07Writer
Hutool封装POI实现Word(docx)生成,提供Word07Writer类,支持字体、段落添加,简化文档创建。需引入hutool-all与poi-ooxml依赖,适用于Java环境下的简单Word操作。
|
8天前
|
缓存
QLExpress使用及源码分析
QLExpress是阿里巴巴开源的轻量级规则引擎,支持通过注解与YAML配置实现业务逻辑与代码解耦。提供AST语法树解析、上下文构建及高效执行机制,适用于动态规则场景。GitHub地址:https://github.com/alibaba/QLExpress
|
8天前
|
SQL 数据库连接 数据库
03-Activity代码实现
本文介绍了基于Activiti工作流引擎的入门实践,涵盖BPMN流程创建、部署、启动实例、任务查询与完成等核心操作。通过代码示例演示了流程定义部署、运行时实例管理及任务处理全过程,并结合数据库表变化说明执行效果,帮助开发者快速掌握工作流基本开发流程。
 03-Activity代码实现