内容简介:项目介绍 微服务时代,我们需要生产一个连续的友好的序列号,例如订单号等。变得比较麻烦。 这里我提供了两种业界常用的解决方案来实现这个分布式序列号生成组件。 使用集中式存储功能取步长进行分配。目前支持数...
项目介绍
微服务时代,我们需要生产一个连续的友好的序列号,例如订单号等。变得比较麻烦。
这里我提供了两种业界常用的解决方案来实现这个分布式序列号生成组件。
使用集中式存储功能取步长进行分配。目前支持数据库(Mysql)、Redis
使用雪花算法获取连续序列号,保证多服务器集群不重复
组件存在的目的就是屏蔽序列号底层实现,支持多样化的算法。让用户开箱即用。方便开发。
Maven支持
<dependency> <groupId>com.xuanner</groupId> <artifactId>xsequence-core</artifactId> <version>1.6</version> </dependency>
升级说明
v1.6
支持指定起始位置,例如需要60000起,那么就设置stepStart=60000,那么序列号就会从60000开始分配
简单使用
//redis方式获取
protected Sequence getRedisSequence() {
/**
* 参数说明如下:
* ip:redis连接ip
* port:redis连接port
* auth:如果 redis 设置了密码权限需要设置,没有就可以不用设置
* bizName:具体某中业务的序列号
* step:[可选] 默认1000,即每次取redis获取步长值,根据具体业务吞吐量来设置,越大性能越好,但是序列号断层的风险也就越大
*/
return RedisSeqBuilder.create().ip("xxx").port(6379).auth("xxx").step(1000).stepStart(
60000).bizName("redis_test8").build();
}
//db方式获取
protected Sequence getDbSequence() {
//数据源
DruidDataSource dataSource = new DruidDataSource();
dataSource.setUrl("xxx");
dataSource.setUsername("xxx");
dataSource.setPassword("xxx");
dataSource.setMaxActive(300);
dataSource.setMinIdle(50);
dataSource.setInitialSize(2);
dataSource.setMaxWait(500);
/**
* 参数说明如下:
* dataSource:数据库的数据源
* bizName:具体某中业务的序列号
* step:[可选] 默认1000,即每次取redis获取步长值,根据具体业务吞吐量来设置,越大性能越好,但是序列号断层的风险也就越大
*/
return DbSeqBuilder.create().dataSource(dataSource).step(1000).stepStart(1000000).bizName("test3").build();
}GIT主页地址
https://gitee.com/xuan698400/xsequence
【声明】文章转载自:开源中国社区 [http://www.oschina.net]
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- xsequence 分布式序列号生成组件 1.3 发布
- xsequence 1.4 发布,分布式序列号生成组件
- xsequence 1.5 发布,分布式序列号生成组件
- xsequence 分布式序列号生成组件 1.2 更新啦
- 微信技术分享:微信的海量IM聊天消息序列号生成实践(算法原理篇)
- TCP 协议可靠性是如何保证:滑动窗口,超时重发,序列号确认应答信号
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Software Engineering for Internet Applications
Eve Andersson、Philip Greenspun、Andrew Grumet / The MIT Press / 2006-03-06 / USD 35.00
After completing this self-contained course on server-based Internet applications software, students who start with only the knowledge of how to write and debug a computer program will have learned ho......一起来看看 《Software Engineering for Internet Applications》 这本书的介绍吧!
JSON 在线解析
在线 JSON 格式化工具
UNIX 时间戳转换
UNIX 时间戳转换