Soul源码分析–soul-admin
运行使用原理介绍总结运行
上一篇介绍过 soul-admin 启动有两种数据库选择,一种是MySQL, 一种是内存H2数据库。如果本地有MySQL,建议还是使用MySQL数据库,毕竟等下我们还是需要看看 soul-admin 启动时创建的表结构。启动后我们选择"插件列表"->“divide”,如果没有启动别的服务,这个菜单里面应该是空的。这里我们还要启动 Soul 网关主要的服务 soul-bootstrap,如果不想自己写业务服务来测试,需要把 soul-examples 这个项目也编译进来(在父级pom文件添加这个模块,然后 clean install 一顿骚操作后应该就可以了,如果不行多编译几次)启动 soul-examples-http 项目(需要把日志级别改成debug,后续测试负载均衡需要看日志),启动成功后到admin后台管理应该就可以看到下面这个图里的数据最后需要配置一下选择器,然后就可以通过 http://localhost:9195/http/test/findByUserId?userId=10 来访问了
使用
网关的使用:
我们使用网关时,后端一般会有多个服务,每个服务可能会有多个节点,当一个服务的多个节点都对外提供服务时,经过网关转发就可以实现负载均衡、降级、限流等功能。在 soul 中可以很方便的配置这些功能,点击修改选择器->配置可以添加多个节点的服务,配置权重以及是否启用禁用此节点。
配置网关负载均衡
把项目中的端口号改一下,然后idea启动时选择多个并行启动,新启动一个 soul-examples-http 项目
把新启动的服务配置到 admin 后台,然后保存
保存成功后就会生效,接下来就是看一看效果了。在浏览器多访问几次 http://localhost:9195/http/test/findByUserId?userId=8 这个网关地址,然后看网关日志,发现8188和8189分别被访问了
配置限流
在选择器中的配置中把8188的设置改成close,然后疯狂请求,再去看 soul-bootstrap 日志,发现只有8189的请求日志,从而实现限流
原理介绍
第一次运行 soul-admin 时,会自动创建soul库和相关的表
我们来看一下 select * from dashboard_user; 这个表里面会写入一条记录,那就是admin 用户的记录,密码是加密的,我们用的默认用户和密码就是这个表中的记录
在 soul-admin 项目中,仔细观察可以发现,我们启动服务之后可以直接访问的页面,但是项目下的文件夹只有下图中一个 index.html 页面,而页面里面只引入了一个JS(当然这个JS是压缩过的,不用想尝试去看,能看懂的都是鬼才),那页面里面的东西是哪来的呢,聪明的你应该想到了,把 soul-admin 把所有功能都压缩在这个JS里面了,然后通过 index 页面直接来展示后台管理页面
总结
最后 soul-admin 入门就介绍到这,下一篇就深入源分析了
如果觉得《Soul源码分析–soul-admin入门》对你有帮助,请点赞、收藏,并留下你的观点哦!