使用mermaid画一个类图

现在又一个微服务系统,包含7个子服务,common、model、server_client、user_service,question_service,judge_service,gateway,使用namespace区分服务

common包含Annotation,,Common,Constant,Exception,Utils

service_client包含UserFeignClient,QuestionFeignClient,JudgeFeignClient,分别由user_service、question_service、judge_service实现为UserInnerClient,QuestionInnerClient,JudgeInnerClient

user_service包含UserControllerUserServiceUserServiceImplUserMapper。

question_service包含QuestionController>QuestionServiceQuestionServiceImplQuestionMapper

QuestionControllerQuestionSubmitServiceQuestionSubmitServiceImplQuestionSubmitMapper

judge_service包含JudgeInnerControlllerJudgeServiceJudgeServiceImpl

JudgeServiceImplcodeSandboxFactorycodeSandboxProxycodeSandbox执行运行代码

JudgeServiceImplJudgeManagerJudgeStrategyJavaLanguageJudgeStrategy执行判题

user_service接口为/api/user/

question_service接口为/api/question/

judge_service接口为/api/judge/

user_service内部调用接口为/api/user/inner/

question_service内部调用接口为/api/question/inner/

judge_service内部调用接口为/api/judge/inner/

分别由service_client调用

请求首先传递到gateway网关,网关根据请求路径进行转发到对应的service服务中

classDiagram

     Feign客户端实现关系
    UserFeignClient <|.. UserInnerController
    QuestionFeignClient <|.. QuestionInnerController
    JudgeFeignClient <|.. JudgeInnerController

    namespace codeSandbox {
        class MainController
        class codeSandbox_CodeSandboxFactory
        class codeSandbox_CodeSandbox
        class CodeSandboxTemplate
        class CppNativeCodeSandbox
        class JavaNativeCodeSandbox
        class PythonNativeCodeSandbox
        class JavaDockerCodeSandbox
    }
    MainController --> codeSandbox_CodeSandboxFactory
    codeSandbox_CodeSandboxFactory --> codeSandbox_CodeSandbox
    codeSandbox_CodeSandbox <|.. CodeSandboxTemplate
    CodeSandboxTemplate <|.. CppNativeCodeSandbox
    CodeSandboxTemplate <|.. JavaNativeCodeSandbox
    CodeSandboxTemplate <|.. PythonNativeCodeSandbox
    CodeSandboxTemplate <|.. JavaDockerCodeSandbox

    RemoteleCodeSandbox --> MainController
classDiagram

     Feign客户端实现关系
    UserFeignClient <|.. UserInnerController
    QuestionFeignClient <|.. QuestionInnerController
    JudgeFeignClient <|.. JudgeInnerController