# platform-starters **Repository Path**: microservice-framework-org/platform-starters ## Basic Information - **Project Name**: platform-starters - **Description**: 平台基础设施 Starter 集合,提供 Redis、MySQL、MQ、Feign、XXL-Job 等自动配置模块 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-25 - **Last Updated**: 2026-04-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Platform Starters 平台基础设施 Starter 集合,提供 Redis、MySQL、MQ、Feign 等自动配置模块。 ## 📦 项目结构 ``` platform-starters/ ├── pom.xml # 父 POM,管理所有 starter ├── redis-starter/ # Redis starter 模块 │ ├── pom.xml │ └── src/ ├── mysql-starter/ # MySQL starter 模块 │ ├── pom.xml │ └── src/ ├── mq-starter/ # MQ starter 模块 │ ├── pom.xml │ └── src/ ├── feign-starter/ # Feign starter 模块 │ ├── pom.xml │ └── src/ ├── xxljob-starter/ # XXL-Job starter 模块 │ ├── pom.xml │ └── src/ ├── seata-starter/ # Seata 分布式事务 starter │ ├── pom.xml │ └── src/ └── sentinel-starter/ # Sentinel 流量控制与熔断降级 starter ├── pom.xml └── src/ ``` ## 🗂️ 模块说明 ### 1. redis-starter Redis 自动配置 Starter,提供分布式锁、缓存注解等功能。 **功能特性:** - ✅ 自动配置 RedisTemplate(JSON 序列化) - ✅ 分布式锁(基于 Redisson) - ✅ 缓存注解(@Cacheable) - ✅ RedisService 服务接口 - ✅ RedisUtils 工具类 **使用文档:** [redis-starter/README.md](redis-starter/README.md) ### 2. mysql-starter MySQL 自动配置 Starter,提供 MyBatis Plus、数据源配置等功能。 **功能特性:** - ✅ 自动配置 MyBatis Plus - ✅ 分页插件(支持 MySQL) - ✅ 驼峰命名转换 - ✅ BaseService 基础服务接口 - ✅ 数据范围注解(@DataScope) **使用文档:** [mysql-starter/README.md](mysql-starter/README.md) ### 3. mq-starter RabbitMQ 自动配置 Starter,提供消息发送、消费等功能。 **功能特性:** - ✅ 自动配置 RabbitTemplate - ✅ JSON 消息转换器 - ✅ 消息发送器(RabbitProducer) - ✅ 消息确认回调 - ✅ 监听器注解(@MQListener) **使用文档:** [mq-starter/README.md](mq-starter/README.md) ### 4. feign-starter OpenFeign 自动配置 Starter,提供声明式 REST 客户端功能。 **功能特性:** - ✅ 自动配置 Feign 客户端 - ✅ 请求拦截器 - ✅ 自定义错误解码器 - ✅ 日志支持 - ✅ 降级工厂 **使用文档:** [feign-starter/README.md](feign-starter/README.md) ### 5. xxljob-starter XXL-Job 分布式任务调度自动配置 Starter,提供任务调度、执行器管理等功能。 **功能特性:** - ✅ 自动配置 XxlJobSpringExecutor - ✅ 任务注解(@XxlJobTask) - ✅ 完整的配置支持 - ✅ 日志记录 **使用文档:** [xxljob-starter/README.md](xxljob-starter/README.md) ### 6. seata-starter Seata 分布式事务自动配置 Starter,提供全局事务、TCC 模式等分布式事务解决方案。 **功能特性:** - ✅ 自动配置 Seata Client - ✅ 全局事务注解(@GlobalTransactional) - ✅ TCC 模式支持 - ✅ AT 模式支持 - ✅ 多数据源事务管理 **使用文档:** [seata-starter/README.md](seata-starter/README.md) ### 7. sentinel-starter Sentinel 流量控制与熔断降级自动配置 Starter,提供网关限流、服务熔断、系统保护等功能。 **功能特性:** - ✅ 自动配置 Sentinel Gateway Filter(网关限流) - ✅ 自定义 API 分组与限流规则 - ✅ 熔断降级与系统保护 - ✅ 支持 Nacos 动态配置规则 - ✅ 自定义限流异常响应 - ✅ 并发线程数限制 **核心配置:** ```yaml # Sentinel 基础配置 spring: cloud: sentinel: enabled: true transport: dashboard: localhost:8080 port: 8719 datasource: ds1: nacos: server-addr: 127.0.0.1:8848 dataId: sentinel-gateway-rules groupId: DEFAULT_GROUP rule-type: gw-flow # 网关限流配置 platform: sentinel: gateway: enabled: true block-message: "请求过于频繁,请稍后再试" enable-api-definition: true enable-default-rules: true # 默认限流规则 auth-api-qps: 100 auth-api-burst: 50 user-api-qps: 200 user-api-burst: 100 login-qps: 50 login-burst: 20 # API 分组 api-groups: - name: "auth_api" patterns: - "/api/auth/**" - name: "user_api" patterns: - "/api/user/**" ``` **使用场景:** - 🛡️ 网关层 QPS 限流,防止恶意请求 - 🔌 服务熔断降级,避免雪崩效应 - ⚡ 热点参数限流,保护关键资源 - 📊 系统自适应保护,维持系统稳定性 **使用文档:** [sentinel-starter/README.md](sentinel-starter/README.md) ## 🚀 快速开始 ### 1. 添加依赖 在项目的 pom.xml 中添加所需 starter: ```xml com.platform redis-starter 1.0.0 com.platform mysql-starter 1.0.0 com.platform mq-starter 1.0.0 com.platform feign-starter 1.0.0 com.platform xxljob-starter 1.0.0 com.platform seata-starter 1.0.0-SNAPSHOT com.platform sentinel-starter 1.0.0-SNAPSHOT ``` ### 2. 配置应用 在 application.yml 中配置相应参数: ```yaml # Redis 配置 spring: redis: host: localhost port: 6379 # MySQL 配置 spring: datasource: url: jdbc:mysql://localhost:3306/your_database username: root password: your_password # RabbitMQ 配置 spring: rabbitmq: host: localhost port: 5672 username: guest password: guest # Feign 配置 feign: client: config: default: connectTimeout: 5000 readTimeout: 10000 # XXL-Job 配置 xxl: job: enabled: true admin: addresses: http://localhost:8080/xxl-job-admin executor: appname: xxl-job-executor port: 9999 # Seata 分布式事务配置 seata: enabled: true application-id: ${spring.application.name} tx-service-group: my_test_tx_group service: vgroup-mapping: my_test_tx_group: default grouplist: default: 127.0.0.1:8091 config: type: nacos nacos: server-addr: 127.0.0.1:8848 group: SEATA_GROUP data-id: seataServer.properties registry: type: nacos nacos: server-addr: 127.0.0.1:8848 group: SEATA_GROUP # Sentinel 流量控制配置 spring: cloud: sentinel: enabled: true transport: dashboard: localhost:8080 port: 8719 datasource: ds1: nacos: server-addr: 127.0.0.1:8848 dataId: sentinel-gateway-rules groupId: DEFAULT_GROUP rule-type: gw-flow platform: sentinel: gateway: enabled: true block-message: "请求过于频繁,请稍后再试" auth-api-qps: 100 user-api-qps: 200 login-qps: 50 ``` ### 3. 使用功能 参考各模块的 README.md 文档获取详细使用说明。 ## 💡 最佳实践 ### 1. Starter 选择原则 | 服务类型 | 推荐 Starter | 说明 | |---------|-------------|------| | **Gateway Service** | sentinel-starter, feign-starter, redis-starter | 网关需要限流、远程调用、缓存 | | **Auth Service** | mysql-starter, redis-starter, feign-starter | 认证服务需要数据库、缓存、远程调用 | | **User Service** | mysql-starter, redis-starter, feign-starter | 用户服务需要数据库、缓存、远程调用 | | **Order Service** | mysql-starter, redis-starter, seata-starter, feign-starter | 订单服务需要分布式事务 | | **Product Service** | mysql-starter, redis-starter, feign-starter | 商品服务需要数据库、缓存 | ### 2. 依赖引入注意事项 ✅ **推荐做法:** ```xml com.platform sentinel-starter provided ``` ❌ **不推荐:** ```xml com.platform platform-starters ``` ### 3. 配置优先级 配置来源优先级(从高到低): 1. 应用自身的 `application-{profile}.yml` 2. 应用的 `application.yml` 3. Nacos 配置中心的个性化配置 4. Nacos 配置中心的共享配置 5. starter 的默认配置 ### 4. Sentinel 使用建议 - **网关服务必配**:gateway-service 必须引入 sentinel-starter - **普通服务可选**:auth-service、user-service 等可以不引入 - **开发环境关闭**:开发时可在配置文件中设置 `spring.cloud.sentinel.enabled: false` - **生产环境启用**:生产环境建议开启并配置 Nacos 动态规则 ### 5. Seata 使用建议 - **跨服务事务**:涉及多个服务的写操作时使用 - **读操作不用**:纯查询操作不需要分布式事务 - **注意性能**:分布式事务有性能开销,合理设计业务边界 - **测试环境关闭**:本地开发可设置 `seata.enabled: false` ## 🔧 技术栈 - **Java**: 11 - **Spring Boot**: 2.7.14 - **Spring Cloud**: 2021.0.5 - **Spring Cloud Alibaba**: 2021.0.5.0 - **MyBatis Plus**: 3.5.3.1 - **Redisson**: 3.23.0 - **Hutool**: 5.8.20 - **Lombok**: 1.18.28 - **Sentinel**: 1.8.6 - **Seata**: 1.6.1 ## 📝 开发指南 ### 1. 添加新的 Starter 1. 在父 pom.xml 的 `` 中添加新模块 2. 创建新模块并继承父 POM 3. 实现自动配置类 4. 创建 `META-INF/spring.factories` 文件 5. 编写 README 文档 ### 2. 发布到私有仓库 ```bash # 编译打包 mvn clean package # 发布到 Nexus mvn deploy ``` ### 3. 版本管理 - 修改父 pom.xml 中的版本号 - 更新所有子模块的版本引用 - 提交 Git 并打 Tag ## ⚠️ 注意事项 1. **依赖冲突**:各 starter 的依赖版本已在父 POM 中统一管理,避免版本冲突 2. **按需引入**:根据项目需求选择需要的 starter,不必全部引入 3. **配置优先级**:starter 的配置可以被应用的 application.yml 覆盖 4. **自动装配**:所有 starter 都支持 Spring Boot 自动装配,无需手动配置 Bean ## 🔗 相关项目 - [platform-common](https://gitee.com/microservice-framework-org/platform-common) - 平台公共基础模块 - platform-gateway - 网关服务(待创建) - platform-auth - 认证服务(待创建) ## 📄 License Internal Use Only ## 👥 维护者 microservice-framework-org