Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
killuaz丶x
SkyWalking
提交
a94b5428
S
SkyWalking
项目概览
killuaz丶x
/
SkyWalking
与 Fork 源项目一致
Fork自
apache / SkyWalking
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
S
SkyWalking
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
a94b5428
编写于
7月 24, 2018
作者:
wu-sheng
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Adjust zk cluster management.
上级
eabf9a7d
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
66 addition
and
61 deletion
+66
-61
oap-server/server-cluster-plugin/cluster-standalone-plugin/src/main/java/org/apache/skywalking/oap/server/cluster/plugin/standalone/StandaloneManager.java
...p/server/cluster/plugin/standalone/StandaloneManager.java
+1
-0
oap-server/server-cluster-plugin/cluster-zookeeper-plugin/src/main/java/org/apache/skywalking/oap/server/cluster/plugin/zookeeper/ClusterModuleZookeeperProvider.java
...ster/plugin/zookeeper/ClusterModuleZookeeperProvider.java
+3
-9
oap-server/server-cluster-plugin/cluster-zookeeper-plugin/src/main/java/org/apache/skywalking/oap/server/cluster/plugin/zookeeper/ZookeeperCoordinator.java
...server/cluster/plugin/zookeeper/ZookeeperCoordinator.java
+36
-7
oap-server/server-cluster-plugin/cluster-zookeeper-plugin/src/main/java/org/apache/skywalking/oap/server/cluster/plugin/zookeeper/ZookeeperModuleQuery.java
...server/cluster/plugin/zookeeper/ZookeeperModuleQuery.java
+0
-45
oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/cluster/RemoteInstance.java
...he/skywalking/oap/server/core/cluster/RemoteInstance.java
+26
-0
未找到文件。
oap-server/server-cluster-plugin/cluster-standalone-plugin/src/main/java/org/apache/skywalking/oap/server/cluster/plugin/standalone/StandaloneManager.java
浏览文件 @
a94b5428
...
...
@@ -35,6 +35,7 @@ public class StandaloneManager implements ClusterNodesQuery, ClusterRegister {
@Override
public
void
registerRemote
(
RemoteInstance
remoteInstance
)
{
this
.
remoteInstance
=
remoteInstance
;
this
.
remoteInstance
.
setSelf
(
true
);
}
@Override
...
...
oap-server/server-cluster-plugin/cluster-zookeeper-plugin/src/main/java/org/apache/skywalking/oap/server/cluster/plugin/zookeeper/ClusterModuleZookeeperProvider.java
浏览文件 @
a94b5428
...
...
@@ -22,7 +22,6 @@ import org.apache.curator.RetryPolicy;
import
org.apache.curator.framework.CuratorFramework
;
import
org.apache.curator.framework.CuratorFrameworkFactory
;
import
org.apache.curator.retry.ExponentialBackoffRetry
;
import
org.apache.curator.x.discovery.ServiceCache
;
import
org.apache.curator.x.discovery.ServiceDiscovery
;
import
org.apache.curator.x.discovery.ServiceDiscoveryBuilder
;
import
org.apache.skywalking.oap.server.core.cluster.ClusterModule
;
...
...
@@ -77,23 +76,18 @@ public class ClusterModuleZookeeperProvider extends ModuleProvider {
.
watchInstances
(
true
)
.
serializer
(
new
SWInstanceSerializer
()).
build
();
String
remoteName
=
"remote"
;
ServiceCache
<
RemoteInstance
>
serviceCache
=
serviceDiscovery
.
serviceCacheBuilder
()
.
name
(
remoteName
)
.
build
();
try
{
client
.
start
();
client
.
blockUntilConnected
();
serviceDiscovery
.
start
();
serviceCache
.
start
();
}
catch
(
Exception
e
)
{
logger
.
error
(
e
.
getMessage
(),
e
);
throw
new
ModuleStartException
(
e
.
getMessage
(),
e
);
}
this
.
registerServiceImplementation
(
ClusterRegister
.
class
,
new
ZookeeperNodeRegister
(
serviceDiscovery
,
remoteName
));
this
.
registerServiceImplementation
(
ClusterNodesQuery
.
class
,
new
ZookeeperModuleQuery
(
serviceCache
));
ZookeeperCoordinator
coordinator
=
new
ZookeeperCoordinator
(
serviceDiscovery
);
this
.
registerServiceImplementation
(
ClusterRegister
.
class
,
coordinator
);
this
.
registerServiceImplementation
(
ClusterNodesQuery
.
class
,
coordinator
);
}
@Override
public
void
start
()
{
...
...
oap-server/server-cluster-plugin/cluster-zookeeper-plugin/src/main/java/org/apache/skywalking/oap/server/cluster/plugin/zookeeper/Zookeeper
NodeRegiste
r.java
→
oap-server/server-cluster-plugin/cluster-zookeeper-plugin/src/main/java/org/apache/skywalking/oap/server/cluster/plugin/zookeeper/Zookeeper
Coordinato
r.java
浏览文件 @
a94b5428
...
...
@@ -18,9 +18,13 @@
package
org.apache.skywalking.oap.server.cluster.plugin.zookeeper
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.UUID
;
import
org.apache.curator.x.discovery.ServiceCache
;
import
org.apache.curator.x.discovery.ServiceDiscovery
;
import
org.apache.curator.x.discovery.ServiceInstance
;
import
org.apache.skywalking.oap.server.core.cluster.ClusterNodesQuery
;
import
org.apache.skywalking.oap.server.core.cluster.ClusterRegister
;
import
org.apache.skywalking.oap.server.core.cluster.RemoteInstance
;
import
org.apache.skywalking.oap.server.core.cluster.ServiceRegisterException
;
...
...
@@ -30,21 +34,23 @@ import org.slf4j.LoggerFactory;
/**
* @author peng-yongsheng
*/
public
class
Zookeeper
NodeRegister
implements
ClusterRegister
{
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
Zookeeper
NodeRegiste
r
.
class
);
public
class
Zookeeper
Coordinator
implements
ClusterRegister
,
ClusterNodesQuery
{
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
Zookeeper
Coordinato
r
.
class
);
private
final
ServiceDiscovery
<
RemoteInstance
>
serviceDiscovery
;
private
final
String
nodeName
;
private
volatile
ServiceCache
<
RemoteInstance
>
serviceCache
;
private
volatile
RemoteInstance
selfInstance
;
Zookeeper
NodeRegister
(
ServiceDiscovery
<
RemoteInstance
>
serviceDiscovery
,
String
nodeName
)
{
Zookeeper
Coordinator
(
ServiceDiscovery
<
RemoteInstance
>
serviceDiscovery
)
{
this
.
serviceDiscovery
=
serviceDiscovery
;
this
.
nodeName
=
nodeName
;
}
@Override
public
synchronized
void
registerRemote
(
RemoteInstance
remoteInstance
)
throws
ServiceRegisterException
{
try
{
String
remoteNamePath
=
"remote"
;
ServiceInstance
<
RemoteInstance
>
thisInstance
=
ServiceInstance
.<
RemoteInstance
>
builder
()
.
name
(
nodeName
)
.
name
(
remoteNamePath
)
.
id
(
UUID
.
randomUUID
().
toString
())
.
address
(
remoteInstance
.
getHost
())
.
port
(
remoteInstance
.
getPort
())
...
...
@@ -52,9 +58,32 @@ public class ZookeeperNodeRegister implements ClusterRegister {
.
build
();
serviceDiscovery
.
registerService
(
thisInstance
);
serviceCache
=
serviceDiscovery
.
serviceCacheBuilder
()
.
name
(
remoteNamePath
)
.
build
();
serviceCache
.
start
();
this
.
selfInstance
=
remoteInstance
;
}
catch
(
Exception
e
)
{
logger
.
error
(
e
.
getMessage
(),
e
);
throw
new
ServiceRegisterException
(
e
.
getMessage
());
}
}
@Override
public
List
<
RemoteInstance
>
queryRemoteNodes
()
{
List
<
ServiceInstance
<
RemoteInstance
>>
serviceInstances
=
serviceCache
.
getInstances
();
List
<
RemoteInstance
>
remoteInstanceDetails
=
new
ArrayList
<>(
serviceInstances
.
size
());
serviceInstances
.
forEach
(
serviceInstance
->
{
RemoteInstance
instance
=
serviceInstance
.
getPayload
();
if
(
instance
.
equals
(
selfInstance
))
{
instance
.
setSelf
(
true
);
}
else
{
instance
.
setSelf
(
false
);
}
remoteInstanceDetails
.
add
(
instance
);
});
return
remoteInstanceDetails
;
}
}
oap-server/server-cluster-plugin/cluster-zookeeper-plugin/src/main/java/org/apache/skywalking/oap/server/cluster/plugin/zookeeper/ZookeeperModuleQuery.java
已删除
100644 → 0
浏览文件 @
eabf9a7d
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
package
org.apache.skywalking.oap.server.cluster.plugin.zookeeper
;
import
java.util.*
;
import
org.apache.curator.x.discovery.ServiceCache
;
import
org.apache.curator.x.discovery.ServiceInstance
;
import
org.apache.skywalking.oap.server.core.cluster.*
;
/**
* @author peng-yongsheng, Wu Sheng
*/
public
class
ZookeeperModuleQuery
implements
ClusterNodesQuery
{
private
final
ServiceCache
<
RemoteInstance
>
serviceCache
;
ZookeeperModuleQuery
(
ServiceCache
<
RemoteInstance
>
serviceCache
)
{
this
.
serviceCache
=
serviceCache
;
}
@Override
public
List
<
RemoteInstance
>
queryRemoteNodes
()
throws
ServiceRegisterException
{
List
<
ServiceInstance
<
RemoteInstance
>>
serviceInstances
=
serviceCache
.
getInstances
();
List
<
RemoteInstance
>
remoteInstanceDetails
=
new
ArrayList
<>(
serviceInstances
.
size
());
serviceInstances
.
forEach
(
serviceInstance
->
remoteInstanceDetails
.
add
(
serviceInstance
.
getPayload
()));
return
remoteInstanceDetails
;
}
}
oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/cluster/RemoteInstance.java
浏览文件 @
a94b5428
...
...
@@ -18,6 +18,8 @@
package
org.apache.skywalking.oap.server.core.cluster
;
import
java.util.Objects
;
/**
* @author peng-yongsheng
*/
...
...
@@ -25,6 +27,7 @@ public class RemoteInstance {
private
String
host
;
private
int
port
;
private
boolean
self
=
false
;
public
String
getHost
()
{
return
host
;
...
...
@@ -41,4 +44,27 @@ public class RemoteInstance {
public
void
setPort
(
int
port
)
{
this
.
port
=
port
;
}
public
boolean
isSelf
()
{
return
self
;
}
public
void
setSelf
(
boolean
self
)
{
this
.
self
=
self
;
}
@Override
public
boolean
equals
(
Object
o
)
{
if
(
this
==
o
)
return
true
;
if
(
o
==
null
||
getClass
()
!=
o
.
getClass
())
return
false
;
RemoteInstance
instance
=
(
RemoteInstance
)
o
;
return
port
==
instance
.
port
&&
Objects
.
equals
(
host
,
instance
.
host
);
}
@Override
public
int
hashCode
()
{
return
Objects
.
hash
(
host
,
port
);
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录