Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DiDi
kafka-manager
提交
4df2dc09
K
kafka-manager
项目概览
DiDi
/
kafka-manager
10 个月 前同步成功
通知
58
Star
6372
Fork
1229
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
kafka-manager
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
4df2dc09
编写于
1月 12, 2022
作者:
X
xuguang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
增加对BrokerMetadata中endpoints为internal|External方式的解析
上级
c344fd8c
变更
5
显示空白变更内容
内联
并排
Showing
5 changed file
with
110 addition
and
88 deletion
+110
-88
kafka-manager-common/pom.xml
kafka-manager-common/pom.xml
+5
-0
kafka-manager-common/src/main/java/com/xiaojukeji/kafka/manager/common/constant/KafkaConstant.java
...aojukeji/kafka/manager/common/constant/KafkaConstant.java
+4
-0
kafka-manager-common/src/main/java/com/xiaojukeji/kafka/manager/common/entity/ao/common/IpPortData.java
...eji/kafka/manager/common/entity/ao/common/IpPortData.java
+18
-0
kafka-manager-common/src/main/java/com/xiaojukeji/kafka/manager/common/zookeeper/znode/brokers/BrokerMetadata.java
...anager/common/zookeeper/znode/brokers/BrokerMetadata.java
+80
-80
kafka-manager-core/src/main/java/com/xiaojukeji/kafka/manager/service/zookeeper/BrokerStateListener.java
.../kafka/manager/service/zookeeper/BrokerStateListener.java
+3
-8
未找到文件。
kafka-manager-common/pom.xml
浏览文件 @
4df2dc09
...
...
@@ -109,5 +109,10 @@
<groupId>
junit
</groupId>
<artifactId>
junit
</artifactId>
</dependency>
<dependency>
<groupId>
org.projectlombok
</groupId>
<artifactId>
lombok
</artifactId>
<scope>
compile
</scope>
</dependency>
</dependencies>
</project>
\ No newline at end of file
kafka-manager-common/src/main/java/com/xiaojukeji/kafka/manager/common/constant/KafkaConstant.java
浏览文件 @
4df2dc09
...
...
@@ -17,6 +17,10 @@ public class KafkaConstant {
public
static
final
String
RETENTION_MS_KEY
=
"retention.ms"
;
public
static
final
String
EXTERNAL_KEY
=
"EXTERNAL"
;
public
static
final
String
INTERNAL_KEY
=
"INTERNAL"
;
private
KafkaConstant
()
{
}
}
\ No newline at end of file
kafka-manager-common/src/main/java/com/xiaojukeji/kafka/manager/common/entity/ao/common/IpPortData.java
0 → 100644
浏览文件 @
4df2dc09
package
com.xiaojukeji.kafka.manager.common.entity.ao.common
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.io.Serializable
;
@Data
@NoArgsConstructor
@AllArgsConstructor
public
class
IpPortData
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
428897032994630685L
;
private
String
ip
;
private
String
port
;
}
kafka-manager-common/src/main/java/com/xiaojukeji/kafka/manager/common/zookeeper/znode/brokers/BrokerMetadata.java
浏览文件 @
4df2dc09
package
com.xiaojukeji.kafka.manager.common.zookeeper.znode.brokers
;
import
com.fasterxml.jackson.annotation.JsonIgnore
;
import
com.fasterxml.jackson.annotation.JsonIgnoreProperties
;
import
com.fasterxml.jackson.annotation.JsonProperty
;
import
com.xiaojukeji.kafka.manager.common.constant.KafkaConstant
;
import
com.xiaojukeji.kafka.manager.common.entity.ao.common.IpPortData
;
import
com.xiaojukeji.kafka.manager.common.utils.NumberUtils
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
/**
* @author zengqiao
...
...
@@ -18,22 +29,48 @@ import java.util.List;
* "version":4,
* "rack": "CY"
* }
*
* {
* "listener_security_protocol_map":{"SASL_PLAINTEXT":"SASL_PLAINTEXT","PLAINTEXT":"PLAINTEXT"},
* "endpoints":["SASL_PLAINTEXT://10.179.162.202:9093","PLAINTEXT://10.179.162.202:9092"],
* "jmx_port":8099,
* "host":"10.179.162.202",
* "timestamp":"1628833925822",
* "port":9092,
* "version":4
* }
*
* {
* "listener_security_protocol_map":{"EXTERNAL":"SASL_PLAINTEXT","INTERNAL":"SASL_PLAINTEXT"},
* "endpoints":["EXTERNAL://10.179.162.202:7092","INTERNAL://10.179.162.202:7093"],
* "jmx_port":8099,
* "host":null,
* "timestamp":"1627289710439",
* "port":-1,
* "version":4
* }
*
*/
public
class
BrokerMetadata
implements
Cloneable
{
@Data
@JsonIgnoreProperties
(
ignoreUnknown
=
true
)
public
class
BrokerMetadata
implements
Serializable
{
private
static
final
long
serialVersionUID
=
3918113492423375809L
;
private
long
clusterId
;
private
int
brokerId
;
private
List
<
String
>
endpoints
;
// <EXTERNAL|INTERNAL, <ip, port>>
private
Map
<
String
,
IpPortData
>
endpointMap
;
private
String
host
;
private
int
port
;
/*
* ZK上对应的字段就是这个名字, 不要进行修改
*/
private
int
jmx_port
;
@JsonProperty
(
"jmx_port"
)
private
int
jmxPort
;
private
String
version
;
...
...
@@ -41,91 +78,54 @@ public class BrokerMetadata implements Cloneable {
private
String
rack
;
public
long
getClusterId
()
{
return
clusterId
;
}
public
void
setClusterId
(
long
clusterId
)
{
this
.
clusterId
=
clusterId
;
}
public
int
getBrokerId
()
{
return
brokerId
;
@JsonIgnore
public
String
getExternalHost
()
{
if
(!
endpointMap
.
containsKey
(
KafkaConstant
.
EXTERNAL_KEY
))
{
return
null
;
}
public
void
setBrokerId
(
int
brokerId
)
{
this
.
brokerId
=
brokerId
;
}
public
List
<
String
>
getEndpoints
()
{
return
endpoints
;
}
public
void
setEndpoints
(
List
<
String
>
endpoints
)
{
this
.
endpoints
=
endpoints
;
}
public
String
getHost
()
{
return
host
;
}
public
void
setHost
(
String
host
)
{
this
.
host
=
host
;
return
endpointMap
.
get
(
KafkaConstant
.
EXTERNAL_KEY
).
getIp
();
}
public
int
getPort
()
{
return
port
;
@JsonIgnore
public
String
getInternalHost
()
{
if
(!
endpointMap
.
containsKey
(
KafkaConstant
.
INTERNAL_KEY
))
{
return
null
;
}
public
void
setPort
(
int
port
)
{
this
.
port
=
port
;
return
endpointMap
.
get
(
KafkaConstant
.
INTERNAL_KEY
).
getIp
();
}
public
int
getJmxPort
()
{
return
jmx_port
;
}
public
static
void
parseAndUpdateBrokerMetadata
(
BrokerMetadata
brokerMetadata
)
{
brokerMetadata
.
setEndpointMap
(
new
HashMap
<>());
public
void
setJmxPort
(
int
jmxPort
)
{
this
.
jmx_port
=
jmxPort
;
if
(
brokerMetadata
.
getEndpoints
().
isEmpty
()
)
{
return
;
}
public
String
getVersion
()
{
return
version
;
// example EXTERNAL://10.179.162.202:7092
for
(
String
endpoint:
brokerMetadata
.
getEndpoints
())
{
int
idx1
=
endpoint
.
indexOf
(
"://"
);
int
idx2
=
endpoint
.
lastIndexOf
(
":"
);
if
(
idx1
==
-
1
||
idx2
==
-
1
||
idx1
==
idx2
)
{
continue
;
}
public
void
setVersion
(
String
version
)
{
this
.
version
=
version
;
}
String
brokerHost
=
endpoint
.
substring
(
idx1
+
"://"
.
length
(),
idx2
);
String
brokerPort
=
endpoint
.
substring
(
idx2
+
1
);
public
long
getTimestamp
()
{
return
timestamp
;
}
brokerMetadata
.
getEndpointMap
().
put
(
endpoint
.
substring
(
0
,
idx1
),
new
IpPortData
(
brokerHost
,
brokerPort
));
public
void
setTimestamp
(
long
timestamp
)
{
this
.
timestamp
=
timestamp
;
if
(
KafkaConstant
.
EXTERNAL_KEY
.
equals
(
endpoint
.
substring
(
0
,
idx1
)))
{
// 优先使用external的地址进行展示
brokerMetadata
.
setHost
(
brokerHost
);
brokerMetadata
.
setPort
(
NumberUtils
.
string2Integer
(
brokerPort
));
}
public
String
getRack
()
{
return
rack
;
if
(
null
==
brokerMetadata
.
getHost
())
{
brokerMetadata
.
setHost
(
brokerHost
);
brokerMetadata
.
setPort
(
NumberUtils
.
string2Integer
(
brokerPort
));
}
public
void
setRack
(
String
rack
)
{
this
.
rack
=
rack
;
}
@Override
public
String
toString
()
{
return
"BrokerMetadata{"
+
"clusterId="
+
clusterId
+
", brokerId="
+
brokerId
+
", endpoints="
+
endpoints
+
", host='"
+
host
+
'\''
+
", port="
+
port
+
", jmxPort="
+
jmx_port
+
", version='"
+
version
+
'\''
+
", timestamp="
+
timestamp
+
", rack='"
+
rack
+
'\''
+
'}'
;
}
}
kafka-manager-core/src/main/java/com/xiaojukeji/kafka/manager/service/zookeeper/BrokerStateListener.java
浏览文件 @
4df2dc09
...
...
@@ -74,15 +74,10 @@ public class BrokerStateListener implements StateChangeListener {
BrokerMetadata
brokerMetadata
=
null
;
try
{
brokerMetadata
=
zkConfig
.
get
(
ZkPathUtil
.
getBrokerIdNodePath
(
brokerId
),
BrokerMetadata
.
class
);
if
(!
brokerMetadata
.
getEndpoints
().
isEmpty
())
{
String
endpoint
=
brokerMetadata
.
getEndpoints
().
get
(
0
);
int
idx
=
endpoint
.
indexOf
(
"://"
);
endpoint
=
endpoint
.
substring
(
idx
+
"://"
.
length
());
idx
=
endpoint
.
indexOf
(
":"
);
brokerMetadata
.
setHost
(
endpoint
.
substring
(
0
,
idx
));
brokerMetadata
.
setPort
(
Integer
.
parseInt
(
endpoint
.
substring
(
idx
+
1
))
);
}
// 解析并更新本次存储的broker元信息
BrokerMetadata
.
parseAndUpdateBrokerMetadata
(
brokerMetadata
);
brokerMetadata
.
setClusterId
(
clusterId
);
brokerMetadata
.
setBrokerId
(
brokerId
);
PhysicalClusterMetadataManager
.
putBrokerMetadata
(
clusterId
,
brokerId
,
brokerMetadata
,
jmxConfig
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录