Soul网关源码分析-0期(预热)

本文记录了Soul网关的启动过程,启动soul - admin成功后启动soul - bootstrap,初步判断配置同步默认通过websocket协议完成。还对网关日志中的关键类和方法进行了追溯,发现一些可能与插件相关的线索,后续计划运行http服务,研究关键类及网关server和client的工作机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

启动 soul-admin成功后, 启动soul-bootstrap

soul-admin下打印几行信息

2021-01-13 23:00:42.047  INFO 16544 --- [0.0-9095-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring DispatcherServlet 'dispatcherServlet'
2021-01-13 23:00:42.047  INFO 16544 --- [0.0-9095-exec-1] o.s.web.servlet.DispatcherServlet        : Initializing Servlet 'dispatcherServlet'
2021-01-13 23:00:42.113  INFO 16544 --- [0.0-9095-exec-1] o.s.web.servlet.DispatcherServlet        : Completed initialization in 65 ms
2021-01-13 23:00:42.267  INFO 16544 --- [0.0-9095-exec-1] o.d.s.a.l.websocket.WebsocketCollector   : websocket on open successful....

说明网关与配置后台建立websocket通信, soul-admin 的 WebsocketCollector 打印出关键信息

@Slf4j
@ServerEndpoint("/websocket")
public class WebsocketCollector {
   

    private static final Set<Session> SESSION_SET = new CopyOnWriteArraySet<>();

    private static Session session;

    /**
     * On open.
     *
     * @param session the session
     */
    @OnOpen
    public void onOpen(final Session session) {
   
        log.info("websocket on open successful....");
        SESSION_SET.add(session);
    }
    ...
}

初步判断, 配置的同步, 默认下是借由websocket协议完成.

再继续看soul-bootstrap这边, 由WebsocketSyncDataConfigurationWebsocketSyncDataService 完成websocket协议建立, 之后也可能借此进行配置通信, 先暂时标记, 以后研究配置同步时继续钻研.

2021-01-13 23:00:41.679  INFO 21212 --- [           main] b.s.s.d.w.WebsocketSyncDataConfiguration : you use websocket sync soul data.......
2021-01-13 23:00:42.244  INFO 21212 --- [           main] o.d.s.p.s.d.w.WebsocketSyncDataService   : websocket connection is successful.....

由于网关已经启动, 端口是9195, 随便在网址上访问下 localhost:9195 , 返回

{
   
    code: -107,
    message: "Can not find selector, please check your co
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值