开始使用 Soul 网关

分布式 API 网关

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

Soul

github 地址:https://github.com/dromara/soul
官网:https://dromara.org/zh-cn/docs/soul/soul.html
soul 是一个异步的,高性能的,跨语言的,响应式的 API 网关,具有多协议支持,插件丰富等特点,本系列文章将对其源码进行深入的研读。

开始使用!启动 soul-admin 和 soul-bootstrap

打开 soul-admin 包下的 application.yml,修改其中的数据库配置设置为我们自己的数据库地址:

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/soul?useUnicode=true&characterEncoding=utf-8
    username: root
    password: 123456
    driver-class-name: com.mysql.jdbc.Driver

访问 http://localhost:9095/ 默认用户名 admin,密码 123456 即可访问 admin 页面,如下图所示:
图片: https://uploader.shimo.im/f/G6WglC8XLlTJ9XvO.png

接下来启动 soul-bootstrap 模块即可进行 soul 的试用,我们可以启动自己的服务来交给 soul 进行代理,本文中演示 soul 源码中自带的测试用服务。

启动 soul-examples 模块下的 soul-examples-http,我们可以看到这个包下提供测试的类上都注解了 @SoulSpringMvcClient,启动后我们可以在 admin 的 divide 栏目中看到被代理的接口设置,如下图所示:

图片: https://uploader.shimo.im/f/bfhWTWCGfJn7t4Og.png

接下来,使用 GET 方式访问 http://localhost:9195/http/test/findByUserId,即可看到被代理接口的返回:
图片: https://uploader.shimo.im/f/qSY04rqQPzP7sM6f.png

此时,我们也可以在 bootstrap 的控制台看到相应的输出:
图片: https://uploader.shimo.im/f/Whjkb0gY4bj10zoO.png

至此,我们体验了 soul 作为 API 网关最基础的功能,即进行请求的转发。进一步的,在 divide 栏目也可以进行一些负载均衡的设置,读者朋友们可以开启两个服务自行进行试验。

产生兴趣继续探究吧

经过简单的试用,我们已经可以体会到 soul 的一些功能和特点,比如它的小侵入性,对于一个服务,最少仅需要一个注解即可被 soul 支持;再比如清晰直观的 admin 页面。接下来的一系列文章中,我将和大家一起,深入源码,看看这些功能都是怎么实现的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值