Tinyid 分布式ID生成系统使用教程

本文介绍了基于Ionic和Angular的开源项目ionic-babythings,它是一个用于跟踪儿童用品的管理系统,强调了其跨平台特性、Angular的状态管理和SQLite数据库的本地存储。项目适用于家庭、托儿所和学校场景,具有响应式设计和数据安全特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Tinyid 分布式ID生成系统使用教程

tinyid ID Generator id生成器 分布式id生成系统,简单易用、高性能、高可用的id生成系统 项目地址: https://gitcode.com/gh_mirrors/ti/tinyid

1. 项目介绍

Tinyid 是滴滴开发的一款分布式ID生成系统,基于美团(Leaf)的 leaf-segment 算法升级而来。它不仅支持数据库多主节点模式,还提供了 tinyid-client,使得ID生成更加简单易用、高性能和高可用。Tinyid 提供了 REST API 和 Java 客户端两种方式接入,适用于各种分布式系统中的ID生成需求。

2. 项目快速启动

2.1 克隆代码

首先,克隆 Tinyid 的代码库到本地:

git clone https://github.com/didi/tinyid.git

2.2 创建数据库表

进入 tinyid-server 目录,并使用提供的 SQL 文件创建数据库表:

cd tinyid/tinyid-server/
mysql -u root -p < db.sql

2.3 配置数据库连接

编辑 tinyid-server/src/main/resources/offline/application.properties 文件,配置数据库连接信息:

datasource.tinyid.names=primary
datasource.tinyid.primary.driver-class-name=com.mysql.jdbc.Driver
datasource.tinyid.primary.url=jdbc:mysql://ip:port/databaseName?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8
datasource.tinyid.primary.username=root
datasource.tinyid.primary.password=123456

2.4 启动 Tinyid 服务

进入 tinyid-server 目录,执行启动脚本:

cd tinyid-server/
sh build.sh offline
java -jar output/tinyid-server-xxx.jar

2.5 使用 REST API 获取 ID

启动服务后,可以通过 REST API 获取 ID:

curl 'http://localhost:9999/tinyid/id/nextId?bizType=test&token=0f673adf80504e2eaa552f5d791b644c'

2.6 使用 Java 客户端获取 ID

在 Maven 项目中添加依赖:

<dependency>
    <groupId>com.xiaoju.uemc.tinyid</groupId>
    <artifactId>tinyid-client</artifactId>
    <version>${tinyid.version}</version>
</dependency>

在 classpath 下创建 tinyid_client.properties 文件:

tinyid.server=localhost:9999
tinyid.token=0f673adf80504e2eaa552f5d791b644c

使用 Java 代码获取 ID:

Long id = TinyId.nextId("test");
List<Long> ids = TinyId.nextId("test", 10);

3. 应用案例和最佳实践

3.1 应用案例

Tinyid 广泛应用于分布式系统中,如订单系统、用户系统、日志系统等,用于生成全局唯一的ID。例如,在订单系统中,每个订单都需要一个唯一的ID,Tinyid 可以高效地生成这些ID。

3.2 最佳实践

  • 多主节点模式:Tinyid 支持数据库多主节点模式,可以提高系统的可用性和性能。
  • 本地缓存:通过 tinyid-client 在本地缓存号段,减少对服务端的依赖,提高性能。
  • 批量获取:在需要大量ID的场景下,使用批量获取接口,减少网络开销。

4. 典型生态项目

Tinyid 作为一个分布式ID生成系统,可以与其他分布式系统结合使用,如:

  • 分布式数据库:如 MySQL、PostgreSQL 等,用于存储生成的ID。
  • 消息队列:如 Kafka、RabbitMQ 等,用于传递生成的ID。
  • 分布式缓存:如 Redis、Memcached 等,用于缓存生成的ID,提高访问速度。

通过这些生态项目的结合,Tinyid 可以更好地服务于各种分布式系统,提供高效、可靠的ID生成服务。

tinyid ID Generator id生成器 分布式id生成系统,简单易用、高性能、高可用的id生成系统 项目地址: https://gitcode.com/gh_mirrors/ti/tinyid

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

平依佩Ula

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值