New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
优化代码的properties载入,增加新的全局ID生成算法,改变Curator的Maven依赖 #850
Conversation
2. 增加新的quanjuID生成算法:基于ZK与本地配置的分布式ID生成器(可以通过ZK获取集群(机房)唯一InstanceID,也可以通过配置文件配置InstanceID) ID结构:long 64位,ID最大可占63位 |current time millis(微秒时间戳41位)|clusterId(机房或者ZKid,通过配置文件配置4位)|instanceId(实例ID,可以通过ZK或者配置文件获取,4位)|threadId(线程ID,7位)|increment(自增,7位) 一共63位,可以承受单机房单机器单线程1000*(2^7)=1280000的并发。 无悲观锁,无强竞争,吞吐量更高 3. 改变Curator的Maven依赖,修改为内置最新稳定版本zookeeper3.4.8的2.10.0. 增加Curator-recipe的依赖
这个生成的id是否是局部有序的? |
加下志愿者群 478119364 加好后跟我说下 另外你这个单元测试失败 你再测下 |
单元测试貌似用到了zk 最好自己test代码里自己启个zk 不然别人会报错 自动化编译也过不去 |
不是自增的。我已在测试中自己启动了个zk,怎么会测试不通过呢? |
测试现在通过了 但是执行单元测试的时候会报以下异常: 2016-05-06 19:02:27.172 WARN Curator-LeaderSelector-1 - Unexpected thread interruption! 2016-05-06 19:02:27.319 INFO main - total resouces of dataHost localhost1 is :1 |
这个是会报的,因为中途我做了client异常断链。 |
这个你要不在捕捉异常的地方 Assert 不要抛出来 |
我刚申请加群 |
ID结构:long 64位,ID最大可占63位
|current time millis(微秒时间戳41位)|clusterId(机房或者ZKid,通过配置文件配置4位)|instanceId(实例ID,可以通过ZK或者配置文件获取,4位)|threadId(线程ID,7位)|increment(自增,7位)
一共63位,可以承受单机房单机器单线程1000*(2^7)=1280000的并发。
无悲观锁,无强竞争,吞吐量更高