【Soul源码阅读】2.单机部署 Soul

soul源码解读(一)-- 环境搭建 soul源码解读soul源码解读下载代码编译代码soul架构图soul-admin初体验soul-bootstrap初体验 soul源码解读 最近准备开始一个soul源码阅读计划,今天是第一天 下载代码 项目地址:https://github.com/dromara/soul 可以先把项目fork到自己的仓库,然后从自己仓库下载 项目下载下来之后,设置远程仓库 git remote add upstream https://github.com/dromara/soul 以后soul有更新,就可以直接拉取 阅读详情

上一篇中,我们对 Soul 有了一个简单的认识。

在学习一项新技术时,我们先按照官网上的 Demo 把环境搭建起来。今天先搭建一个单机版测试环境。

1.下载源码

soul 的 github 地址: https://github.com/dromara/soul

这里有2个选择:

  1. 如果只是用来阅读 soul 源码,不会改动,不提交 PR的,直接 git clone 的地址。
  2. 如果学习源码后,希望参与到 soul 开源项目中,fork 到自己账号下,再 clone 自己账号下的 soul 项目。

这里,我建议大家采用第2种方式,也以第2种方式演示。

git clone https://github.com/hellboy0621/soul.git

为了方便后续拉取最新代码,设置 upstream 远程仓库

git remote add upstream https://github.com/dromara/soul

# 后续拉取最新代码时使用
git checkout master
git pull upstream master

后续如果提交 PR 时,会创建单独的 branch 修改代码后上传,目前我们只是阅读源码,所以创建一个 read 的分支,互不影响。

git checkout -b read

把源码下载好后,导入 IDEA 中。

2.启动 MySQL

soul-admin 模块需要把一些数据持久化到 MySQL中。

3.启动 soul-admin 项目

在 IDEA 里找到 soul-admin 模块,按照各自数据库配置,修改配置文件(我的是3306端口号,用户名root,没有密码)

启动完成后,进入控制页面 http://127.0.0.1:9095/,使用 admin/123456 登录。欢迎页面如下:

在插件列表下,所有页面都是空白的。

4.启动 soul-bootstrap,这就是 Soul 网关服务项目,默认端口号是9195。

5.接入 HTTP 应用。

启动 examples 下的 soul-examples-http。

再次访问管理页面的 devide 插件,有了如下选择器。

在 soul-examples-http 项目下的 controller 层,可以看到这些接口信息,如下图这个接口 /order/findById。

此时可以直接访问这个接口 http://localhost:8188/order/findById?id=95

也可以通过网关来访问这个接口 http://localhost:9195/http/order/findById?id=95

今天就先体验到这里,明天我们继续深入的探索 HTTP 服务是如何接入的。

文章是本人一边学习一边记录的,如有错误,请批评指正,谢谢。

 

Java 界最好的 API 网关 Soul soul网关发布2.1.0版本 (做Java界最好的API-Gateway) 这是soul网关开源以来的最大的一次更新,收集了很多社区反馈的问题,进行了更新. 之前的文档不是很完善,使用成本较高,这里先说声抱歉,这一个版本中,同时更新了相关文档. ... 阅读详情

相关推荐

Soul 网关开源的前世今生

内容简介:Soul网关是我在任职某大型电商公司中间件技术部的时候所开发的。开源以后,针对不同的用户需求,进行了功能的升级,比如 支持了首先我们调研了市场上的一些API网关 本文转载自:https://mp.weixin.qq.com/s/92TFLGy_q1e15W3kwtiSWw,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有。 Soul网关由来? Soul网关是我在任职某大型电商公司中间件技术部的时候所开发的。开源以后,针对不同的用户需求,进行了功能的升级,比如 支持了spri.

王者NO1 3143

探索Dromara Soul:下一代高性能微服务网关的终极指南

在当今微服务架构盛行的时代,如何有效管理和保护服务间的通信成为了每个开发者必须面对的重要课题。Dromara Soul作为一款开源的微服务网关,凭借其出色的性能和丰富的功能,正在成为企业级应用的首选解决方案。本文将带您深入了解这款强大的API网关工具,帮助您快速掌握其核心特性和使用方法。 ## 🚀 什么是Dromara Soul? Dromara Soul是一款基于Java开发的高性能微服务

gitblog_00094的博客 457

OpenClaw工程实战

