Soul源码解析(2)-Soul单机部署及功能体验

Soul单机部署及功能体验

本次目标:搭建一个Soul本地环境,启动Soul Admin管理服务和soul-bootstrap服务,体验Soul基本功能

1、环境

IntelliJ IDEA 2020.3.1、JDK1.8、MySQL8.0(推荐使用MySQL5.x)

Soul源码下载及编译,请参考:
Soul源码解析(1)-Soul API网关介绍及环境搭建

2、Soul Admin安装

2.1 Soul Admin介绍

Soul Admin 控制台,负责所有流量的管理、配置等等,并提供给 网关服务读取

  • 用户可以在 soul-admin 后台任意修改数据,并马上同步到网关的jvm内存中。使用了本地缓存,在高并发的时候,提供高效的性能保证;

  • 同步soul的插件数据,选择器,规则数据,元数据,签名数据等等;

  • 所有插件的选择器,规则都是动态配置,立即生效,不需要重启服务;

    数据流程图:

在这里插入图片描述

2.2 Soul Admin启动

Soul Admin的项目结构如下图所示:

在这里插入图片描述

  • 在启动之前,需要先修改application.yml配置文件,修改datasource相关配置,改成自己的数据库连接信息。启动成功之后,系统会自动在数据库里面创建需要的表格和初始数据,数据库脚本在META-INF/schema.sql文件里面;

  • 也可以使用h2数据库,修改上图配置文件中的profiles即可;

  • 这是一个Spring boot项目,找到SoulAdminBootstrap启动类,直接运行即可启动Soul Admin项目;

    启动完成之后就可以通过访问下面的地址访问到Soul Admin的前端管理页面,可以在管理页面管理项目配置信息,默认用户名:admin,默认密码:123456;

    http://localhost:9095/
    

在这里插入图片描述

进入之后可以切换中英文显示

在这里插入图片描述

3 、soul-bootstrap启动

这是Soul网关的后台,是一个Spring boot项目,找到启动类SoulBootstrapApplication直接启动即可;

4、功能体验

4.1 http转发

找到soul-examples模块里面的soul-examples-http项目,找到启动类SoulTestHttpApplication,直接启动。这个模拟的是自己的项目,如果要在自己的项目里面使用Soul网关做http转发相关功能,可以参考这个example;

  • 在pom文件中引入依赖
<dependency>
    <groupId>org.dromara</groupId>
    <artifactId>soul-spring-boot-starter-client-springmvc</artifactId>
    <version>${soul.version}</version>
 </dependency>

在这里插入图片描述

  • 然后在controller方法上加上@SoulSpringMvcClient注解,这样服务启动之后,就会把带有@SoulSpringMvcClient注解的方法注册到Soul网关上去;

在这里插入图片描述

  • 启动之后,可以到之前登录的soul-admin后台查看服务注册情况;

在这里插入图片描述

  • 然后可以用postman或者其他工具来进行测试,首先通过原项目的IP和端口来访问
http://127.0.0.1:8188/order/findById?id=3

在这里插入图片描述

  • 通过网关访问

    http://127.0.0.1:9195/http/order/findById?id=3
    

在这里插入图片描述

转发成功!

4.2 负载均衡

  • 把刚才的服务改一下端口,再启动一份,模拟两个服务

在这里插入图片描述

  • 还要修改一下idea的运行配置,改成允许平行运行同一个服务

在这里插入图片描述

在这里插入图片描述

  • 然后启动soul-examples-http,登录admin后台,可以看到有一个8188和一个8189服务

在这里插入图片描述

继续用postman发送请求,然后可以看到Soul网关按照50%权重,在8188和8189两个服务之间自动切换

http://127.0.0.1:9195/http/order/findById?id=3

在这里插入图片描述

负载均衡成功!

5 总结

今天在本地启动了Soul服务,体验了http转发和负载均衡。可以用admin后台动态配置,不用重启服务,不侵入业务代码,使用还是比较简单方便的。接下来的目标是要搞懂它是怎么运行的,敬请期待!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值