# 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