OpenClaw工程实战总览摘要 OpenClaw是一款面向AI Agent开发的全栈式解决方案,采用四层模块化架构(基础设施层、核心引擎层、生态组件层和应用适配层)。文档全面覆盖从环境配置到企业落地的九大技术板块,包含MCP协议实战、多Agent编排、商业级项目实践等核心内容。系统支持全场景部署(本地/云端/边缘设备),集成3286个市场技能,通过Gateway网关实现智能路由与多模型调度。典型应用场景包括企业数字化、开发者提效和全渠道智能助手。

lza_csdn2019的博客 628

重磅消息:Dromara团队正式开源高性能异步API网关-Soul

微服务为什么需要网关? 微服务的流行,服务之间的调用,需要统一的请求标准。 微服务接口,需要监控,限流,熔断,等等。 微服务接口需要统一的鉴权。 接口问题定位 A/B test等等。太多功能了,就不一一列举了。 Soul是什么? soul 是一款高性能,响应式的网关。我在参...

chuqinwei5296的博客 1240

RK3308B开发板WiFi+蓝牙一体模组RTL8821CS驱动移植保姆级教程(含DTS配置与避坑点)

本文提供RK3308B开发板RTL8821CS WiFi+蓝牙模组驱动移植的完整教程,涵盖SDK环境配置、DTS设备树设置、内核编译优化及功能验证全流程。重点解析引脚复用冲突、电源管理等关键配置,并给出常见错误解决方案,帮助开发者快速实现双模通信功能。

weixin_42531163的博客 398

Clang Static Analyzer 使用教程:本地 + CMake + GitHub Actions 自动静态分析实战

本文介绍了ClangStaticAnalyzer静态代码分析工具的使用方法。该工具基于Clang/LLVM,可检测C/C++代码中的内存泄漏、空指针等常见错误。主要内容包括:安装指南(Ubuntu/macOS/Windows)、命令行使用方法、CMake项目集成方案、GitHub Actions自动化分析配置,以及HTML报告生成与查看。文章还提供了官方资源链接,帮助开发者系统掌握从本地调试到持续集成的完整静态分析工作流,提升代码质量保障能力。适用于需要在开发过程中实施静态分析的C/C++项目。

u014358031的博客 2156

1.入门运行Soul

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 Clou.

小波的博客 876

ESP32网络开发实例-开发环境搭建

NodeMCU-ESP-32S开发环境搭建 NodeMCU-32S 最强的ESP32 开发板非盗版或副厂的CH340。WiFi 蓝牙ESP-32 可用Arduino IDE ESP32-S 是一款通用型WiFi-BT-BLE MCU模组,功能强大,用途广泛,可以用于低功耗传感器网络和要求极高的任务,例如语音编码、音频流和MP3解码等。 此款模组的核心是ESP32芯片,具有可扩展、自适应的特点。两个CPU核可以被单独控制或上电。时钟频率的调节范围为80 MHz到240 MHz。用户可以切断CPU的电源,利用低

视觉与物联智能 3781

(十六)soul源码的自定义插件

((十六)soul的自定义插件 目标 soul的本身提供的插件 soul的本身提供的插件 说明 插件是 soul 网关的核心执行者,每个插件在开启的情况下,都会对匹配的流量,进行自己的处理。 在soul 网关里面,插件其实分为2 类: 一类是单一职责的调用链,不能对流量进行自定义的筛选。 另一类,能对匹配的流量,执行自己的职责调用链。 插件类别 单一职责原插件 首先需要实现org.dromara.soul.plugin.api.SoulPlugin Mono<V

闫兵的博客 1395

ATE FT ChangeKit学习总结-20250630

半导体封装测试中的ChangeKit是Handler测试机的关键配套治具,主要用于适配不同芯片封装尺寸的FT测试。其主要特点包括:1)适应性,可快速切换不同测试设置;2)精准性,确保器件测试安全;3)高效性,减少停机时间。主要组件含Shuttle传送机构、HotPlate预热盘、DockPlate连接件和Contactor压头。设计需考虑Handler型号、芯片规格及PCB匹配(如140mm标准孔位),特别在低温测试时需注意吹气块布局。ChangeKit实现了测试设备的灵活配置,提升了半导体测试效率。

歌颂苦难的行为是无耻的; 1745

华为OD机试真题 新系统 - WIFI设备网络规划 (Java/Py/C/C++/Js/Go)

