高性能网关Soul源码调试环境搭建

2024-06-05 17:48

本文主要是介绍高性能网关Soul源码调试环境搭建,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

拉取代码,修改配置

首先访问https://github.com/dromara/soul 对该仓库进行star和watch,作为一个网关使用的新手。需要在后续关注soul的开发动向,把他更好的用在工作当中
随后将该仓库fork到自己的github中。方便自己后续进行代码的学习和注释。然后对自己fork的仓库进行clone

git clone git@github.com:zhendiao/soul.git

然后将自己的代码导入到IDEA当中,首先观察Soul项目的目录结构
file
我们可以很明显的猜到Soul-admin为该网关的管理控制台项目。打开配置文件,虽然可以提供内置的H2数据库作为数据源,但是为了使用方便,我们还是使用MySQL作为数据源,建议MySQL版本为mysql5。修改mysql的配置,无需手动创建数据库,启动之后自动创建了数据库。
file

可以看到启动之后的界面
file

网关核心层Soul-Bootstrap

soul-bootrap作为拦截外部请求的核心层,目前默认的数据同步方式为websocket配置,配置如下

soul :file:enabled: truecorss:enabled: truedubbo :parameter: multisync:websocket :urls: ws://localhost:9095/websocket

同时注释的代码中也包含了其他诸如Zookeeper,nacos,http等同步方式。在后面几天的尝试中,会尝试其他几种方式

测试项目

参考官网进行http(springboot)方式进行最简单的代理环境搭建,首先新建一个springboot项目,配置如下


soul:# Soul 针对 SpringMVC 的配置项,对应 SoulHttpConfig 配置类http:admin-url: http://127.0.0.1:9095 # Soul Admin 地址context-path: /soulboot # 设置在 Soul 网关的路由前缀,例如说 /order、/product 等等。# 后续,网关会根据该 context-path 来进行路由app-name: soulboot # 应用名。未配置情况下,默认使用 `spring.application.name` 配置项port: 7070 #你本项目的启动端口full: false   # 设置true 代表代理你的整个服务,false表示代理你其中某几个controller
server:port: 7070

新建一个测试controller

package org.dromara.soul.boot.controller;import org.dromara.soul.client.springmvc.annotation.SoulSpringMvcClient;
import org.springframework.web.bind.annotation.*;@RestController
@RequestMapping("/user")
public class HomeController {@GetMapping("/get")@SoulSpringMvcClient(path = "/user/get", desc = "获得用户详细")public String getUser(@RequestParam("id") Integer id) {return "DEMO:" + id;}}

通过访问soul-boostrap的端口搭配本项目的路由地址即可实现成功访问
file

目前疑问

  • 被代理的项目配置的端口为admin的端口,soul-bootstrap如何同步数据并代理的

欢迎搜索关注本人整理的牛客面经分类https://github.com/zhendiao/JavaInterview 和公众号【微瞰技术】

file

这篇关于高性能网关Soul源码调试环境搭建的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1033749

相关文章

利用Python调试串口的示例代码

《利用Python调试串口的示例代码》在嵌入式开发、物联网设备调试过程中,串口通信是最基础的调试手段本文将带你用Python+ttkbootstrap打造一款高颜值、多功能的串口调试助手,需要的可以了... 目录概述:为什么需要专业的串口调试工具项目架构设计1.1 技术栈选型1.2 关键类说明1.3 线程模

Java 正则表达式URL 匹配与源码全解析

《Java正则表达式URL匹配与源码全解析》在Web应用开发中,我们经常需要对URL进行格式验证,今天我们结合Java的Pattern和Matcher类,深入理解正则表达式在实际应用中... 目录1.正则表达式分解:2. 添加域名匹配 (2)3. 添加路径和查询参数匹配 (3) 4. 最终优化版本5.设计思

Python如何自动生成环境依赖包requirements

《Python如何自动生成环境依赖包requirements》:本文主要介绍Python如何自动生成环境依赖包requirements问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录生成当前 python 环境 安装的所有依赖包1、命令2、常见问题只生成当前 项目 的所有依赖包1、

Redis在windows环境下如何启动

《Redis在windows环境下如何启动》:本文主要介绍Redis在windows环境下如何启动的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Redis在Windows环境下启动1.在redis的安装目录下2.输入·redis-server.exe

Pytest多环境切换的常见方法介绍

《Pytest多环境切换的常见方法介绍》Pytest作为自动化测试的主力框架,如何实现本地、测试、预发、生产环境的灵活切换,本文总结了通过pytest框架实现自由环境切换的几种方法,大家可以根据需要进... 目录1.pytest-base-url2.hooks函数3.yml和fixture结论你是否也遇到过

利用Python快速搭建Markdown笔记发布系统

《利用Python快速搭建Markdown笔记发布系统》这篇文章主要为大家详细介绍了使用Python生态的成熟工具,在30分钟内搭建一个支持Markdown渲染、分类标签、全文搜索的私有化知识发布系统... 目录引言:为什么要自建知识博客一、技术选型:极简主义开发栈二、系统架构设计三、核心代码实现(分步解析

浅谈配置MMCV环境,解决报错,版本不匹配问题

《浅谈配置MMCV环境,解决报错,版本不匹配问题》:本文主要介绍浅谈配置MMCV环境,解决报错,版本不匹配问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录配置MMCV环境,解决报错,版本不匹配错误示例正确示例总结配置MMCV环境,解决报错,版本不匹配在col

使用Python自建轻量级的HTTP调试工具

《使用Python自建轻量级的HTTP调试工具》这篇文章主要为大家详细介绍了如何使用Python自建一个轻量级的HTTP调试工具,文中的示例代码讲解详细,感兴趣的小伙伴可以参考一下... 目录一、为什么需要自建工具二、核心功能设计三、技术选型四、分步实现五、进阶优化技巧六、使用示例七、性能对比八、扩展方向建

Java调用C++动态库超详细步骤讲解(附源码)

《Java调用C++动态库超详细步骤讲解(附源码)》C语言因其高效和接近硬件的特性,时常会被用在性能要求较高或者需要直接操作硬件的场合,:本文主要介绍Java调用C++动态库的相关资料,文中通过代... 目录一、直接调用C++库第一步:动态库生成(vs2017+qt5.12.10)第二步:Java调用C++

使用Python实现快速搭建本地HTTP服务器

《使用Python实现快速搭建本地HTTP服务器》:本文主要介绍如何使用Python快速搭建本地HTTP服务器,轻松实现一键HTTP文件共享,同时结合二维码技术,让访问更简单,感兴趣的小伙伴可以了... 目录1. 概述2. 快速搭建 HTTP 文件共享服务2.1 核心思路2.2 代码实现2.3 代码解读3.