Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
L
loit-build-common
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
loit-Infrastructure
loit-build-common
Commits
2bc980b1
提交
2bc980b1
authored
2月 28, 2020
作者:
陈世营
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
【修改】 leafFactory 和 zookeeper 节点因为tryLock 导致定时被删除。
上级
165962c1
显示空白字符变更
内嵌
并排
正在显示
5 个修改的文件
包含
100 行增加
和
11 行删除
+100
-11
pom.xml
loit-build-component/loit-keygen-leaf-zk/pom.xml
+6
-0
LeafSegmentKeyGenerator.java
...m/loit/component/keygen/leaf/LeafSegmentKeyGenerator.java
+5
-7
LeafSegmentKeyGeneratorFactory.java
...component/keygen/leaf/LeafSegmentKeyGeneratorFactory.java
+53
-0
LeafSegmentKeyGeneratorFactoryTest.java
...onent/keygen/leaf/LeafSegmentKeyGeneratorFactoryTest.java
+31
-0
LeafSegmentKeyGeneratorTest.java
...it/component/keygen/leaf/LeafSegmentKeyGeneratorTest.java
+5
-4
没有找到文件。
loit-build-component/loit-keygen-leaf-zk/pom.xml
浏览文件 @
2bc980b1
...
...
@@ -47,5 +47,10 @@
<artifactId>
curator-test
</artifactId>
</dependency>
<dependency>
<groupId>
org.apache.commons
</groupId>
<artifactId>
commons-lang3
</artifactId>
</dependency>
</dependencies>
</project>
\ No newline at end of file
loit-build-component/loit-keygen-leaf-zk/src/main/java/com/loit/component/keygen/leaf/LeafSegmentKeyGenerator.java
浏览文件 @
2bc980b1
...
...
@@ -11,7 +11,6 @@ import lombok.Getter;
import
lombok.Setter
;
import
lombok.SneakyThrows
;
import
java.util.Properties
;
import
java.util.concurrent.ExecutorService
;
import
java.util.concurrent.Executors
;
...
...
@@ -19,17 +18,16 @@ import java.util.concurrent.SynchronousQueue;
/**
* Key generator implemented by leaf segment algorithms.
*
*/
public
final
class
LeafSegmentKeyGenerator
implements
LeafKeyGenerator
{
pr
ivate
static
final
String
DEFAULT_NAMESPACE
=
"leaf_segment"
;
pr
otected
static
final
String
DEFAULT_NAMESPACE
=
"leaf_segment"
;
pr
ivate
static
final
String
DEFAULT_STEP
=
"10000"
;
pr
otected
static
final
String
DEFAULT_STEP
=
"10000"
;
pr
ivate
static
final
String
DEFAULT_INITIAL_VALUE
=
"1"
;
pr
otected
static
final
String
DEFAULT_INITIAL_VALUE
=
"1"
;
pr
ivate
static
final
String
DEFAULT_REGISTRY_CENTER
=
"zookeeper"
;
pr
otected
static
final
String
DEFAULT_REGISTRY_CENTER
=
"zookeeper"
;
private
static
final
String
SLANTING_BAR
=
"/"
;
...
...
@@ -96,7 +94,7 @@ public final class LeafSegmentKeyGenerator implements LeafKeyGenerator {
}
private
void
initializeLeafKeyInCenter
(
final
String
leafKey
,
final
long
id
,
final
long
step
)
{
leafRegistryCenter
.
initLock
(
leafKey
);
leafRegistryCenter
.
initLock
(
leafKey
+
"_lock"
);
while
(!
leafRegistryCenter
.
tryLock
())
{
continue
;
}
...
...
loit-build-component/loit-keygen-leaf-zk/src/main/java/com/loit/component/keygen/leaf/LeafSegmentKeyGeneratorFactory.java
0 → 100644
浏览文件 @
2bc980b1
package
com
.
loit
.
component
.
keygen
.
leaf
;
import
org.apache.commons.lang3.StringUtils
;
import
java.util.LinkedHashMap
;
import
java.util.Map
;
import
java.util.Properties
;
/**
* leafKey 获取不同的keyGenerator
*/
public
class
LeafSegmentKeyGeneratorFactory
{
private
Map
<
String
,
LeafSegmentKeyGenerator
>
keyGeneratorMap
=
new
LinkedHashMap
<>();
private
Properties
globleProperties
=
new
Properties
();
/**
* 根据 leafKey 标识不同的keyGenerator
*/
public
synchronized
LeafSegmentKeyGenerator
getKeyGenerator
(
String
leafKey
)
{
if
(
StringUtils
.
isEmpty
(
leafKey
))
{
return
null
;
}
LeafSegmentKeyGenerator
leafSegmentKeyGenerator
=
keyGeneratorMap
.
get
(
leafKey
);
if
(
leafSegmentKeyGenerator
==
null
)
{
leafSegmentKeyGenerator
=
new
LeafSegmentKeyGenerator
();
Properties
properties
=
new
Properties
();
properties
.
setProperty
(
"leaf.namespace"
,
globleProperties
.
getProperty
(
"leaf.namespace"
,
LeafSegmentKeyGenerator
.
DEFAULT_NAMESPACE
));
properties
.
setProperty
(
"server.list"
,
globleProperties
.
getProperty
(
"server.list"
));
properties
.
setProperty
(
"leaf.segment.id.initial.value"
,
globleProperties
.
getProperty
(
"leaf.segment.id.initial.value"
,
LeafSegmentKeyGenerator
.
DEFAULT_INITIAL_VALUE
));
properties
.
setProperty
(
"leaf.segment.step"
,
globleProperties
.
getProperty
(
"leaf.segment.step"
,
LeafSegmentKeyGenerator
.
DEFAULT_STEP
));
properties
.
setProperty
(
"leaf.key"
,
leafKey
);
properties
.
setProperty
(
"registry.center.type"
,
globleProperties
.
getProperty
(
"registry.center.type"
,
LeafSegmentKeyGenerator
.
DEFAULT_REGISTRY_CENTER
));
leafSegmentKeyGenerator
.
setProperties
(
properties
);
keyGeneratorMap
.
put
(
leafKey
,
leafSegmentKeyGenerator
);
}
return
leafSegmentKeyGenerator
;
}
public
Properties
getGlobleProperties
()
{
return
globleProperties
;
}
public
void
setGlobleProperties
(
Properties
globleProperties
)
{
this
.
globleProperties
=
globleProperties
;
}
}
loit-build-component/loit-keygen-leaf-zk/src/test/java/com/loit/component/keygen/leaf/LeafSegmentKeyGeneratorFactoryTest.java
0 → 100644
浏览文件 @
2bc980b1
package
com
.
loit
.
component
.
keygen
.
leaf
;
import
org.junit.FixMethodOrder
;
import
org.junit.Test
;
import
org.junit.runners.MethodSorters
;
import
java.util.Properties
;
@FixMethodOrder
(
value
=
MethodSorters
.
NAME_ASCENDING
)
public
class
LeafSegmentKeyGeneratorFactoryTest
{
LeafSegmentKeyGeneratorFactory
leafSegmentKeyGeneratorFactory
=
new
LeafSegmentKeyGeneratorFactory
();
@Test
public
void
assertGenerateKeyWithSingleThread
()
{
Properties
properties
=
new
Properties
();
properties
.
setProperty
(
"leaf.namespace"
,
"leaf-segment-loit-test"
);
properties
.
setProperty
(
"server.list"
,
"127.0.0.1:2181"
);
properties
.
setProperty
(
"leaf.segment.id.initial.value"
,
"3"
);
properties
.
setProperty
(
"leaf.segment.step"
,
"100"
);
leafSegmentKeyGeneratorFactory
.
setGlobleProperties
(
properties
);
for
(
int
i
=
0
;
i
<
12
;
i
++)
{
Comparable
<?>
t_order_item
=
leafSegmentKeyGeneratorFactory
.
getKeyGenerator
(
"t_order_item"
).
generateKey
();
System
.
out
.
println
(
t_order_item
);
}
}
}
loit-build-component/loit-keygen-leaf-zk/src/test/java/com/loit/component/keygen/leaf/LeafSegmentKeyGeneratorTest.java
浏览文件 @
2bc980b1
...
...
@@ -36,16 +36,17 @@ public final class LeafSegmentKeyGeneratorTest {
properties
.
setProperty
(
"leaf.namespace"
,
"leaf-segment-loit-test"
);
properties
.
setProperty
(
"server.list"
,
"127.0.0.1:2181"
);
properties
.
setProperty
(
"leaf.segment.id.initial.value"
,
"100001"
);
properties
.
setProperty
(
"leaf.segment.step"
,
"
5
"
);
properties
.
setProperty
(
"leaf.segment.step"
,
"
100
"
);
properties
.
setProperty
(
"leaf.key"
,
"test_table_1"
);
properties
.
setProperty
(
"registry.center.type"
,
"zookeeper"
);
leafSegmentKeyGenerator
.
setProperties
(
properties
);
List
<
Comparable
<?>>
expected
=
Arrays
.<
Comparable
<?>>
asList
(
100001L
,
100002L
,
100003L
,
100004L
,
100005L
,
100006L
,
100007L
,
100008L
,
100009L
,
100010L
);
List
<
Comparable
<?>>
actual
=
new
ArrayList
<>();
for
(
int
i
=
0
;
i
<
10
;
i
++)
{
actual
.
add
(
leafSegmentKeyGenerator
.
generateKey
());
for
(
int
i
=
0
;
i
<
3
;
i
++)
{
//actual.add(leafSegmentKeyGenerator.generateKey());
System
.
out
.
println
(
leafSegmentKeyGenerator
.
generateKey
());
}
assertThat
(
actual
,
is
(
expected
));
//
assertThat(actual, is(expected));
}
@Test
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论