ruanwenjun opened a new issue, #15960:
URL: https://github.com/apache/dolphinscheduler/issues/15960

   ### Search before asking
   
   - [X] I had searched in the 
[DSIP](https://github.com/apache/dolphinscheduler/issues/14102) and found no 
similar DSIP.
   
   
   ### Motivation
   
   In the previous binary package, the plugins are put at server/libs. 
   ```
   - dolphinscheduler-bin
      - api-server
        - bin
        - conf
        - libs 
      - master-server
        - bin
        - conf
        - libs 
      - worker-server
        - bin
        - conf
        - libs
      - alert-server
        - bin
        - conf
        - libs
   ```
   
   
   This will bring below problems:
   - Multiple copies of the plugin exist within different services, cause the 
binary package is very big.
   - Multiple copies of the plugin exist within different services, cause if we 
want to replace a plugin we need to replace it at different service.
   - It's difficult to support different version plugins, e.g. hive2, hive3
   
   ### Design Detail
   
   Firstly, we need to add a plugin directory, the binary package will be
   ```
   - dolphinscheduler-bin
     - api-server
     - master-server
     - alert-server
     - worker-server
     - plugins
       - task-plugin
       - alert-plugin
       - storage-plugin
       - registry-plugin
       - xx
   ```
   Then we need to shade the plugins and put them in target plugins.
   
   The server should only rely on `plugin-api`, cannot rely on plugins, and use 
child first classloader to load plugins, each plugin will have a classloader.
   
   
   ### Compatibility, Deprecation, and Migration Plan
   
   Compatibility with the previous version
   
   ### Test Plan
   
   Test by manual/e2e/UT
   
   ### Code of Conduct
   
   - [X] I agree to follow this project's [Code of 
Conduct](https://www.apache.org/foundation/policies/conduct)
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: 
[email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to