mirror of
https://github.com/didi/KnowStreaming.git
synced 2026-01-05 04:50:55 +08:00
开放接口&近期BUG修复
This commit is contained in:
@@ -14,6 +14,7 @@ import com.xiaojukeji.kafka.manager.common.zookeeper.ZkConfigImpl;
|
||||
import com.xiaojukeji.kafka.manager.dao.ControllerDao;
|
||||
import com.xiaojukeji.kafka.manager.common.utils.jmx.JmxConnectorWrap;
|
||||
import com.xiaojukeji.kafka.manager.service.service.JmxService;
|
||||
import com.xiaojukeji.kafka.manager.service.utils.ConfigUtils;
|
||||
import com.xiaojukeji.kafka.manager.service.zookeeper.*;
|
||||
import com.xiaojukeji.kafka.manager.service.service.ClusterService;
|
||||
import com.xiaojukeji.kafka.manager.common.zookeeper.ZkPathUtil;
|
||||
@@ -44,6 +45,9 @@ public class PhysicalClusterMetadataManager {
|
||||
@Autowired
|
||||
private ClusterService clusterService;
|
||||
|
||||
@Autowired
|
||||
private ConfigUtils configUtils;
|
||||
|
||||
private final static Map<Long, ClusterDO> CLUSTER_MAP = new ConcurrentHashMap<>();
|
||||
|
||||
private final static Map<Long, ControllerData> CONTROLLER_DATA_MAP = new ConcurrentHashMap<>();
|
||||
@@ -89,7 +93,7 @@ public class PhysicalClusterMetadataManager {
|
||||
BROKER_METADATA_MAP.put(clusterDO.getId(), new ConcurrentHashMap<>());
|
||||
JMX_CONNECTOR_MAP.put(clusterDO.getId(), new ConcurrentHashMap<>());
|
||||
KAFKA_VERSION_MAP.put(clusterDO.getId(), new ConcurrentHashMap<>());
|
||||
BrokerStateListener brokerListener = new BrokerStateListener(clusterDO.getId(), zkConfig);
|
||||
BrokerStateListener brokerListener = new BrokerStateListener(clusterDO.getId(), zkConfig, configUtils.getJmxMaxConn());
|
||||
brokerListener.init();
|
||||
zkConfig.watchChildren(ZkPathUtil.BROKER_IDS_ROOT, brokerListener);
|
||||
|
||||
@@ -255,7 +259,7 @@ public class PhysicalClusterMetadataManager {
|
||||
|
||||
//---------------------------Broker元信息相关--------------
|
||||
|
||||
public static void putBrokerMetadata(Long clusterId, Integer brokerId, BrokerMetadata brokerMetadata) {
|
||||
public static void putBrokerMetadata(Long clusterId, Integer brokerId, BrokerMetadata brokerMetadata, Integer jmxMaxConn) {
|
||||
Map<Integer, BrokerMetadata> metadataMap = BROKER_METADATA_MAP.get(clusterId);
|
||||
if (metadataMap == null) {
|
||||
return;
|
||||
@@ -263,7 +267,7 @@ public class PhysicalClusterMetadataManager {
|
||||
metadataMap.put(brokerId, brokerMetadata);
|
||||
|
||||
Map<Integer, JmxConnectorWrap> jmxMap = JMX_CONNECTOR_MAP.getOrDefault(clusterId, new ConcurrentHashMap<>());
|
||||
jmxMap.put(brokerId, new JmxConnectorWrap(brokerMetadata.getHost(), brokerMetadata.getJmxPort()));
|
||||
jmxMap.put(brokerId, new JmxConnectorWrap(brokerMetadata.getHost(), brokerMetadata.getJmxPort(), jmxMaxConn));
|
||||
JMX_CONNECTOR_MAP.put(clusterId, jmxMap);
|
||||
|
||||
Map<Integer, KafkaVersion> versionMap = KAFKA_VERSION_MAP.getOrDefault(clusterId, new ConcurrentHashMap<>());
|
||||
|
||||
@@ -38,10 +38,10 @@ public class GatewayConfigServiceImpl implements GatewayConfigService {
|
||||
}
|
||||
Long maxVersion = Long.MIN_VALUE;
|
||||
|
||||
Map<Long, List<String>> clusterIdBootstrapServersMap = new HashMap<>(doList.size());
|
||||
Map<String, List<String>> clusterIdBootstrapServersMap = new HashMap<>(doList.size());
|
||||
for (GatewayConfigDO configDO: doList) {
|
||||
clusterIdBootstrapServersMap.put(
|
||||
Long.valueOf(configDO.getName()),
|
||||
configDO.getName().trim(),
|
||||
ListUtils.string2StrList(configDO.getValue())
|
||||
);
|
||||
if (configDO.getVersion().compareTo(maxVersion) > 0) {
|
||||
|
||||
@@ -2,7 +2,6 @@ package com.xiaojukeji.kafka.manager.service.service.impl;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.xiaojukeji.kafka.manager.common.constant.ConfigConstant;
|
||||
import com.xiaojukeji.kafka.manager.common.constant.SystemCodeConstant;
|
||||
import com.xiaojukeji.kafka.manager.common.constant.TopicCreationConstant;
|
||||
import com.xiaojukeji.kafka.manager.common.entity.ResultStatus;
|
||||
import com.xiaojukeji.kafka.manager.common.entity.ao.config.*;
|
||||
@@ -11,7 +10,6 @@ import com.xiaojukeji.kafka.manager.common.entity.pojo.ClusterDO;
|
||||
import com.xiaojukeji.kafka.manager.common.utils.ValidateUtils;
|
||||
import com.xiaojukeji.kafka.manager.common.entity.pojo.ConfigDO;
|
||||
import com.xiaojukeji.kafka.manager.dao.ConfigDao;
|
||||
import com.xiaojukeji.kafka.manager.service.cache.PhysicalClusterMetadataManager;
|
||||
import com.xiaojukeji.kafka.manager.service.service.ConfigService;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
@@ -166,11 +164,6 @@ public class ConfigServiceImpl implements ConfigService {
|
||||
@Override
|
||||
public CreateTopicElemConfig getCreateTopicConfig(Long clusterId, String systemCode) {
|
||||
String configKey = TopicCreationConstant.INNER_CREATE_TOPIC_CONFIG_KEY;
|
||||
if (SystemCodeConstant.LOG_X.equals(systemCode)) {
|
||||
configKey = TopicCreationConstant.LOG_X_CREATE_TOPIC_CONFIG_KEY_NAME;
|
||||
} else if (SystemCodeConstant.CHORUS.equals(systemCode)) {
|
||||
configKey = TopicCreationConstant.CHORUS_CREATE_TOPIC_CONFIG_KEY_NAME;
|
||||
}
|
||||
CreateTopicConfig configValue = this.getByKey(
|
||||
configKey,
|
||||
CreateTopicConfig.class
|
||||
|
||||
@@ -390,7 +390,7 @@ public class ConsumerServiceImpl implements ConsumerService {
|
||||
@Override
|
||||
public boolean checkConsumerGroupExist(OffsetLocationEnum offsetLocation, Long clusterId, String topicName, String consumerGroup) {
|
||||
List<ConsumerGroupDTO> consumerGroupList = getConsumerGroupList(clusterId, topicName).stream()
|
||||
.filter(group -> offsetLocation.location.equals(group.getOffsetStoreLocation()) && consumerGroup.equals(group.getConsumerGroup()))
|
||||
.filter(group -> offsetLocation.location.equals(group.getOffsetStoreLocation().location) && consumerGroup.equals(group.getConsumerGroup()))
|
||||
.collect(Collectors.toList());
|
||||
return !ValidateUtils.isEmptyList(consumerGroupList);
|
||||
}
|
||||
|
||||
@@ -186,7 +186,7 @@ public class ExpertServiceImpl implements ExpertService {
|
||||
continue;
|
||||
}
|
||||
Integer suggestedPartitionNum = (int) Math.round(
|
||||
bytesIn / topicMetadata.getPartitionNum() / config.getMaxBytesInPerPartitionUnitB()
|
||||
bytesIn / config.getMaxBytesInPerPartitionUnitB()
|
||||
);
|
||||
if (suggestedPartitionNum - topicMetadata.getPartitionNum() < 1) {
|
||||
continue;
|
||||
|
||||
@@ -13,6 +13,9 @@ public class ConfigUtils {
|
||||
@Value(value = "${custom.idc}")
|
||||
private String idc;
|
||||
|
||||
@Value("${custom.jmx.max-conn}")
|
||||
private Integer jmxMaxConn;
|
||||
|
||||
@Value(value = "${spring.profiles.active}")
|
||||
private String kafkaManagerEnv;
|
||||
|
||||
@@ -24,6 +27,14 @@ public class ConfigUtils {
|
||||
this.idc = idc;
|
||||
}
|
||||
|
||||
public Integer getJmxMaxConn() {
|
||||
return jmxMaxConn;
|
||||
}
|
||||
|
||||
public void setJmxMaxConn(Integer jmxMaxConn) {
|
||||
this.jmxMaxConn = jmxMaxConn;
|
||||
}
|
||||
|
||||
public String getKafkaManagerEnv() {
|
||||
return kafkaManagerEnv;
|
||||
}
|
||||
|
||||
@@ -22,9 +22,12 @@ public class BrokerStateListener implements StateChangeListener {
|
||||
|
||||
private ZkConfigImpl zkConfig;
|
||||
|
||||
public BrokerStateListener(Long clusterId, ZkConfigImpl zkConfig) {
|
||||
private Integer jmxMaxConn;
|
||||
|
||||
public BrokerStateListener(Long clusterId, ZkConfigImpl zkConfig, Integer jmxMaxConn) {
|
||||
this.clusterId = clusterId;
|
||||
this.zkConfig = zkConfig;
|
||||
this.jmxMaxConn = jmxMaxConn;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -81,7 +84,7 @@ public class BrokerStateListener implements StateChangeListener {
|
||||
}
|
||||
brokerMetadata.setClusterId(clusterId);
|
||||
brokerMetadata.setBrokerId(brokerId);
|
||||
PhysicalClusterMetadataManager.putBrokerMetadata(clusterId, brokerId, brokerMetadata);
|
||||
PhysicalClusterMetadataManager.putBrokerMetadata(clusterId, brokerId, brokerMetadata, jmxMaxConn);
|
||||
} catch (Exception e) {
|
||||
LOGGER.error("add broker failed, clusterId:{} brokerMetadata:{}.", clusterId, brokerMetadata, e);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user