美文网首页
sandbox-repeater源码

sandbox-repeater源码

作者: Rechel_uniq | 来源:发表于2021-10-20 18:39 被阅读0次

    下载源码jvm-sandbox-repeater/user-guide-cn.md at master · alibaba/jvm-sandbox-repeater · GitHub

    • 通过阅读说明了解功能

      提供流量录制回放功能

      其中repeater-console是流量管理系统的简单实现

    • 明确目标

      熟悉整个实现机制

      针对支持服务,做相应录制回放系统改造|开发

      针对不支持的协议|组件,能进行开发支持

    • 按照说明初步使用

      本地模式

      • 将bin/repeater.properties配置中repeat.standalone.mode设置为true

      • 执行bin/bootstrap.sh 部署并启动

    • 明确阅读目的

      了解本地模式的实现

    • 了解各模块的功能

      bin 部署/启动命令目录

      hessian-lite hessian协议轻量级版本

      repeater-aide(助手)各种工具类

      repeater-client spring容器改造类

      repeater-console 录制回放平台

      • repeater-console-common 公共类定义

      • repeater-console-dal 数据库操作

      • repeater-console-service 逻辑层

      • repeater-console-start 服务入口

      repeater-module sandbox模块实现

      repeater-plugin-api 公共model和api

      repeater-plugin-core 核心实现逻辑

      repeater-plugin-plugins repeater支持的协议|组件

    • 了解模块间的依赖关系

      repeater-console-start  流量录制回放系统入口程序
      
      - repeater-client
      
      - repeater-console-service
      
      - - repeater-console-dal
      
      - - - repeater-console-common
      
      - - - - repeater-plugin-api
      
      - - - - - sandbox-api
      
      - - - - - - sandbox-common-api
      
      - - repeater-plugin-core
      
      - - - sandbox-api
      
      - - - repeater-plugin-api
      
      - - - - sandbox-api
      
      - - - - repeater-aide
      
      - - - hessian-lite
      
      - - - - repeater-aide
      
      repeater-module  基于jvm-sandbox的扩展module实现
      
      - repeater-plugin-core
      
      - sandbox-api
      
      - 运行时加载plugins下的插件
      

      通过梳理可见,repeater-console-start 和repeater-module是主要的入口模块|启动程序

      其中了解repeater-module需要先了解jvm-sandbox的应用和原理

    • Jvm-sandbox https://github.com/alibaba/jvm-sandbox/wiki

      核心api:

        执行事件
      
        模块生命周期
      
    • 细读源码了解具体实现

      repeater-module

        • RepeaterModule

          实现了sandbox接口Module,ModuleLifecycle,onload 方法初始化日志框架,agent方式运行会通过spring激活bean。

          • onLoad

            如果是agent方式启动sandbox,则记录spring加载的bean

          • loadCompleted

            broadcaster:消息广播服务;用于采集流量之后的消息分发,比如本地模式将录制和回放的结果写入文件

            invocationListener:把broadcaster包装成监听器

            ClassloaderBridge:构建了一个类加载器桥接器

            initialize:初始化

            heartbeatHandler:服务探活

          • initialize

            装载录制协议插件,录制流量

            装载回放器,回放流量

            装载消息订阅器

            将线程包装成ttl

    image image.gif

    未完待续......

    相关文章

      网友评论

          本文标题:sandbox-repeater源码

          本文链接:https://www.haomeiwen.com/subject/xgztaltx.html