Tinyid
Tinyid — это сервис генерации идентификаторов. Он предоставляет REST API и клиент на Java для получения идентификаторов. При использовании клиента на Java производительность более 10 миллионов запросов в секунду для одного экземпляра. Поддерживается версия JDK 1.7 и выше.
Начало работы
Клонирование кода
git clone https://github.com/didi/tinyid.git
Создание таблицы
cd tinyid/tinyid-server/ && create table with db.sql (mysql)
Конфигурация базы данных
cd tinyid-server/src/main/resources/offline
vi 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
Запуск tinyid-сервера
cd tinyid-server/
sh build.sh offline
java -jar output/tinyid-server-xxx.jar
REST API
nextId:
curl 'http://localhost:9999/tinyid/id/nextId?bizType=test&token=0f673adf80504e2eaa552f5d791b644c'
response:{"data":[2],"code":200,"message":""}
nextId Simple:
curl 'http://localhost:9999/tinyid/id/nextIdSimple?bizType=test&token=0f673adf80504e2eaa552f5d791b644c'
response: 3
with batchSize:
curl 'http://localhost:9999/tinyid/id/nextIdSimple?bizType=test&token=0f673adf80504e2eaa552f5d791b644c&batchSize=10'
response: 4,5,6,7,8,9,10,11,12,13
Get nextId like 1,3,5,7,9...
bizType=test_odd : delta is 2 and remainder is 1
curl 'http://localhost:9999/tinyid/id/nextIdSimple?bizType=test_odd&batchSize=10&token=0f673adf80504e2eaa552f5d791b644c'
response: 3,5,7,9,11,13,15,17,19,21
Клиент на Java (рекомендуется)
<dependency>
<groupId>com.xiaoju.uemc.tinyid</groupId>
<artifactId>tinyid-client</artifactId>
<version>${tinyid.version}</version>
</dependency>
tinyid_client.properties:
tinyid.server=localhost:9999
tinyid.token=0f673adf80504e2eaa552f5d791b644c
#(tinyid.server=localhost:9999/gateway,ip2:port2/prefix,...)
Long id = TinyId.nextId("test");
List<Long> ids = TinyId.nextId("test", 10);
Приглашаем внести свой вклад, создавая проблемы или отправляя запросы на вытягивание. См. Руководство по внесению вклада для ознакомления с рекомендациями.
Tinyid лицензирован под Apache License 2.0. Смотрите файл LICENSE.
Это не официальный продукт Didi (экспериментальный или иной), это просто код, который принадлежит Didi.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )