# new-leaf **Repository Path**: zooy/new-leaf ## Basic Information - **Project Name**: new-leaf - **Description**: 美团leaf改造jdk17版本,适配nacos。 - **Primary Language**: Unknown - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-09-15 - **Last Updated**: 2025-09-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 根据代码库结构和文件信息,该项目是一个基于 Kotlin 的 Spring Boot 应用程序,用于生成分布式 ID。项目名称为 `PeLeafidApplication`,其主要功能是通过分段(Segment)机制生成 ID,支持高并发场景下的唯一 ID 分配。 以下是该项目的 README.md 文件内容: --- # PeLeafidApplication PeLeafidApplication 是一个基于 Kotlin 和 Spring Boot 的分布式 ID 生成服务。该项目使用 Segment 机制来生成唯一 ID,适用于高并发场景下的 ID 分配需求。 ## 项目特点 - **分布式 ID 生成**:通过 Segment 机制生成唯一 ID,支持分布式系统中的 ID 分配。 - **高并发支持**:使用线程安全的 SegmentBuffer 来确保在高并发情况下的性能和稳定性。 - **灵活配置**:支持通过配置文件进行数据库连接和其他运行时参数的设置。 ## 技术栈 - Kotlin - Spring Boot - MyBatis Plus - Gradle ## 主要组件 - **PeLeafidApplication.kt**:Spring Boot 应用的主类。 - **LeafController.kt**:提供 REST API 接口,用于获取 Segment ID。 - **SegmentIDGenImpl.kt**:实现 ID 生成逻辑的核心类。 - **LeafAllocMapper.kt**:数据库操作接口,用于与数据库交互以更新和获取 ID。 - **LeafAlloc.kt**:数据库实体类,映射到数据库表 `leaf_alloc`。 - **SegmentBuffer.kt**:管理 Segment 的缓冲区,确保线程安全和高效 ID 分配。 ## 安装与运行 1. **克隆仓库**: ```bash git clone https://gitee.com/zooy/new-leaf.git ``` 2. **构建项目**: ```bash cd new-leaf ./gradlew build ``` 3. **运行应用**: ```bash ./gradlew bootRun ``` ## 使用说明 1. **获取 Segment ID**: 发送 GET 请求到 `/api/segment/get/{key}` 接口,其中 `{key}` 是业务标识符。 ```bash curl http://localhost:8080/api/segment/get/exampleKey ``` 2. **响应示例**: ```json { "id": 123456, "status": "SUCCESS" } ``` ## 数据库配置 确保在 `application.yml` 中正确配置数据库连接信息: ```yaml spring: datasource: url: jdbc:mysql://localhost:3306/your_database username: your_username password: your_password ``` ## 异常处理 - **NoKeyException**:当请求中未提供有效的业务标识符时抛出。 - **LeafServerException**:当服务器内部发生错误时抛出。 - **InitException**:当初始化过程中发生错误时抛出。 ## 日志记录 项目使用 SLF4J 进行日志记录,并提供了自定义的日志工厂和监听器以增强日志功能。 ## 许可证 该项目遵循 MIT 许可证。详情请参阅 [LICENSE](LICENSE) 文件。 --- 该项目提供了一个高效且可靠的分布式 ID 生成解决方案,适用于需要在分布式系统中生成唯一 ID 的场景。