Skip to content

服务拆分与职责划分

**本文引用的文件** - [lemes-business-devicemate/pom.xml](file://lemes-cloud/lemes-business-devicemate/pom.xml) - [lemes-service-dm-common/pom.xml](file://lemes-cloud/lemes-business-devicemate/lemes-service-dm-common/pom.xml) - [lemes-service-dm-device/pom.xml](file://lemes-cloud/lemes-business-devicemate/lemes-service-dm-device/pom.xml) - [lemes-service-dm-store/pom.xml](file://lemes-cloud/lemes-business-devicemate/lemes-service-dm-store/pom.xml) - [lemes-service-dm-workflow/pom.xml](file://lemes-cloud/lemes-business-devicemate/lemes-service-dm-workflow/pom.xml) - [lemes-service-dm-common-server/application.yml](file://lemes-cloud/lemes-business-devicemate/lemes-service-dm-common/lemes-service-dm-common-server/src/main/resources/application.yml) - [lemes-service-dm-device-server/application.yml](file://lemes-cloud/lemes-business-devicemate/lemes-service-dm-device/lemes-service-dm-device-server/src/main/resources/application.yml) - [lemes-service-dm-store-server/application.yml](file://lemes-cloud/lemes-business-devicemate/lemes-service-dm-store/lemes-service-dm-store-server/src/main/resources/application.yml) - [lemes-service-dm-workflow-server/application.yml](file://lemes-cloud/lemes-business-devicemate/lemes-service-dm-workflow/lemes-service-dm-workflow-server/src/main/resources/application.yml) - [lemes-service-dm-common-server/UserController.java](file://lemes-cloud/lemes-business-devicemate/lemes-service-dm-common/lemes-service-dm-common-server/src/main/java/com/lenovo/lemes/service/dm/common/controller/UserController.java) - [lemes-service-dm-common/readme.md](file://lemes-cloud/lemes-business-devicemate/lemes-service-dm-common/readme.md)

目录

  1. 引言
  2. 项目结构
  3. 核心组件
  4. 架构总览
  5. 详细组件分析
  6. 依赖分析
  7. 性能考虑
  8. 故障排查指南
  9. 结论
  10. 附录

引言

本文件面向DeviceMate项目的架构师与开发团队,系统阐述lemes-cloud聚合工程中的服务拆分与职责划分。重点解析以下四个微服务模块的边界与定位:

  • lemes-service-dm-common:公共业务服务,承担用户管理、权限控制、组织架构、字典管理等通用能力
  • lemes-service-dm-device:设备管理服务,覆盖设备台账、维保计划、工单流程、点检巡检等专业领域
  • lemes-service-dm-store:仓储管理服务,覆盖库存管理、入出库流程、调拨转移、供应商管理等业务能力
  • lemes-service-dm-workflow:工作流服务,提供流程引擎集成、任务管理、表单处理等技术支撑

同时,本文总结服务拆分的设计原则(单一职责、高内聚低耦合、业务域边界划分),并给出服务间依赖关系图与调用链路图,说明服务发现与注册机制在整体架构中的位置。

项目结构

lemes-cloud采用“父聚合工程 + 多业务域子模块”的层次化结构。业务域聚合lemes-business-devicemate下包含四大微服务模块,每个模块进一步细分为server与common两部分,分别承载运行时服务与共享能力。

图表来源

章节来源

核心组件

本节从职责边界、功能定位与数据访问拦截策略三个维度,对四大微服务模块进行概览式剖析。

  • 公共业务服务(lemes-service-dm-common)

    • 职责边界:统一的用户、角色、权限、部门、资源、消息、字典等通用能力
    • 功能定位:为其他业务服务提供认证授权、组织架构、国际化、全局序列号等基础能力
    • 数据访问拦截:通过application.yml中mybatis拦截器规则,限定查询/更新范围,确保跨服务安全与一致性
  • 设备管理服务(lemes-service-dm-device)

    • 职责边界:设备全生命周期管理与运维相关流程
    • 功能定位:设备台账、维保计划、工单、点检巡检、异常分类、计量校准、OEEMTTR统计等
    • 数据访问拦截:通过application.yml中mybatis拦截器规则,限定查询/更新范围,聚焦设备相关操作
  • 仓储管理服务(lemes-service-dm-store)

    • 职责边界:物料与部件的仓储业务
    • 功能定位:库存主数据、入出库、盘点、调拨、报损、个人借用归还、供应商与单位管理等
    • 数据访问拦截:通过application.yml中mybatis拦截器规则,限定查询/更新范围,聚焦仓储相关操作
  • 工作流服务(lemes-service-dm-workflow)

    • 职责边界:流程引擎集成与表单处理
    • 功能定位:流程定义、节点配置、任务执行、流程日志、审计与回溯、系统字典与角色用户等
    • 数据访问拦截:通过application.yml中mybatis拦截器规则,限定查询/更新范围,聚焦流程相关操作

章节来源

架构总览

lemes-cloud整体采用微服务架构,以服务为单位独立开发、测试与部署。公共业务服务(dm-common)作为通用能力中心,被设备、仓储、工作流等业务服务复用。各业务服务内部遵循server/common分层,server承载对外HTTP接口与业务编排,common承载共享模型与工具。

说明

  • 服务发现与注册:各服务启动后向Nacos注册,客户端通过Nacos进行服务发现
  • 通信方式:服务间调用建议使用HTTP/REST或RPC框架(如Feign),由网关统一接入
  • 数据访问:各服务通过各自application.yml中的MyBatis拦截器规则,限定SQL访问范围,保障数据隔离与安全

详细组件分析

公共业务服务(lemes-service-dm-common)

  • 职责与边界
    • 用户管理:新增、查询、更新、删除、导出、角色授权、权限码查询等
    • 权限控制:基于用户的角色与资源,提供权限码查询与校验
    • 组织架构:部门、工厂等组织单元的维护与查询
    • 字典管理:系统级字典与多语言支持
    • 资源与消息:资源目录、消息推送等
  • 关键控制器示例
    • 用户控制器:提供用户增删改查、角色授权、权限码查询等接口
  • 数据访问拦截
    • 通过application.yml中mybatis拦截器规则,限定查询/更新范围,避免越权与误操作

图表来源

章节来源

设备管理服务(lemes-service-dm-device)

  • 职责与边界
    • 设备台账:设备主数据、规格参数、计量表、变更历史等
    • 维保计划:保养标准、保养任务、保养工单
    • 点检巡检:点检计划、标准、任务与检查清单
    • 异常与问题:异常项、问题分类、描述
    • 统计分析:MTTR、OEE等指标
  • 数据访问拦截
    • 通过application.yml中mybatis拦截器规则,限定设备相关查询/更新范围

章节来源

仓储管理服务(lemes-service-dm-store)

  • 职责与边界
    • 库存主数据:库存主表、明细、安全库存
    • 入出库流程:入库单、出库单、个人借用/归还、报损
    • 调拨转移:调拨订单与尾单
    • 供应商与单位:供应商、产品线、产品型号、单位
    • 统计分析:库存价值统计、KPI统计
  • 数据访问拦截
    • 通过application.yml中mybatis拦截器规则,限定仓储相关查询/更新范围

章节来源

工作流服务(lemes-service-dm-workflow)

  • 职责与边界
    • 流程引擎:流程定义、节点配置、运行时任务
    • 表单处理:流程表单、系统字典、角色与用户
    • 审计与日志:流程审计日志、流程日志、中断与恢复
  • 数据访问拦截
    • 通过application.yml中mybatis拦截器规则,限定流程相关查询/更新范围

章节来源

依赖分析

  • 模块内聚性
    • 每个服务内部均包含server与common两个子模块,server负责对外接口与业务编排,common负责共享模型与工具,符合高内聚低耦合原则
  • 服务间依赖
    • 公共业务服务(dm-common)为设备、仓储、工作流等服务提供通用能力,形成“通用能力中心”与“业务域服务”的依赖关系
  • 数据访问隔离
    • 各服务通过application.yml中的MyBatis拦截器规则,限定SQL访问范围,避免跨域误操作与数据越权

图表来源

性能考虑

  • 单一职责与高内聚
    • 服务边界清晰,避免交叉职责导致的性能瓶颈与复杂度上升
  • 数据访问拦截
    • 通过拦截器限制SQL范围,减少不必要的查询与更新,提升响应速度与数据库负载可控性
  • 服务拆分与扩展
    • 将通用能力下沉至dm-common,降低重复实现成本,便于横向扩展与版本演进

故障排查指南

  • 常见问题定位
    • 用户/权限相关:优先检查dm-common的用户与角色接口返回值与权限码查询结果
    • 设备相关:核对dm-device的设备台账、维保、工单、点检等接口返回
    • 仓储相关:核对dm-store的库存、入出库、调拨、报损等接口返回
    • 流程相关:核对dm-workflow的流程定义、节点配置、任务执行与日志
  • 数据访问问题
    • 若出现越权或误操作,检查对应服务的application.yml中MyBatis拦截器规则是否生效
  • 服务发现与注册
    • 确认各服务已正确注册至Nacos,并能在网关层正常路由

章节来源

结论

lemes-cloud在DeviceMate项目中通过“公共能力中心+多业务域服务”的模式实现了高内聚低耦合的服务拆分。dm-common提供统一的用户、权限、组织、字典等通用能力,dm-device、dm-store、dm-workflow分别聚焦设备、仓储、流程三大业务域。配合Nacos服务发现与注册、MyBatis拦截器的数据访问控制,整体架构具备良好的可维护性、可扩展性与安全性。建议在后续迭代中持续完善服务契约、监控与可观测性,确保服务间调用链路清晰、性能稳定。

附录

  • 服务拆分最佳实践
    • 明确业务域边界,避免跨域耦合
    • 将通用能力下沉至公共服务,减少重复实现
    • 使用拦截器或中间件控制数据访问范围,确保安全与一致
    • 在网关层统一接入与路由,结合服务发现实现弹性伸缩
    • 为每个服务建立完善的监控与日志体系,快速定位问题