Gend(Go版Vesta) id发生器

主页:https://jsen-joker.github.io/gend

借鉴vesta(java)的设计思路,这里实现了一个go版本的ID生成器,可以保障无论是在嵌入式版本、rpc版本还是rest风格,所有模块的id都保证唯一性。

Gend使用GO进行开发,但这里实现了一个java调用的jar,也可以使用jna来实现一个更易用的、适合spring boot的jar包;由于核心调用是使用go的,所以其性能相对用纯java来说会更高;

Gend的使用模式主要分为三种:

1、嵌入式方式,这是最简单的部署方式,使用提供的jar,和编译go的动态so,可以方便的实现嵌入式调用,由于是嵌入式模式,这里使用机器码(machineId)来保障各个服务之间的id的唯一性,因此,不可避免的在服务之间无法保障序列号的递增性(粗鲁有序);

2、grpc版:这里使用grpc实现远程调用,需要先启动gend的服务端,然后开启和嵌入式一样,只要调用Facade,就会自动使用grpc调用远程的服务生成id;

3、rest版:由于服务端技术的丰富性,这里提供了rest的api来保障其他技术对服务器的调用,只要开启rest服务器,服务端就可以方便地调用api生成id;

猜你喜欢

转载自blog.csdn.net/jsenht/article/details/85284796