MateCloud单体微服务双模式:如何一键切换架构形态
MateCloud单体微服务双模式:如何一键切换架构形态
【免费下载链接】matecloud🔥MateCloud是一款基于Spring Cloud Alibaba的微服务架构。目前已经整合Spring Boot 4.0.7、 SpringCloud 2025、Spring Cloud Alibaba 2025、Spring Security Oauth2、Feign、Dubbo、JetCache、RocketMQ等,支持多租户的低代码平台,Saas平台开发套件项目地址: https://gitcode.com/GitHub_Trending/ma/matecloud
MateCloud是一款基于Spring Cloud Alibaba的微服务架构,目前已经整合Spring Boot 4.0.7、Spring Cloud 2025、Spring Cloud Alibaba 2025等技术栈,支持多租户的低代码平台,提供Saas平台开发套件。其创新的单体微服务双模式架构,让开发者可以通过简单配置实现架构形态的一键切换,极大降低了中小团队的部署门槛。
为什么需要单体微服务双模式架构?
在传统的微服务架构中,通常需要部署多个独立进程以及相关的中间件,这对于中小团队或开发阶段来说,无疑增加了部署和维护的复杂性。MateCloud团队深刻理解这一痛点,设计出了独特的单体微服务双模式架构。
通过这一架构,开发者可以使用同一套代码库,根据实际需求灵活选择部署形态:在开发阶段或中小规模应用时,选择单体模式可以大幅简化部署流程;而当应用规模增长需要更高的可扩展性时,又能无缝切换到微服务模式。
MateCloud双模式架构概览
MateCloud的架构设计充分考虑了两种部署模式的需求,整体架构如下:
从架构图中可以看到,MateCloud主要包含以下几个核心部分:
- 接入层:包括Vue 3 Admin、移动端、桌面端和第三方系统
- 网关层:基于Spring WebFlux实现的mate-gateway
- 业务服务层:采用DDD架构设计的多个业务服务
- 能力层:丰富的 starters组件,支持按需引入
- 基础设施层:包括MySQL、Redis、RabbitMQ等基础组件
一键切换的核心机制:mate.rpc.mode属性
MateCloud实现双模式切换的核心在于一个简单的配置属性:mate.rpc.mode。通过将该属性设置为dubbo或local,即可在微服务模式和单体模式之间切换。
微服务模式(默认)
当mate.rpc.mode=dubbo时,系统将以微服务模式运行:
- 使用Dubbo作为RPC框架进行服务间通信
- 需要Nacos作为服务发现和配置中心
- 各业务服务独立部署为多个进程
单体模式
当mate.rpc.mode=local时,系统将以单体模式运行:
- 所有业务服务(auth + system + admin + notice)合并为一个JAR包
- 服务间通信通过本地调用实现,无需网络开销
- 不需要Nacos和Dubbo,降低部署复杂度
单体模式部署步骤
1. 编译打包
使用以下命令编译打包单体模式应用:
git clone https://gitcode.com/GitHub_Trending/ma/matecloud cd matecloud mvn clean package -pl mate-monolith -am -Pmonolith2. 启动应用
单体模式启动非常简单,只需运行生成的JAR文件:
java -jar mate-monolith/target/mate-monolith.jar注意:单体模式下,Gateway仍需独立部署,因为WebFlux与Servlet存在Spring Boot硬约束,无法共存。
3. 验证部署
访问以下地址验证单体应用是否启动成功:
curl http://localhost:9000/api/v1/auth/captcha如果返回验证码信息,则说明单体应用启动成功。
微服务模式部署步骤
1. 编译打包
使用默认命令编译打包微服务模式应用:
mvn clean package2. 启动中间件
微服务模式需要启动Nacos等中间件:
# 启动Nacos cd deploy ./init-nacos.sh3. 启动各服务
依次启动各微服务:
# 启动认证服务 java -jar mate-auth/target/mate-auth.jar # 启动系统服务 java -jar mate-biz/mate-system/target/mate-system.jar # 启动通知服务 java -jar mate-biz/mate-notice/target/mate-notice.jar # 启动网关服务 java -jar mate-gateway/target/mate-gateway.jar4. 验证部署
访问网关地址验证微服务是否启动成功:
curl http://localhost:9910/api/v1/auth/captcha如果返回验证码信息,则说明微服务应用启动成功。
双模式架构的优势
开发效率提升
- 简化开发环境:单体模式下无需启动多个服务和中间件,降低了开发环境的复杂度
- 快速原型验证:新功能可以先在单体模式下快速验证,稳定后再在微服务模式下部署
- 统一代码库:避免了维护多套代码的麻烦,一套代码支持两种部署模式
部署灵活性
- 按需选择:根据应用规模和团队大小选择合适的部署模式
- 平滑过渡:随着应用规模增长,可以从单体模式平滑过渡到微服务模式
- 降低门槛:中小团队可以先从单体模式入手,逐步掌握微服务架构
资源优化
- 开发环境:单体模式大幅减少了开发环境的资源占用
- 测试环境:可以根据测试需求灵活选择部署模式,节约测试资源
- 生产环境:小规模应用可以选择单体模式减少服务器资源占用
双模式架构的实际应用场景
场景一:初创团队快速启动
对于初创团队而言,资源有限,团队规模小,采用单体模式可以快速启动项目,专注于业务逻辑实现,而不必在架构复杂性上花费过多精力。
场景二:开发与生产环境分离
在开发环境使用单体模式提高开发效率,而在生产环境根据实际负载选择合适的模式:小规模应用使用单体模式,大规模应用使用微服务模式。
场景三:教学与学习
对于学习微服务架构的开发者来说,MateCloud的双模式架构提供了绝佳的学习机会,可以在同一套代码中对比单体和微服务架构的差异,深入理解微服务设计思想。
结语
MateCloud的单体微服务双模式架构,通过一个简单的配置实现了两种部署形态的无缝切换,既保留了微服务架构的可扩展性,又降低了中小团队的使用门槛。这种创新设计体现了MateCloud团队对开发者体验的深刻理解,为微服务架构的落地提供了一种新的思路。
无论是初创团队、中小规模企业,还是需要快速迭代的项目,MateCloud的双模式架构都能为你提供灵活高效的解决方案。不妨尝试一下,体验一键切换架构形态的便捷与高效!
【免费下载链接】matecloud🔥MateCloud是一款基于Spring Cloud Alibaba的微服务架构。目前已经整合Spring Boot 4.0.7、 SpringCloud 2025、Spring Cloud Alibaba 2025、Spring Security Oauth2、Feign、Dubbo、JetCache、RocketMQ等,支持多租户的低代码平台,Saas平台开发套件项目地址: https://gitcode.com/GitHub_Trending/ma/matecloud
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考