1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/didiopensource-tinyid

Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

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 (рекомендуется)

Maven зависимость

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

Создание tinyid_client.properties в вашем classpath

tinyid_client.properties:

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

#(tinyid.server=localhost:9999/gateway,ip2:port2/prefix,...)

Код на Java

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

Общение

Сообщество Tinyid

Вклад

Приглашаем внести свой вклад, создавая проблемы или отправляя запросы на вытягивание. См. Руководство по внесению вклада для ознакомления с рекомендациями.

Лицензия

Tinyid лицензирован под Apache License 2.0. Смотрите файл LICENSE.

Примечание

Это не официальный продукт Didi (экспериментальный или иной), это просто код, который принадлежит Didi.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/didiopensource-tinyid.git
git@api.gitlife.ru:oschina-mirror/didiopensource-tinyid.git
oschina-mirror
didiopensource-tinyid
didiopensource-tinyid
master