Java微服务构建需遵循“单一职责+独立部署+轻量通信”,以DDD限界上下文划分服务(如user-service、order-service),禁用技术层拆分;选用精简Spring Boot+Spring Cloud Alibaba,独立jar部署;通过Feign或消息队列通信,禁跨库直连与共享实体;配套Docker/K8s/监控/链路追踪实现基础设施即代码。
Java微服务模块的构建,核心在于“单一职责+独立部署+轻量通信”。不是简单把代码按包拆开,而是围绕业务能力划分边界,用技术手段保障自治性。
从领域驱动设计(DDD)出发,识别核心业务子域。比如电商系统中,“用户管理”“订单处理”“库存校验”应是三个独立上下文,各自拥有完整数据模型和业务逻辑,不共享数据库表或内部Service类。
口),内部实现细节对外不可见Spring Boot是主流选择,但需精简依赖:禁用默认Web容器外的冗余starter(如spring-boot-starter-data-mongodb若不用MongoDB就排除),优先使用Spring Cloud Alibaba或Spring Cloud Netflix(注意版本兼容性)做服务治理。
服务间调用首选同步HTTP(RestTemplate/Feign)或异步消息(RocketMQ/Kafka)。禁止直接JDBC跨库访问、禁止RPC直连未注册服务、禁止共享实体类jar(易引发版本冲突)。
每个服务配套Dockerfile、K8s Deployment YAML、Prometheus监控指标埋点(Micrometer)、ELK日志格式规范(JSON结构化输出)。