sofastack / sofa-tracer

SOFATracer is a component for the distributed system call trace. And through a unified traceId logging the logs of various network calls in the invoking link. These logs can be used for quick discovery of faults, service governance, etc.
Apache License 2.0
1.11k stars 375 forks source link

基于SOFAArk实现类加载器加载外置的SofaTracer的Spring Boot Starter插件 #478

Closed SoftwareKing closed 2 years ago

SoftwareKing commented 2 years ago

基于SOFAArk实现类加载器加载外置的SofaTracer的Spring Boot Starter插件,这样也能实现SofaTracer插件的升级自主可控不影响业务 @quaff @khotyn @nobodyiam @jjtyro @ujjboy

glmapper commented 2 years ago

SofaTracer

It's not a good idea

  1. Importing and exporting classes by SofaTracer itself makes relationships complicated and difficult to maintain

  2. Is there any particular scenario that requires a separate hot upgrade of the SofaTracer plugin, because introducing SOFAArk would complicate the business runtime structure

  3. SOFAArk mainly solves problems in two scenarios: 1. Dependency conflict; 2. Merge deployment; The logic of isolation is semantically independent, with plugins depending on Core and other components

SoftwareKing commented 2 years ago

用spring boot类加载器,加载外置的Spring Boot Starter呢?不需要热加载 @glmapper 你可以理解只加载外置的Spring Boot starter即可

glmapper commented 2 years ago

这个场景还是挺少的, @SoftwareKing 可以提供 PR 和 demo 来验证这个场景的有效性吗?相比于动态加载单个插件带来的问题,recompiler & redeploy 可能更简单

glmapper commented 2 years ago

这个问题不在 trace 组件部分讨论,可以在 sofa-ark 中继续讨论此场景 @SoftwareKing