失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > Soul源码学习(一)——soul原理及环境搭建

Soul源码学习(一)——soul原理及环境搭建

时间:2022-07-26 07:00:25

相关推荐

Soul源码学习(一)——soul原理及环境搭建

概述

Soul 是基于 WebFlux实现的响应式的 API 网关,具有异步、高性能、跨语言等特点。

作者:我希望能够有一样东西像灵魂一样,保护您的微服务。在参考了 Kong、Spring Cloud Gateway等优秀的网关后,站在巨人的肩膀上,Soul 由此诞生!

目前 Soul 功能列表如下:

支持各种语言,无缝集成到 Dubbo、Spring Cloud、Spring Boot 中。丰富的插件支持,鉴权,限流,熔断,防火墙等等。网关多种规则动态配置,支持各种策略配置。插件热插拔,易扩展。支持集群部署,支持 A/B Test。

整体架构图如下:

环境准备

java1.8+mysqlgitmaven

本地单机部署

下载源码,并进行编译

git clone /dromara/soul.gitmvn clean package install -Dmaven.test.skip=true -Dmaven.javadoc.skip=true -Drat.skip=true -Dcheckstyle.skip=true

启动admin控制台

在模块soul->soul-admin下,找到配置文件修改数据库信息,连接到本地mysql数据库,程序会自动创建数据库和表结构。

spring:#profiles:# active: h2thymeleaf:cache: trueencoding: utf-8enabled: trueprefix: classpath:/static/suffix: .htmldatasource:url: jdbc:mysql://localhost:3306/soul?useUnicode=true&characterEncoding=utf-8username: rootpassword: driver-class-name: com.mysql.jdbc.Driver

登录admin后台

浏览器访问localhost:9095,默认用户名、密码admin/123456登录后台

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-25wQXJ7S-1610637858086)(/Users/lijiajun/Library/Application Support/typora-user-images/image-0114171435776.png)]

启动核心网关服务soul-bootstrap

在模块soul->soul-bootstrap, 通过idea直接启动服务。

数据库设计

插件采用数据库设计,来存储插件,选择器,规则配置数据,以及对应关系。数据库表UML类图: 设计详解: 一个插件对应多个选择器,一个选择器对应多个规则。一个选择器对应多个匹配条件,一个规则对应多个匹配条件。每个规则在对应插件下,不同的处理表现为handle字段,handle字段就是一个json字符串。具体的可以在admin使用过程中进行查看。

如果觉得《Soul源码学习(一)——soul原理及环境搭建》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。