本文整理华为 OD 机试新系统机考真题库,涵盖高频考点精析与完整题目内容,提供 C 语言、Java、C++、Python、Go、JavaScript 多语言源码实现,搭配详细解题思路讲解,并支持在线 OJ 刷题练习,助力高效备考华为 OD 机试新系统。

算法大师! 2014

【Soul源码阅读】7. sofa 用户接入 Soul 网关流程解析

官网文档中有详细的接入流程,地址:https://dromara.org/zh-cn/docs/soul/user-sofa.html 之前一直没接触过 sofa,官网的介绍如下: SOFARPC is a high-performance, high-extensibility, production-level Java RPC framework. In Ant Financial, SOFARPC has been used for more than ten years and develo

hellboy0621的博客 597

如何使用 Conda 安装 Qiskit(详细教程)

本文介绍了使用conda安装Qiskit量子计算工具包的完整流程。首先创建Python 3.10的conda虚拟环境(qiskit_env),然后安装Qiskit核心包及可视化组件(注意Mac用户的安装命令差异)。接着注册IPython内核并测试环境,通过量子电路创建与可视化演示验证安装成功。该教程为量子计算开发提供了简洁的环境配置指南,适合研究者和开发者快速搭建Qiskit开发环境。

猿小白的博客 563

【Soul源码阅读】6. Dubbo 用户接入 Soul 网关流程解析

OK,前面几天把 HTTP 用户 接入 Soul 网关大概了解了下,尤其是昨天 debug 到底层,发现里面配置了很多 plugin 插件,默认只开启了一个 divide 插件,用来转发 HTTP 请求的。 今天不搞那么复杂的,要劳逸结合嘛,毕竟一口吃个胖子只存在于幻想中,还是一口口慢慢消化吧。 来一起看下 dubbo 插件吧。 根据官网文档操作 这年头,各种帖子层出不穷,甚至还有内容农场,相信你也遇到过很多帖子,内容明明一样,各种错误也是直接 copy,对于需要解决问题的我,真的是恨之入骨。即使

hellboy0621的博客 430

SPICE仿真软件:HSPICE_(20).HSPICE仿真结果的后处理

HSPICE仿真结果的后处理是一个多步骤的过程,包括读取结果文件、可视化、分析和导出。通过使用命令行工具、Python脚本和HSPICE内置工具,可以高效、准确地完成这些任务。Python脚本的灵活性和强大的数据分析能力使其成为后处理的理想选择。自动化处理可以显著提高工作效率,减少人为错误,而高级分析方法可以更深入地理解仿真结果,为电路设计提供有力支持。

kkchenjj的博客 1382

UWB:FiRa Consortium UCI Generic Technical Specification v1.1.0(2)- 核心控制消息;会话管理;测距会话管理

测距是UWB最核心的应用。为了方便应用调用测距接口,FIRA统一了UCI命令格式,这样各个厂商可以互相兼容。

Ankie资深技术项目经理 1276

Soul网关源码阅读15-解析rate_limiter限流插件

rateLimiter 是soul网关的限流插件,是网关对流量管控的核心,今天来尝试使用一下,并结合源码解析原理。 一、环境配置 1、soul-admin 系统管理 > 插件管理 > 打开rate_limiter插件开关 redis选择的是单机部署standalone,填入 redis的,url,password,然后点击确定 我代理的服务是通过http请求,所以还要打开devide插件 2、soul-bootstrap soul-bootstrap/pom.xml 加入ratelim

xiaoxu的博客 894

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Soul-源码阅读3-接入dubbo应用

Soul-入门,安装部署单机版 https://blog.csdn.net/tbmingzhao/article/details/112645382 准备工作 运行 soul-example 目录 的 soul-examples-apache-dubbo-service 工程 先需要设置 dubbo 插件 的注册中心,因为 Soul Bootstrap 服务网关需要从注册中心获取到 Dubbo 服务的实例列表。 启动zk 或 nacos 注册中心 运行服务 启动-soul-e..

tbmingzhao的博客 1115

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

【Soul源码阅读】8. Spring Cloud 用户接入 Soul 网关流程解析

官网文档中有详细的接入流程,地址:https://dromara.org/zh-cn/docs/soul/user-springcloud.html 1.前置条件 接入前,请正确的启动soul-admin(如有疑问,出门左转【Soul源码阅读】2.单机部署 Soul或官网文档-搭建Soul网关环境) 2.引入网关对 Spring Cloud 的插件支持 2.1 公共依赖 在 soul-bootstrap 的 pom.xml 文件中,找到了被注释掉的3个依赖,打开注释: <!--so...

