Поддержка Spring Boot 3.4.0
Namespaces.firstNotBlank
с использованием String-инструментов Spring (@Chivenh)org.springframework.boot:spring-boot-dependencies
до v3.4.0
org.springframework.cloud:spring-cloud-dependencies
до v2024
com.google.guava:guava
до v33.3.1-jre
org.mybatis:mybatis
до v3.5.17
org.axonframework:axon-bom
до v4.10.4
com.github.spotbugs
до v6.0.26
junit5
до v5.11.1
org.junit.jupiter:junit-jupiter-params
до v5.11.0
org.testcontainers:testcontainers-bom
до v1.20.4
gradle
до v8.11.1
CacheClock
.EnsureIdSegment
на UPDATE_UPSERT_AFTER_OPTIONS
для снижения количества запросов к базе данных.com.google.guava:guava
до v33.3.0-jre
.junit5
до v5.11.0
.org.junit.jupiter:junit-jupiter-params
до v5.11.0
.org.testcontainers:testcontainers-bom
до v1.20.1
.gradle
до v8.10
.org.springframework.cloud:spring-cloud-dependencies
до v2023.0.3
.org.springframework.boot:spring-boot-dependencies
до v3.3.2
.org.axonframework:axon-bom
до v4.10.0
.com.github.spotbugs
до v6.0.20
.org.hamcrest:hamcrest
до v3
.org.testcontainers:testcontainers-bom
до v1.20.1
.gradle
до v8.10
.record
на данные классы (data class
) для повышения совместимости с Java 8junit5
до v5.10.3
org.springdoc:springdoc-openapi-starter-webflux-ui
до v2.6.0
DatePrefixIdConverter
для поддержки строковых ID с префиксом датыSegmentIdStat
добавляет поддержку GroupedKey
DatePrefix
org.springframework.boot:spring-boot-dependencies
до версии v3.3.1
dependency org.springframework.cloud:spring-cloud-dependencies
до версии v2023.0.2
com.github.spotbugs
до версии v6.0.18
com.google.guava:guava
до версии v33.2.1-jre
gradle
до версии v8.8
docker/build-push-action
до версии v6
DatePrefixIdConverter
Использует алгоритм SegmentId, требуя от выходного ID строки следующего формата:
<префикс><дата><последовательность>
yyMMdd
BIZ-240618-25
Настройки
cosid:
segment:
enabled: true
distributor:
type: redis
provider:
date_prefix_no:
converter:
type: to_string
prefix: BIZ-
date-prefix:
enabled: true
pattern: yyMMdd
Статистика определения ID
{
"date_prefix_no": {
"kind": "StringSegmentId",
"actual": {
"kind": "SegmentChainId",
"fetchTime": 1718704101,
"maxId": 20,
"offset": 0,
"sequence": 0,
"step": 20,
"isExpired": false,
"isOverflow": false,
"isAvailable": true,
"groupedKey": {
"key": "",
"ttlAt": 9223372036854776000
},
"converter": {
"kind": "Radix62IdConverter",
"radix": 62,
"charSize": 11,
"padStart": true,
"maxId": 9223372036854776000
}
},
"converter": {
"kind": "PrefixIdConverter",
"prefix": "BIZ-",
"actual": {
"kind": "DatePrefixIdConverter",
"pattern": "yyMMdd",
"actual": {
"kind": "ToStringIdConverter",
"padStart": false,
"charSize": 10
}
}
}
}
}
YearGroupBySupplier
/ YearMonthGroupBySupplier
/ YearMonthDayGroupBySupplier
org.springframework.boot:spring-boot-dependencies
до v3.2.5
org.springframework.cloud:spring-cloud-dependencies
до v2023.0.1
com.github.spotbugs
до v6.0.14
org.axonframework:axon-bom
до v4.9.4
org.testcontainers:testcontainers-bom
до v1.19.8
flowable
до v7
gradle
до v8.7
YearGroupBySupplier
Использует алгоритм SegmentId, требование к выходному ID:
0
<префикс><год><последовательность>
BIZ-2024-00000231
cosid:
segment:
enabled: true
distributor:
type: redis
provider:
group_year_biz:
group:
by: year
pattern: yyyy
converter:
type: to_string
to-string:
pad-start: true
char-size: 8
prefix: BIZ-
group-prefix:
enabled: true
YearMonthGroupBySupplier
Использует алгоритм SegmentId, требование к выходному ID:
0
<префикс><год_месяц><последовательность>
BIZ-240516-00000061
cosid:
segment:
enabled: true
distributor:
type: redis
provider:
group_year_month_biz:
group:
by: year_month
pattern: yyyyMM
converter:
type: to_string
to-string:
pad-start: true
char-size: 8
prefix: BIZ-
group-prefix:
enabled: true
YearMonthDayGroupBySupplier
Использует алгоритм SegmentId, требование к выходному ID:
0
<префикс><год_месяц_день><последовательность>
BIZ-240516-00000001
cosid:
segment:
enabled: true
distributor:
type: redis
provider:
group_year_month_day_biz:
group:
by: year_month_day
pattern: yyMMdd
converter:
type: to_string
to-string:
pad-start: true
char-size: 8
prefix: BIZ-
group-prefix:
enabled: true
org.springframework.boot:spring-boot-dependencies
: v3.2.3
com.github.spotbugs
до версии v6.0.7
org.axonframework:axon-bom
до версии v4.9.3
org.testcontainers:testcontainers-bom
до версии v1.19.6
flowable
до версии v7
gradle
до версии v8.6
junit5
до версии v5.10.2
com.github.spotbugs
до v6.0.6
org.springframework.boot:spring-boot-dependencies
до v3.2.2
Официальный новый документ выпущен!
![]()
https://ahoowang.gitee.io/cosid/
dependency org.springframework.boot:spring-boot-dependencies
до v3.2.1
com.google.guava:guava
до v33
com.github.spotbugs
до v6.0.4
org.axonframework:axon-bom
до v4.9.2
org.mybatis:mybatis
до v3.5.15
Добавлена единица тестирования модульной схемы (
ModSpec
) — тест равномерности разделения
gradle
до v8.5
org.springframework.cloud:spring-cloud-dependencies
до v2023
com.github.spotbugs
до v6.0.2
org.gradle.test-retry
до v1.5.8
MongoDB
до 6.0.12
Поддержка
Spring-Boot 3.2.0
org.springframework.boot:spring-boot-dependencies
до v3.2.0
org.mybatis.spring.boot:mybatis-spring-boot-starter
до v3.0.3
Добавлена поддержка Activiti
IdGenerator
ActivitiIdGenerator
ActivitiIdGeneratorAutoConfiguration
для автоматической конфигурацииДобавлена поддержка Flowable
IdGenerator
FlowableIdGenerator
FlowableIdGeneratorAutoConfiguration
spring-boot v3.1.5
Улучшение статистики состояния
IdGenerator
com.github.spotbugs
до v5.1.2
org.openjdk.jmh
до v1.37
org.springdoc:springdoc-openapi-starter-webflux-ui
до v2.2.0
org.axonframework:axon-bom
до v4.8.2
Decorator
в ClockSyncCosIdGenerator
IdGenerator
, чтобы поддерживать отладку во время выполненияGET http://127.0.0.1:8080/actuator/cosid
{
"__share__": {
"kind": "StringSegmentId",
"actual": {
"kind": "SegmentChainId",
"fetchTime": 1692195877,
"maxId": 430,
"offset": 410,
"sequence": 410,
"step": 20,
"isExpired": false,
"isOverflow": false,
"isAvailable": true,
"converter": {
"kind": "Radix62IdConverter",
"radix": 62,
"charSize": 11,
"padStart": true,
"maxId": 9223372036854775807
}
},
"converter": {
"kind": "PrefixIdConverter",
"prefix": "COSID-",
"actual": {
"kind": "GroupedPrefixIdConverter",
"delimiter": "-",
"actual": {
"kind": "ToStringIdConverter",
"padStart": true,
"charSize": 8
}
}
}
}
}
Поддержка аннотаций
@Id
/@CosId
вspring-data-jdbc
@Id
/ @CosId
в spring-data-jdbc
, автоматическое присвоение первичного ключаcosid-proxy
(registry.cn-shanghai.aliyuncs.com/ahoo/cosid-proxy
) для удобства использования внутри Китаяcosid-proxy
Поддержка
spring-boot-actuator
CustomizeSegmentIdProperties
/ CustomizeSnowflakeIdProperties
, чтобы поддерживать конфигурацию Id через кодorg.axonframework:axon-bom
до версии v4.8.1
com.google.guava:guava
до версии v32.1.2-jre
com.github.spotbugs
до версии v5.1.0
spring-boot-actuator
Statistical
) APISegmentIdStat
)SnowflakeIdStat
)CosIdEndpoint
CosIdGeneratorEndpoint
CosIdStringGeneratorEndpoint
management:
endpoints:
web:
exposure:
include:
- cosid
- cosidGenerator
- cosidStringGenerator
GroupedIdSegmentDistributor
) share:
group:
by: year
converter:
type: to_string
to-string:
pad-start: true
char-size: 8
prefix: COSID-
year-prefix:
enabled: true
delimiter: "-"
IdConverter
) converter:
type: custom
custom:
type: me.ahoo.cosid.example.redis.controller.CustomIdConverter
org.springframework.boot:spring-boot-dependencies
до версии v3.1.1
Примечание к обслуживанию: (v2.x) Изменено на основной (main) ветви обслуживания
org.springframework.boot:spring-boot-dependencies
до v3.1.0
org.springframework.cloud:spring-cloud-dependencies
до v2022.0.3
cosid:
machine:
enabled: true
distributor:
type: mongo