Spring Boot 工程集成全局唯一ID生成器 Vesta

时间:2024-04-13 11:17:39

Spring Boot 工程集成全局唯一ID生成器 Vesta
Vesta 是一款通用的 ID产生器,互联网俗称统一发号器,其具有几大很具有优势的特性:

  • 全局唯一

  • 粗略有序

  • 可反解

  • 可制造

  • 分布式

而且支持三种发布模式

  • 嵌入式发布模式
  • 中心服务器发布模式
  • REST 发布模式

根据业务的性能需求,它可以产生 最大峰值型最小粒度型 两种类型的 ID,它的实现架构使其具有高性能,高可用和可伸缩等互联网产品需要的质量属性,是一款通用的高性能的发号器产品。

本文就在 Spring Boot项目中将 Vesta耍起来!

基础工程搭建

Spring Boot基础工程的搭建我不再赘述,创建好工程后 pom中需要加入如下依赖:

Spring Boot 工程集成全局唯一ID生成器 Vesta

对应的 Jar包去编译一下 Vesta源码即可获得

Vesta 配置导入

  • 在项目resources目录中加入 Vesta的配置文件

引入vesta-rest.properties,配置如下:

Spring Boot 工程集成全局唯一ID生成器 Vesta

引入 vesta-rest-main.xml,配置如下:

Spring Boot 工程集成全局唯一ID生成器 Vesta

好,接下来我们创建一个 Config配置类来将 vesta-rest-main.xml配置文件加载进项目

  • 创建 UidConfig配置类

Spring Boot 工程集成全局唯一ID生成器 Vesta

编写 Vesta Service

这里面包含的是和 ID生成器相关的几个重要工具接口,主要有:

  • genId 生成全局唯一 ID号
  • explainId 反解全局唯一 ID号,得到可以解释 ID号含义的 JSON数据
  • makeId 手工制造 ID

来看代码吧
Spring Boot 工程集成全局唯一ID生成器 Vesta

编写测试 Controller

我们针对上述 UidService中提供的三个工具接口来各自编写一个测试接口:

Spring Boot 工程集成全局唯一ID生成器 Vesta

实验验证

  • 实验一

首先我们用浏览器调用接口 genid,来返回生成的全局唯一 ID流水号,一切都是那么的简单优雅:

Spring Boot 工程集成全局唯一ID生成器 Vesta

  • 实验二

由于 Vesta生成的全局唯一流水号具有 可反解 的优良特性,因此我们可以先生成一个流水号,然后调用 expid接口来反解出流水号所代表的意义:

Spring Boot 工程集成全局唯一ID生成器 Vesta

后 记

由于能力有限,若有错误或者不当之处,还请大家批评指正,一起学习交流!

希望此文能帮到大家的同时,也听听大家的观点。欢迎留言讨论,加关注,分享你的高见!持续更新

我本人邀约各大BATJ架构大牛共创Spring Boot构建微服务架构的交流社区。 (群号:364677697)欢迎各路架构师、开发者,学习与交流使用Spring Boot诸多强大组件的实战经验。

为什么某些人会一直比你优秀,是因为他本身就很优秀还一直在持续努力变得更优秀,而你是不是还在满足于现状内心在窃喜!

合理利用自己每一分每一秒的时间来学习提升自己,不要再用"没有时间“来掩饰自己思想上的懒惰!趁年轻,使劲拼,给未来的自己一个交代

  • To-陌霖Java架构

分享互联网最新文章 关注互联网最新发展