使用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包含UserController→UserService→UserServiceImpl→UserMapper。
question_service包含QuestionController>QuestionService→QuestionServiceImpl→QuestionMapper
QuestionController→QuestionSubmitService→QuestionSubmitServiceImpl→QuestionSubmitMapper
judge_service包含JudgeInnerControlller→JudgeService→JudgeServiceImpl
JudgeServiceImpl→codeSandboxFactory→codeSandboxProxy→codeSandbox执行运行代码
JudgeServiceImpl→JudgeManager→JudgeStrategy→JavaLanguageJudgeStrategy执行判题
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