hellboy0621的博客 479

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Soul-源码阅读21-rateLimiter插件

前言 采用redis令牌桶算法进行限流。 限流插件是网关对流量管控、限制核心的实现。 流量配置可以到接口级别、参数级别。 使用rateLimiter 启动soul-admin,在 soul-admin–> 插件管理–> rate_limiter 将其设置为开启,redis部署模式默认为单机,如果是哨兵(sentinel),集群(cluster)等多节点的,在URL中的配置,请对每个实列使用 ; 分割. 如 192.168.1.1:6379;192.168.1.2:6379。。 在b

tbmingzhao的博客 1263

又一国产微服务网关 Soul,一起来肝一肝,Dubbo、SpringCloud、SpringBoot 全支持!...

点击上方“芋道源码”,选择“设为星标”管她前浪,还是后浪?能浪的浪,才是好浪!每天 8:55 更新文章,每天掉亿点点头发...源码精品专栏原创 | Java 2020 超神之路,很肝~...

芋艿V 1475

[转载]芋道 Soul 极简入门(国产微服务网关)

摘要: 原创出处 http://www.iocoder.cn/Soul/install/ 「芋道源码」欢迎转载,保留摘要,谢谢! 由于原著写作时间时间有点久了;有部分类容需要更新,后去个人会再发布文章更新该内容! 1. 概述 Soul 是基于 WebFlux 实现的响应式的 API 网关,具有异步、高性能、跨语言等特点。 作者:我希望能够有一样东西像灵魂一样,保护您的微服务。在参考了 Kong、Spring Cloud Gateway 等优秀的网关后,站在巨人的肩膀上,Soul 由此诞生! 作者是.

lee_sine的博客 1403

记录一下落地网关soul(shenyu)过程中的一些实践

前言 这款网关属于业务网关类型,目前已经提交apache孵化,并更名为shenyu,原名soul。 本文依然会使用soul这个名字,是因为我在落地这款网关的时候,当时尚未更名,版本是org.dromara:soul:2.2.1,并且我们使用到了现在,与最新的主版本几乎已经脱离,又因为没有时间升级到新版本,所以本文暂时会使用soul这个老名字。 网关选型 为什么选择soul 我们在对一个开源组件选型的时候,可能会基于很多方面进行考量,比如业务场景、技术储备、组件的功能特性、组件的性能、社区活跃度等等

程序猿的樊笼 6339

soul源码学习(一)-项目搭建

文章目录简介soul设计目标soul特性安装前准备项目启动启动soul-admin启动网关soul-bootstrap小结参考 简介 soul设计目标 异步的,高性能的,跨语言的,响应式的API网关。 soul特性 支持各种语言(http协议),支持 dubbo,springcloud协议。 插件化设计思想,插件热插拔,易扩展。 灵活的流量筛选,能满足各种流量控制。 内置丰富的插件支持,鉴权,限流,熔断,防火墙等等。 流量配置动态化,性能极高,网关消耗在 1~2ms。 支持集群部署,支持 A/B Test

yilongzhetian的博客 664

开始使用 Soul 网关

分布式 API 网关 一般来说,API 网关应用于微服务场景,是其中的一个组件,针对整个应用宏观来看,处于客户端和服务端中间。 引入 API 网关有一系列的好处: 聚合服务端接口,为客户端提供相对统一的 API 和入口; 由于入口统一,能够提供安全,限流,缓存,日志,监控,重试,熔断等功能; 控制流量,比如负载均衡、蓝绿发布等功能放在这一层也是可以的。 Soul github 地址:https://github.com/dromara/soul 官网:https://dromara.org/zh-cn/do

rockpigL的博客 834

微服务网关soul搭建

1.git clonehttps://github.com/Dromara/soul.git源码 2.安装zk 3.刷入 源码目录scripts/下soul.sql到数据库 4.修改soul-admin目录下相关参数 5.启动SoulAdminApplication ,访问http://localhost:8888/index.html输入 admin /123456 6...

工匠精神coding,终生学习 6090
上一篇: 【Soul源码阅读】1.初识 Soul
下一篇: 【Soul源码阅读】3.HTTP 用户接入 Soul 流程解析
hellboy0621
博客等级 码龄9年 61粉丝 147原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值