mirror of
https://github.com/didi/KnowStreaming.git
synced 2025-12-24 03:42:07 +08:00
合并3.3.0企业版改动
This commit is contained in:
@@ -29,6 +29,11 @@
|
||||
<artifactId>km-core</artifactId>
|
||||
<version>${project.parent.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.xiaojukeji.kafka</groupId>
|
||||
<artifactId>km-rebalance</artifactId>
|
||||
<version>${project.parent.version}</version>
|
||||
</dependency>
|
||||
|
||||
<!-- spring -->
|
||||
<dependency>
|
||||
|
||||
@@ -15,6 +15,7 @@ import com.xiaojukeji.know.streaming.km.common.bean.entity.result.Result;
|
||||
import com.xiaojukeji.know.streaming.km.common.bean.vo.cluster.ClusterPhyBaseVO;
|
||||
import com.xiaojukeji.know.streaming.km.common.bean.vo.cluster.ClusterPhyDashboardVO;
|
||||
import com.xiaojukeji.know.streaming.km.common.bean.vo.metrics.line.MetricMultiLinesVO;
|
||||
import com.xiaojukeji.know.streaming.km.common.constant.Constant;
|
||||
import com.xiaojukeji.know.streaming.km.common.converter.ClusterVOConverter;
|
||||
import com.xiaojukeji.know.streaming.km.common.enums.health.HealthStateEnum;
|
||||
import com.xiaojukeji.know.streaming.km.common.utils.ConvertUtil;
|
||||
@@ -24,6 +25,10 @@ import com.xiaojukeji.know.streaming.km.common.utils.ValidateUtils;
|
||||
import com.xiaojukeji.know.streaming.km.core.service.cluster.ClusterMetricService;
|
||||
import com.xiaojukeji.know.streaming.km.core.service.cluster.ClusterPhyService;
|
||||
import com.xiaojukeji.know.streaming.km.core.service.version.metrics.kafka.ClusterMetricVersionItems;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.model.Resource;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.common.BalanceMetricConstant;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.common.bean.entity.ClusterBalanceItemState;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.core.service.ClusterBalanceService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@@ -40,6 +45,9 @@ public class MultiClusterPhyManagerImpl implements MultiClusterPhyManager {
|
||||
@Autowired
|
||||
private ClusterMetricService clusterMetricService;
|
||||
|
||||
@Autowired
|
||||
private ClusterBalanceService clusterBalanceService;
|
||||
|
||||
@Override
|
||||
public ClusterPhysState getClusterPhysState() {
|
||||
List<ClusterPhy> clusterPhyList = clusterPhyService.listAllClusters();
|
||||
@@ -153,6 +161,11 @@ public class MultiClusterPhyManagerImpl implements MultiClusterPhyManager {
|
||||
ClusterMetrics clusterMetrics = clusterMetricService.getLatestMetricsFromCache(vo.getId());
|
||||
clusterMetrics.getMetrics().putIfAbsent(ClusterMetricVersionItems.CLUSTER_METRIC_HEALTH_STATE, (float) HealthStateEnum.UNKNOWN.getDimension());
|
||||
|
||||
Result<ClusterMetrics> balanceMetricsResult = this.getClusterLoadReBalanceInfo(vo.getId());
|
||||
if (balanceMetricsResult.hasData()) {
|
||||
clusterMetrics.putMetric(balanceMetricsResult.getData().getMetrics());
|
||||
}
|
||||
|
||||
metricsList.add(clusterMetrics);
|
||||
}
|
||||
|
||||
@@ -174,4 +187,21 @@ public class MultiClusterPhyManagerImpl implements MultiClusterPhyManager {
|
||||
dto.setClusterPhyIds(clusterIdList);
|
||||
return dto;
|
||||
}
|
||||
|
||||
private Result<ClusterMetrics> getClusterLoadReBalanceInfo(Long clusterPhyId) {
|
||||
Result<ClusterBalanceItemState> stateResult = clusterBalanceService.getItemStateFromCacheFirst(clusterPhyId);
|
||||
if (stateResult.failed()) {
|
||||
return Result.buildFromIgnoreData(stateResult);
|
||||
}
|
||||
|
||||
ClusterBalanceItemState state = stateResult.getData();
|
||||
|
||||
ClusterMetrics metric = ClusterMetrics.initWithMetrics(clusterPhyId, BalanceMetricConstant.CLUSTER_METRIC_LOAD_RE_BALANCE_ENABLE, state.getEnable()? Constant.YES: Constant.NO);
|
||||
metric.putMetric(BalanceMetricConstant.CLUSTER_METRIC_LOAD_RE_BALANCE_CPU, state.getResItemState(Resource.CPU).floatValue());
|
||||
metric.putMetric(BalanceMetricConstant.CLUSTER_METRIC_LOAD_RE_BALANCE_NW_IN, state.getResItemState(Resource.NW_IN).floatValue());
|
||||
metric.putMetric(BalanceMetricConstant.CLUSTER_METRIC_LOAD_RE_BALANCE_NW_OUT, state.getResItemState(Resource.NW_OUT).floatValue());
|
||||
metric.putMetric(BalanceMetricConstant.CLUSTER_METRIC_LOAD_RE_BALANCE_DISK, state.getResItemState(Resource.DISK).floatValue());
|
||||
|
||||
return Result.buildSuc(metric);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,12 +22,6 @@
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>com.xiaojukeji.kafka</groupId>
|
||||
<artifactId>km-rebalance</artifactId>
|
||||
<version>${project.parent.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
<artifactId>spring-web</artifactId>
|
||||
|
||||
@@ -36,8 +36,6 @@ public class ESConstant {
|
||||
|
||||
public static final Integer DEFAULT_RETRY_TIME = 3;
|
||||
|
||||
public static final String PARTITION_INDEX = "ks_kafka_partition_metric";
|
||||
|
||||
/**
|
||||
* 获取Topic-Latest指标时,单次允许的Topic数
|
||||
*/
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
BUSINESS_VERSION='false'
|
||||
BUSINESS_VERSION='true'
|
||||
PUBLIC_PATH=''
|
||||
|
||||
@@ -31,12 +31,7 @@ export const { Provider, Consumer } = React.createContext('zh');
|
||||
|
||||
const defaultLanguage = 'zh';
|
||||
|
||||
const AppContent = (props: {
|
||||
getLicenseInfo?: (cbk: (msg: string) => void) => void | undefined;
|
||||
licenseEventBus?: Record<string, any> | undefined;
|
||||
}) => {
|
||||
const { getLicenseInfo, licenseEventBus } = props;
|
||||
|
||||
const AppContent = (props: any) => {
|
||||
return (
|
||||
<div className="config-system">
|
||||
<DProLayout.Sider prefixCls={'dcd-two-columns'} width={200} theme={'light'} systemKey={systemKey} menuConf={leftMenus} />
|
||||
@@ -44,7 +39,7 @@ const AppContent = (props: {
|
||||
<RouteGuard
|
||||
routeList={pageRoutes}
|
||||
beforeEach={() => {
|
||||
getLicenseInfo?.((msg) => licenseEventBus?.emit('licenseError', msg));
|
||||
// getLicenseInfo?.((msg) => licenseEventBus?.emit('licenseError', msg));
|
||||
return Promise.resolve(true);
|
||||
}}
|
||||
noMatch={() => <Redirect to="/404" />}
|
||||
@@ -55,7 +50,6 @@ const AppContent = (props: {
|
||||
};
|
||||
|
||||
const App = (props: any) => {
|
||||
const { getLicenseInfo, licenseEventBus } = props;
|
||||
const intlMessages = _.get(localeMap[defaultLanguage], 'intlMessages', intlZhCN);
|
||||
const locale = _.get(localeMap[defaultLanguage], 'intl', 'zh-CN');
|
||||
const antdLocale = _.get(localeMap[defaultLanguage], 'dantd', dantdZhCN);
|
||||
@@ -65,7 +59,7 @@ const App = (props: any) => {
|
||||
<AppContainer intlProvider={{ locale, messages: intlMessages }} antdProvider={{ locale: antdLocale }}>
|
||||
<Router basename={systemKey}>
|
||||
<Switch>
|
||||
<AppContent getLicenseInfo={getLicenseInfo} licenseEventBus={licenseEventBus} />
|
||||
<AppContent />
|
||||
</Switch>
|
||||
</Router>
|
||||
</AppContainer>
|
||||
|
||||
@@ -72,51 +72,12 @@ const logout = () => {
|
||||
localStorage.removeItem('userInfo');
|
||||
};
|
||||
|
||||
const LicenseLimitModal = () => {
|
||||
const [visible, setVisible] = useState<boolean>(false);
|
||||
const [msg, setMsg] = useState<string>('');
|
||||
|
||||
useLayoutEffect(() => {
|
||||
licenseEventBus.on('licenseError', (desc: string) => {
|
||||
!visible && setVisible(true);
|
||||
setMsg(desc);
|
||||
});
|
||||
return () => {
|
||||
licenseEventBus.removeAll('licenseError');
|
||||
};
|
||||
}, []);
|
||||
|
||||
return (
|
||||
<Modal
|
||||
visible={visible}
|
||||
centered={true}
|
||||
width={400}
|
||||
zIndex={10001}
|
||||
title={
|
||||
<>
|
||||
<IconFont type="icon-yichang" style={{ marginRight: 10, fontSize: 18 }} />
|
||||
许可证限制
|
||||
</>
|
||||
}
|
||||
footer={null}
|
||||
onCancel={() => setVisible(false)}
|
||||
>
|
||||
<div style={{ margin: '0 28px', lineHeight: '24px' }}>
|
||||
<div>
|
||||
{msg},<a>前往帮助文档</a>
|
||||
</div>
|
||||
</div>
|
||||
</Modal>
|
||||
);
|
||||
};
|
||||
|
||||
const AppContent = (props: { setlanguage: (language: string) => void }) => {
|
||||
const { pathname } = useLocation();
|
||||
const history = useHistory();
|
||||
const userInfo = localStorage.getItem('userInfo');
|
||||
const [curActiveAppName, setCurActiveAppName] = useState('');
|
||||
const [versionInfo, setVersionInfo] = useState<VersionInfo>();
|
||||
|
||||
useEffect(() => {
|
||||
if (pathname.startsWith('/config')) {
|
||||
setCurActiveAppName('config');
|
||||
@@ -179,7 +140,7 @@ const AppContent = (props: { setlanguage: (language: string) => void }) => {
|
||||
}}
|
||||
onMount={(customProps: any) => {
|
||||
judgePage404();
|
||||
registerApps(systemsConfig, { ...customProps, getLicenseInfo, licenseEventBus }, () => {
|
||||
registerApps(systemsConfig, { ...customProps }, () => {
|
||||
// postMessage();
|
||||
});
|
||||
}}
|
||||
@@ -200,7 +161,6 @@ const AppContent = (props: { setlanguage: (language: string) => void }) => {
|
||||
}}
|
||||
/>
|
||||
</Switch>
|
||||
<LicenseLimitModal />
|
||||
</>
|
||||
</DProLayout.Container>
|
||||
);
|
||||
@@ -234,7 +194,6 @@ export default function App(): JSX.Element {
|
||||
<BrowserRouter basename="">
|
||||
<Switch>
|
||||
<Route path="/login" component={Login} />
|
||||
<Route path="/no-license" exact component={NoLicense} />
|
||||
<Route render={() => <AppContent setlanguage={setlanguage} />} />
|
||||
</Switch>
|
||||
</BrowserRouter>
|
||||
|
||||
@@ -33,6 +33,7 @@ interface PropsType {
|
||||
};
|
||||
onChange: (options: KsHeaderOptions) => void;
|
||||
openMetricFilter: () => void;
|
||||
setScreenType?: any;
|
||||
}
|
||||
|
||||
interface ScopeData {
|
||||
@@ -56,12 +57,29 @@ const GRID_SIZE_OPTIONS = [
|
||||
},
|
||||
];
|
||||
|
||||
// connect 筛选逻辑补充
|
||||
const CONNECT_OPTIONS = [
|
||||
{
|
||||
label: '全部',
|
||||
value: 'all',
|
||||
},
|
||||
{
|
||||
label: 'Cluster',
|
||||
value: 'Connect',
|
||||
},
|
||||
{
|
||||
label: 'Connector',
|
||||
value: 'Connector',
|
||||
},
|
||||
];
|
||||
|
||||
const MetricOperateBar = ({
|
||||
nodeSelect = {},
|
||||
hideNodeScope = false,
|
||||
hideGridSelect = false,
|
||||
onChange: onChangeCallback,
|
||||
openMetricFilter,
|
||||
setScreenType,
|
||||
}: PropsType): JSX.Element => {
|
||||
const [gridNum, setGridNum] = useState<number>(GRID_SIZE_OPTIONS[1].value);
|
||||
const [rangeTime, setRangeTime] = useState<[number, number]>(() => {
|
||||
@@ -139,6 +157,17 @@ const MetricOperateBar = ({
|
||||
<DRangeTime timeChange={timeChange} rangeTimeArr={rangeTime} />
|
||||
</div>
|
||||
<div className="header-right">
|
||||
{/* connect 单独逻辑 */}
|
||||
{setScreenType && (
|
||||
<Select
|
||||
style={{ width: 120, marginRight: 10 }}
|
||||
defaultValue="all"
|
||||
options={CONNECT_OPTIONS}
|
||||
onChange={(e) => {
|
||||
setScreenType(e);
|
||||
}}
|
||||
/>
|
||||
)}
|
||||
{/* 节点范围 */}
|
||||
{!hideNodeScope && (
|
||||
<NodeSelect name={nodeSelect.name || ''} onChange={nodeScopeChange}>
|
||||
|
||||
@@ -72,7 +72,7 @@ const ChartList = (props: ChartListProps) => {
|
||||
const { metricName, metricType, metricUnit, metricLines, showLegend } = data;
|
||||
|
||||
return (
|
||||
<div key={metricName} className="dashboard-drag-item-box">
|
||||
<div key={metricName + metricType} className="dashboard-drag-item-box">
|
||||
<div className="dashboard-drag-item-box-title">
|
||||
<Tooltip
|
||||
placement="topLeft"
|
||||
|
||||
@@ -252,6 +252,7 @@ const ClusterList = (props: { searchParams: SearchParams; showAccessCluster: any
|
||||
const {
|
||||
Brokers: brokers,
|
||||
Zookeepers: zks,
|
||||
// ConnectionsCount: connect,
|
||||
HealthCheckPassed: healthCheckPassed,
|
||||
HealthCheckTotal: healthCheckTotal,
|
||||
HealthState: healthState,
|
||||
@@ -352,6 +353,18 @@ const ClusterList = (props: { searchParams: SearchParams; showAccessCluster: any
|
||||
<div className="indicator-left-item-value">{zookeepersAvailable === -1 ? '-' : zks}</div>
|
||||
</div>
|
||||
)}
|
||||
{/* <div className="indicator-left-item">
|
||||
<div className="indicator-left-item-title">
|
||||
<span
|
||||
className="indicator-left-item-title-dot"
|
||||
style={{
|
||||
background: itemData.latestMetrics?.metrics?.BrokersNotAlive ? '#FF7066' : '#34C38F',
|
||||
}}
|
||||
></span>
|
||||
Connect
|
||||
</div>
|
||||
<div className="indicator-left-item-value">{connect}</div>
|
||||
</div> */}
|
||||
</div>
|
||||
<div className="indicator-right">
|
||||
{metricPoints.map((row, index) => {
|
||||
|
||||
@@ -61,7 +61,6 @@ const LayoutContainer = () => {
|
||||
// 路由前置守卫
|
||||
const routeBeforeEach = useCallback(
|
||||
(path: string, permissionNode: string | number) => {
|
||||
getLicenseInfo((msg) => licenseEventBus.emit('licenseError', msg));
|
||||
// 判断进入页面的前置条件是否满足,如果不满足,则展示加载状态
|
||||
const isClusterNotExist = path.includes(':clusterId') && !global.clusterInfo;
|
||||
const isNotLoadedPermissions = typeof global.hasPermission !== 'function';
|
||||
|
||||
@@ -3,12 +3,10 @@ package com.xiaojukeji.know.streaming.km.core.service.cluster.impl;
|
||||
import com.didiglobal.logi.log.ILog;
|
||||
import com.didiglobal.logi.log.LogFactory;
|
||||
import com.google.common.collect.Table;
|
||||
import com.xiaojukeji.know.streaming.km.common.annotations.enterprise.EnterpriseLoadReBalance;
|
||||
import com.xiaojukeji.know.streaming.km.common.bean.dto.metrices.MetricDTO;
|
||||
import com.xiaojukeji.know.streaming.km.common.bean.dto.metrices.MetricsClusterPhyDTO;
|
||||
import com.xiaojukeji.know.streaming.km.common.bean.entity.broker.Broker;
|
||||
import com.xiaojukeji.know.streaming.km.common.bean.entity.cluster.ClusterPhy;
|
||||
import com.xiaojukeji.know.streaming.km.common.enterprise.rebalance.bean.entity.ClusterBalanceItemState;
|
||||
import com.xiaojukeji.know.streaming.km.common.bean.entity.kafkacontroller.KafkaController;
|
||||
import com.xiaojukeji.know.streaming.km.common.bean.entity.metrics.BrokerMetrics;
|
||||
import com.xiaojukeji.know.streaming.km.common.bean.entity.metrics.ClusterMetrics;
|
||||
@@ -40,8 +38,6 @@ import com.xiaojukeji.know.streaming.km.core.service.acl.KafkaAclService;
|
||||
import com.xiaojukeji.know.streaming.km.core.service.broker.BrokerMetricService;
|
||||
import com.xiaojukeji.know.streaming.km.core.service.broker.BrokerService;
|
||||
import com.xiaojukeji.know.streaming.km.core.service.cluster.ClusterMetricService;
|
||||
import com.xiaojukeji.know.streaming.km.core.service.cluster.ClusterPhyService;
|
||||
import com.xiaojukeji.know.streaming.km.core.enterprise.rebalance.service.ClusterBalanceService;
|
||||
import com.xiaojukeji.know.streaming.km.core.service.group.GroupService;
|
||||
import com.xiaojukeji.know.streaming.km.core.service.health.state.HealthStateService;
|
||||
import com.xiaojukeji.know.streaming.km.core.service.job.JobService;
|
||||
@@ -54,7 +50,6 @@ import com.xiaojukeji.know.streaming.km.persistence.cache.LoadedClusterPhyCache;
|
||||
import com.xiaojukeji.know.streaming.km.persistence.es.dao.ClusterMetricESDAO;
|
||||
import com.xiaojukeji.know.streaming.km.persistence.kafka.KafkaAdminZKClient;
|
||||
import com.xiaojukeji.know.streaming.km.persistence.kafka.KafkaJMXClient;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.model.Resource;
|
||||
import org.apache.kafka.common.TopicPartition;
|
||||
import org.apache.kafka.common.resource.ResourceType;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@@ -72,13 +67,11 @@ import java.util.stream.Collectors;
|
||||
import static com.xiaojukeji.know.streaming.km.common.bean.entity.metrics.ClusterMetrics.initWithMetrics;
|
||||
import static com.xiaojukeji.know.streaming.km.common.bean.entity.result.ResultStatus.*;
|
||||
import static com.xiaojukeji.know.streaming.km.core.service.version.metrics.kafka.TopicMetricVersionItems.*;
|
||||
import static com.xiaojukeji.know.streaming.km.core.service.version.metrics.kafka.ClusterMetricVersionItems.*;
|
||||
|
||||
/**
|
||||
* @author didi
|
||||
*/
|
||||
@Service("clusterMetricService")
|
||||
@EnterpriseLoadReBalance(all = false)
|
||||
@Service
|
||||
public class ClusterMetricServiceImpl extends BaseMetricService implements ClusterMetricService {
|
||||
private static final ILog LOGGER = LogFactory.getLog(ClusterMetricServiceImpl.class);
|
||||
|
||||
@@ -117,9 +110,6 @@ public class ClusterMetricServiceImpl extends BaseMetricService implements Clust
|
||||
public static final String CLUSTER_METHOD_GET_JOBS_SUCCESS = "getJobsSuccess";
|
||||
public static final String CLUSTER_METHOD_GET_JOBS_FAILED = "getJobsFailed";
|
||||
|
||||
@EnterpriseLoadReBalance(all = false)
|
||||
public static final String CLUSTER_METHOD_GET_CLUSTER_LOAD_RE_BALANCE_INFO = "getClusterLoadReBalanceInfo";
|
||||
|
||||
@Autowired
|
||||
private HealthStateService healthStateService;
|
||||
|
||||
@@ -159,12 +149,6 @@ public class ClusterMetricServiceImpl extends BaseMetricService implements Clust
|
||||
@Autowired
|
||||
private JobService jobService;
|
||||
|
||||
@Autowired
|
||||
private ClusterBalanceService clusterBalanceService;
|
||||
|
||||
@Autowired
|
||||
private ClusterPhyService clusterPhyService;
|
||||
|
||||
@Override
|
||||
protected VersionItemTypeEnum getVersionItemType() {
|
||||
return VersionItemTypeEnum.METRIC_CLUSTER;
|
||||
@@ -176,7 +160,6 @@ public class ClusterMetricServiceImpl extends BaseMetricService implements Clust
|
||||
}
|
||||
|
||||
@Override
|
||||
@EnterpriseLoadReBalance(all = false)
|
||||
protected void initRegisterVCHandler(){
|
||||
registerVCHandler( CLUSTER_METHOD_DO_NOTHING, this::doNothing);
|
||||
registerVCHandler( CLUSTER_METHOD_GET_TOPIC_SIZE, this::getTopicSize);
|
||||
@@ -216,8 +199,6 @@ public class ClusterMetricServiceImpl extends BaseMetricService implements Clust
|
||||
registerVCHandler( CLUSTER_METHOD_GET_JOBS_WAITING, this::getJobsWaiting);
|
||||
registerVCHandler( CLUSTER_METHOD_GET_JOBS_SUCCESS, this::getJobsSuccess);
|
||||
registerVCHandler( CLUSTER_METHOD_GET_JOBS_FAILED, this::getJobsFailed);
|
||||
|
||||
registerVCHandler( CLUSTER_METHOD_GET_CLUSTER_LOAD_RE_BALANCE_INFO, this::getClusterLoadReBalanceInfo);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -680,26 +661,6 @@ public class ClusterMetricServiceImpl extends BaseMetricService implements Clust
|
||||
return Result.buildSuc(initWithMetrics(clusterId, metric, count));
|
||||
}
|
||||
|
||||
@EnterpriseLoadReBalance
|
||||
private Result<ClusterMetrics> getClusterLoadReBalanceInfo(VersionItemParam metricParam) {
|
||||
ClusterMetricParam param = (ClusterMetricParam)metricParam;
|
||||
|
||||
Result<ClusterBalanceItemState> stateResult = clusterBalanceService.getItemState(param.getClusterId());
|
||||
if (stateResult.failed()) {
|
||||
return Result.buildFromIgnoreData(stateResult);
|
||||
}
|
||||
|
||||
ClusterBalanceItemState state = stateResult.getData();
|
||||
|
||||
ClusterMetrics metric = ClusterMetrics.initWithMetrics(param.getClusterId(), CLUSTER_METRIC_LOAD_RE_BALANCE_ENABLE, state.getEnable()? Constant.YES: Constant.NO);
|
||||
metric.putMetric(CLUSTER_METRIC_LOAD_RE_BALANCE_CPU, state.getResItemState(Resource.CPU).floatValue());
|
||||
metric.putMetric(CLUSTER_METRIC_LOAD_RE_BALANCE_NW_IN, state.getResItemState(Resource.NW_IN).floatValue());
|
||||
metric.putMetric(CLUSTER_METRIC_LOAD_RE_BALANCE_NW_OUT, state.getResItemState(Resource.NW_OUT).floatValue());
|
||||
metric.putMetric(CLUSTER_METRIC_LOAD_RE_BALANCE_DISK, state.getResItemState(Resource.DISK).floatValue());
|
||||
|
||||
return Result.buildSuc(metric);
|
||||
}
|
||||
|
||||
/**
|
||||
* 从某一个 controller 的 JMX 中获取指标再聚合得到集群的指标
|
||||
* @param metricParam
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
package com.xiaojukeji.know.streaming.km.core.service.version.metrics.kafka;
|
||||
|
||||
import com.xiaojukeji.know.streaming.km.common.annotations.enterprise.EnterpriseLoadReBalance;
|
||||
import com.xiaojukeji.know.streaming.km.common.bean.entity.version.VersionMetricControlItem;
|
||||
import com.xiaojukeji.know.streaming.km.common.constant.Constant;
|
||||
import com.xiaojukeji.know.streaming.km.common.enums.version.VersionEnum;
|
||||
@@ -20,7 +19,6 @@ import static com.xiaojukeji.know.streaming.km.core.service.cluster.impl.Cluster
|
||||
* @author didi
|
||||
*/
|
||||
@Component
|
||||
@EnterpriseLoadReBalance(all = false)
|
||||
public class ClusterMetricVersionItems extends BaseMetricVersionMetric {
|
||||
/**
|
||||
* 整体的健康指标
|
||||
@@ -121,13 +119,6 @@ public class ClusterMetricVersionItems extends BaseMetricVersionMetric {
|
||||
public static final String CLUSTER_METRIC_JOB_SUCCESS = "JobsSuccess";
|
||||
public static final String CLUSTER_METRIC_JOB_FAILED = "JobsFailed";
|
||||
|
||||
@EnterpriseLoadReBalance
|
||||
public static final String CLUSTER_METRIC_LOAD_RE_BALANCE_ENABLE = "LoadReBalanceEnable";
|
||||
public static final String CLUSTER_METRIC_LOAD_RE_BALANCE_CPU = "LoadReBalanceCpu";
|
||||
public static final String CLUSTER_METRIC_LOAD_RE_BALANCE_NW_IN = "LoadReBalanceNwIn";
|
||||
public static final String CLUSTER_METRIC_LOAD_RE_BALANCE_NW_OUT = "LoadReBalanceNwOut";
|
||||
public static final String CLUSTER_METRIC_LOAD_RE_BALANCE_DISK = "LoadReBalanceDisk";
|
||||
|
||||
public static final String CLUSTER_METRIC_COLLECT_COST_TIME = Constant.COLLECT_METRICS_COST_TIME_METRICS_NAME;
|
||||
|
||||
public ClusterMetricVersionItems(){}
|
||||
@@ -138,7 +129,6 @@ public class ClusterMetricVersionItems extends BaseMetricVersionMetric {
|
||||
}
|
||||
|
||||
@Override
|
||||
@EnterpriseLoadReBalance(all = false)
|
||||
public List<VersionMetricControlItem> init(){
|
||||
List<VersionMetricControlItem> itemList = new ArrayList<>();
|
||||
|
||||
@@ -418,27 +408,6 @@ public class ClusterMetricVersionItems extends BaseMetricVersionMetric {
|
||||
.name(CLUSTER_METRIC_JOB_FAILED).unit("个").desc("集群failed任务总数").category(CATEGORY_JOB)
|
||||
.extend( buildMethodExtend( CLUSTER_METHOD_GET_JOBS_FAILED )));
|
||||
|
||||
// 集群维度-均衡相关
|
||||
itemList.add( buildAllVersionsItem()
|
||||
.name(CLUSTER_METRIC_LOAD_RE_BALANCE_ENABLE).unit("是/否").desc("是否开启均衡, 1:是;0:否").category(CATEGORY_CLUSTER)
|
||||
.extend( buildMethodExtend( CLUSTER_METHOD_GET_CLUSTER_LOAD_RE_BALANCE_INFO )));
|
||||
|
||||
itemList.add( buildAllVersionsItem()
|
||||
.name(CLUSTER_METRIC_LOAD_RE_BALANCE_CPU).unit("是/否").desc("CPU是否均衡, 1:是;0:否").category(CATEGORY_CLUSTER)
|
||||
.extend( buildMethodExtend( CLUSTER_METHOD_GET_CLUSTER_LOAD_RE_BALANCE_INFO )));
|
||||
|
||||
itemList.add( buildAllVersionsItem()
|
||||
.name(CLUSTER_METRIC_LOAD_RE_BALANCE_NW_IN).unit("是/否").desc("BytesIn是否均衡, 1:是;0:否").category(CATEGORY_CLUSTER)
|
||||
.extend( buildMethodExtend( CLUSTER_METHOD_GET_CLUSTER_LOAD_RE_BALANCE_INFO )));
|
||||
|
||||
itemList.add( buildAllVersionsItem()
|
||||
.name(CLUSTER_METRIC_LOAD_RE_BALANCE_NW_OUT).unit("是/否").desc("BytesOut是否均衡, 1:是;0:否").category(CATEGORY_CLUSTER)
|
||||
.extend( buildMethodExtend( CLUSTER_METHOD_GET_CLUSTER_LOAD_RE_BALANCE_INFO )));
|
||||
|
||||
itemList.add( buildAllVersionsItem()
|
||||
.name(CLUSTER_METRIC_LOAD_RE_BALANCE_DISK).unit("是/否").desc("Disk是否均衡, 1:是;0:否").category(CATEGORY_CLUSTER)
|
||||
.extend( buildMethodExtend( CLUSTER_METHOD_GET_CLUSTER_LOAD_RE_BALANCE_INFO )));
|
||||
|
||||
itemList.add(buildAllVersionsItem()
|
||||
.name(CLUSTER_METRIC_COLLECT_COST_TIME).unit("秒").desc("采集Cluster指标的耗时").category(CATEGORY_PERFORMANCE)
|
||||
.extendMethod(CLUSTER_METHOD_DO_NOTHING));
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
<artifactId>km-rebalance</artifactId>
|
||||
|
||||
<dependencies>
|
||||
<!--算法依赖的包-->
|
||||
<dependency>
|
||||
<groupId>org.apache.kafka</groupId>
|
||||
<artifactId>kafka-clients</artifactId>
|
||||
@@ -46,22 +47,18 @@
|
||||
<artifactId>jopt-simple</artifactId>
|
||||
</dependency>
|
||||
|
||||
<!-- <dependency>
|
||||
<groupId>org.slf4j</groupId>
|
||||
<artifactId>slf4j-log4j12</artifactId>
|
||||
<scope>runtime</scope>
|
||||
|
||||
<!--应用层依赖的包-->
|
||||
<dependency>
|
||||
<groupId>com.xiaojukeji.kafka</groupId>
|
||||
<artifactId>km-common</artifactId>
|
||||
<version>${project.parent.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>log4j</groupId>
|
||||
<artifactId>log4j</artifactId>
|
||||
<scope>runtime</scope>
|
||||
<groupId>com.xiaojukeji.kafka</groupId>
|
||||
<artifactId>km-core</artifactId>
|
||||
<version>${project.parent.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>commons-logging</groupId>
|
||||
<artifactId>commons-logging</artifactId>
|
||||
<version>1.2</version>
|
||||
<scope>runtime</scope>
|
||||
</dependency>-->
|
||||
</dependencies>
|
||||
|
||||
</project>
|
||||
@@ -1,13 +1,13 @@
|
||||
package com.xiaojukeji.know.streaming.km.rebalance;
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.algorithm;
|
||||
|
||||
|
||||
import com.fasterxml.jackson.core.type.TypeReference;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.executor.ExecutionRebalance;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.executor.common.BalanceParameter;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.executor.common.HostEnv;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.executor.common.OptimizerResult;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.utils.CommandLineUtils;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.executor.ExecutionRebalance;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.executor.common.BalanceParameter;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.executor.common.HostEnv;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.executor.common.OptimizerResult;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.utils.CommandLineUtils;
|
||||
import joptsimple.OptionParser;
|
||||
import joptsimple.OptionSet;
|
||||
import org.apache.commons.io.FileUtils;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.exception;
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.algorithm.exception;
|
||||
|
||||
public class OptimizationFailureException extends Exception {
|
||||
public OptimizationFailureException(String message, Throwable cause) {
|
||||
@@ -1,16 +1,16 @@
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.executor;
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.algorithm.executor;
|
||||
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.executor.common.BalanceGoal;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.executor.common.BalanceParameter;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.executor.common.BalanceThreshold;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.executor.common.BrokerBalanceState;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.model.ClusterModel;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.model.Load;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.model.Resource;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.optimizer.GoalOptimizer;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.optimizer.OptimizationOptions;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.executor.common.OptimizerResult;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.utils.GoalUtils;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.executor.common.BalanceGoal;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.executor.common.BalanceParameter;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.executor.common.BalanceThreshold;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.executor.common.BrokerBalanceState;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.model.ClusterModel;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.model.Load;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.model.Resource;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.optimizer.GoalOptimizer;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.optimizer.OptimizationOptions;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.executor.common.OptimizerResult;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.utils.GoalUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.commons.lang3.Validate;
|
||||
import org.slf4j.Logger;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.executor.common;
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.algorithm.executor.common;
|
||||
|
||||
public class BalanceActionHistory {
|
||||
//均衡目标
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.executor.common;
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.algorithm.executor.common;
|
||||
|
||||
public class BalanceDetailed {
|
||||
private int brokerId;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.executor.common;
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.algorithm.executor.common;
|
||||
|
||||
public enum BalanceGoal {
|
||||
// KM传参时使用
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.executor.common;
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.algorithm.executor.common;
|
||||
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.model.Resource;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.model.Resource;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.executor.common;
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.algorithm.executor.common;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Properties;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.executor.common;
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.algorithm.executor.common;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.executor.common;
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.algorithm.executor.common;
|
||||
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.model.Resource;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.model.Resource;
|
||||
|
||||
public class BalanceThreshold {
|
||||
private final Resource _resource;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.executor.common;
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.algorithm.executor.common;
|
||||
|
||||
public class BrokerBalanceState {
|
||||
//CPU平均资源
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.executor.common;
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.algorithm.executor.common;
|
||||
|
||||
public class HostEnv {
|
||||
//BrokerId
|
||||
@@ -1,13 +1,13 @@
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.executor.common;
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.algorithm.executor.common;
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.model.Broker;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.model.ClusterModel;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.model.ReplicaPlacementInfo;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.model.Resource;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.optimizer.ExecutionProposal;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.optimizer.OptimizationOptions;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.utils.GoalUtils;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.model.Broker;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.model.ClusterModel;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.model.ReplicaPlacementInfo;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.model.Resource;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.optimizer.ExecutionProposal;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.optimizer.OptimizationOptions;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.utils.GoalUtils;
|
||||
import org.apache.kafka.common.TopicPartition;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.executor.common;
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.algorithm.executor.common;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.metric;
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.algorithm.metric;
|
||||
|
||||
/**
|
||||
* @author leewei
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.metric;
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.algorithm.metric;
|
||||
|
||||
/**
|
||||
* @author leewei
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.metric;
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.algorithm.metric;
|
||||
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.model.Load;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.model.Resource;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.model.Load;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.model.Resource;
|
||||
import org.apache.kafka.common.TopicPartition;
|
||||
|
||||
import java.util.*;
|
||||
@@ -1,10 +1,10 @@
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.metric.elasticsearch;
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.algorithm.metric.elasticsearch;
|
||||
|
||||
import com.fasterxml.jackson.databind.JsonNode;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.metric.Metric;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.metric.MetricStore;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.metric.Metrics;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.metric.Metric;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.metric.MetricStore;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.metric.Metrics;
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import org.apache.http.HttpHost;
|
||||
import org.elasticsearch.client.Request;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.model;
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.algorithm.model;
|
||||
|
||||
import org.apache.kafka.common.TopicPartition;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.model;
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.algorithm.model;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.model;
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.algorithm.model;
|
||||
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.executor.common.BalanceActionHistory;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.executor.common.BalanceActionHistory;
|
||||
import org.apache.kafka.common.TopicPartition;
|
||||
|
||||
import java.util.*;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.model;
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.algorithm.model;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.model;
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.algorithm.model;
|
||||
|
||||
import org.apache.kafka.common.TopicPartition;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.model;
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.algorithm.model;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.model;
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.algorithm.model;
|
||||
|
||||
import org.apache.kafka.common.TopicPartition;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.model;
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.algorithm.model;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.model;
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.algorithm.model;
|
||||
|
||||
/**
|
||||
* @author leewei
|
||||
@@ -1,9 +1,9 @@
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.model;
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.algorithm.model;
|
||||
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.metric.MetricStore;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.metric.Metrics;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.metric.elasticsearch.ElasticsearchMetricStore;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.utils.MetadataUtils;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.metric.MetricStore;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.metric.Metrics;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.metric.elasticsearch.ElasticsearchMetricStore;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.utils.MetadataUtils;
|
||||
import org.apache.kafka.clients.producer.ProducerConfig;
|
||||
import org.apache.kafka.common.Cluster;
|
||||
import org.apache.kafka.common.Node;
|
||||
@@ -0,0 +1,5 @@
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.algorithm.optimizer;
|
||||
|
||||
public enum ActionAcceptance {
|
||||
ACCEPT, REJECT;
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.optimizer;
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.algorithm.optimizer;
|
||||
|
||||
public enum ActionType {
|
||||
REPLICA_MOVEMENT("REPLICA"),
|
||||
@@ -1,17 +1,17 @@
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.optimizer;
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.algorithm.optimizer;
|
||||
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.model.ClusterModel;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.model.Replica;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.model.ReplicaPlacementInfo;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.model.Resource;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.optimizer.goals.Goal;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.model.ClusterModel;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.model.Replica;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.model.ReplicaPlacementInfo;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.model.Resource;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.optimizer.goals.Goal;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.kafka.common.TopicPartition;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static com.xiaojukeji.know.streaming.km.rebalance.optimizer.ActionAcceptance.ACCEPT;
|
||||
import static com.xiaojukeji.know.streaming.km.rebalance.algorithm.optimizer.ActionAcceptance.ACCEPT;
|
||||
|
||||
public class AnalyzerUtils {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.optimizer;
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.algorithm.optimizer;
|
||||
|
||||
import org.apache.kafka.common.TopicPartition;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.optimizer;
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.algorithm.optimizer;
|
||||
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.model.ReplicaPlacementInfo;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.model.ReplicaPlacementInfo;
|
||||
import org.apache.kafka.common.TopicPartition;
|
||||
|
||||
import java.util.*;
|
||||
@@ -1,9 +1,9 @@
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.optimizer;
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.algorithm.optimizer;
|
||||
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.executor.common.OptimizerResult;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.model.ClusterModel;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.model.ReplicaPlacementInfo;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.optimizer.goals.Goal;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.executor.common.OptimizerResult;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.model.ClusterModel;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.model.ReplicaPlacementInfo;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.optimizer.goals.Goal;
|
||||
import org.apache.kafka.common.TopicPartition;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.optimizer;
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.algorithm.optimizer;
|
||||
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.executor.common.BalanceParameter;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.model.Resource;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.executor.common.BalanceParameter;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.model.Resource;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.optimizer.goals;
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.algorithm.optimizer.goals;
|
||||
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.model.Broker;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.model.ClusterModel;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.model.Replica;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.optimizer.*;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.model.Broker;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.model.ClusterModel;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.model.Replica;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.optimizer.*;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
@@ -1,10 +1,10 @@
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.optimizer.goals;
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.algorithm.optimizer.goals;
|
||||
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.model.ClusterModel;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.model.Resource;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.optimizer.ActionAcceptance;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.optimizer.ActionType;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.optimizer.BalancingAction;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.model.ClusterModel;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.model.Resource;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.optimizer.ActionAcceptance;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.optimizer.ActionType;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.optimizer.BalancingAction;
|
||||
|
||||
/**
|
||||
* @author leewei
|
||||
@@ -0,0 +1,17 @@
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.algorithm.optimizer.goals;
|
||||
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.model.ClusterModel;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.optimizer.ActionAcceptance;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.optimizer.BalancingAction;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.optimizer.OptimizationOptions;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
public interface Goal {
|
||||
|
||||
void optimize(ClusterModel clusterModel, Set<Goal> optimizedGoals, OptimizationOptions optimizationOptions);
|
||||
|
||||
String name();
|
||||
|
||||
ActionAcceptance actionAcceptance(BalancingAction action, ClusterModel clusterModel);
|
||||
}
|
||||
@@ -1,10 +1,10 @@
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.optimizer.goals;
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.algorithm.optimizer.goals;
|
||||
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.model.ClusterModel;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.model.Resource;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.optimizer.ActionAcceptance;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.optimizer.ActionType;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.optimizer.BalancingAction;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.model.ClusterModel;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.model.Resource;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.optimizer.ActionAcceptance;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.optimizer.ActionType;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.optimizer.BalancingAction;
|
||||
|
||||
/**
|
||||
* @author leewei
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.optimizer.goals;
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.algorithm.optimizer.goals;
|
||||
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.model.Resource;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.model.Resource;
|
||||
|
||||
/**
|
||||
* @author leewei
|
||||
@@ -1,10 +1,10 @@
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.optimizer.goals;
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.algorithm.optimizer.goals;
|
||||
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.model.*;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.optimizer.ActionAcceptance;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.optimizer.ActionType;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.optimizer.BalancingAction;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.optimizer.OptimizationOptions;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.model.*;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.optimizer.ActionAcceptance;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.optimizer.ActionType;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.optimizer.BalancingAction;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.optimizer.OptimizationOptions;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
@@ -1,22 +1,22 @@
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.optimizer.goals;
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.algorithm.optimizer.goals;
|
||||
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.model.Broker;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.model.ClusterModel;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.model.Replica;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.optimizer.ActionAcceptance;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.optimizer.BalancingAction;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.optimizer.OptimizationOptions;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.utils.GoalUtils;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.model.Broker;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.model.ClusterModel;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.model.Replica;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.optimizer.ActionAcceptance;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.optimizer.BalancingAction;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.optimizer.OptimizationOptions;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.utils.GoalUtils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static com.xiaojukeji.know.streaming.km.rebalance.optimizer.ActionAcceptance.ACCEPT;
|
||||
import static com.xiaojukeji.know.streaming.km.rebalance.optimizer.ActionAcceptance.REJECT;
|
||||
import static com.xiaojukeji.know.streaming.km.rebalance.optimizer.ActionType.REPLICA_MOVEMENT;
|
||||
import static com.xiaojukeji.know.streaming.km.rebalance.optimizer.ActionType.LEADERSHIP_MOVEMENT;
|
||||
import static com.xiaojukeji.know.streaming.km.rebalance.algorithm.optimizer.ActionAcceptance.ACCEPT;
|
||||
import static com.xiaojukeji.know.streaming.km.rebalance.algorithm.optimizer.ActionAcceptance.REJECT;
|
||||
import static com.xiaojukeji.know.streaming.km.rebalance.algorithm.optimizer.ActionType.REPLICA_MOVEMENT;
|
||||
import static com.xiaojukeji.know.streaming.km.rebalance.algorithm.optimizer.ActionType.LEADERSHIP_MOVEMENT;
|
||||
|
||||
public class TopicLeadersDistributionGoal extends AbstractGoal {
|
||||
private static final Logger logger = LoggerFactory.getLogger(TopicLeadersDistributionGoal.class);
|
||||
@@ -1,13 +1,13 @@
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.optimizer.goals;
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.algorithm.optimizer.goals;
|
||||
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.model.Broker;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.model.ClusterModel;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.model.Replica;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.optimizer.ActionAcceptance;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.optimizer.ActionType;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.optimizer.BalancingAction;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.optimizer.OptimizationOptions;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.utils.GoalUtils;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.model.Broker;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.model.ClusterModel;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.model.Replica;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.optimizer.ActionAcceptance;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.optimizer.ActionType;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.optimizer.BalancingAction;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.optimizer.OptimizationOptions;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.utils.GoalUtils;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
@@ -0,0 +1,7 @@
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.algorithm;
|
||||
|
||||
/**
|
||||
*
|
||||
* Re-Balance算法部分代码
|
||||
*
|
||||
* */
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.utils;
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.algorithm.utils;
|
||||
|
||||
import joptsimple.OptionParser;
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.utils;
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.algorithm.utils;
|
||||
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.executor.common.BalanceGoal;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.executor.common.BalanceParameter;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.executor.common.BalanceThreshold;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.executor.common.HostEnv;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.model.*;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.optimizer.AnalyzerUtils;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.executor.common.BalanceGoal;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.executor.common.BalanceParameter;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.executor.common.BalanceThreshold;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.executor.common.HostEnv;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.model.*;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.optimizer.AnalyzerUtils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.utils;
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.algorithm.utils;
|
||||
|
||||
import org.apache.kafka.clients.*;
|
||||
import org.apache.kafka.clients.consumer.internals.NoAvailableBrokersException;
|
||||
@@ -0,0 +1,35 @@
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.common;
|
||||
|
||||
public class BalanceMetricConstant {
|
||||
public static final String CLUSTER_METRIC_LOAD_RE_BALANCE_ENABLE = "LoadReBalanceEnable";
|
||||
|
||||
public static final String CLUSTER_METRIC_LOAD_RE_BALANCE_CPU = "LoadReBalanceCpu";
|
||||
|
||||
public static final String CLUSTER_METRIC_LOAD_RE_BALANCE_NW_IN = "LoadReBalanceNwIn";
|
||||
|
||||
public static final String CLUSTER_METRIC_LOAD_RE_BALANCE_NW_OUT = "LoadReBalanceNwOut";
|
||||
|
||||
public static final String CLUSTER_METRIC_LOAD_RE_BALANCE_DISK = "LoadReBalanceDisk";
|
||||
|
||||
// 集群维度-均衡相关
|
||||
// itemList.add( buildAllVersionsItem()
|
||||
// .name(CLUSTER_METRIC_LOAD_RE_BALANCE_ENABLE).unit("是/否").desc("是否开启均衡, 1:是;0:否").category(CATEGORY_CLUSTER)
|
||||
// .extend( buildMethodExtend( CLUSTER_METHOD_GET_CLUSTER_LOAD_RE_BALANCE_INFO )));
|
||||
//
|
||||
// itemList.add( buildAllVersionsItem()
|
||||
// .name(CLUSTER_METRIC_LOAD_RE_BALANCE_CPU).unit("是/否").desc("CPU是否均衡, 1:是;0:否").category(CATEGORY_CLUSTER)
|
||||
// .extend( buildMethodExtend( CLUSTER_METHOD_GET_CLUSTER_LOAD_RE_BALANCE_INFO )));
|
||||
//
|
||||
// itemList.add( buildAllVersionsItem()
|
||||
// .name(CLUSTER_METRIC_LOAD_RE_BALANCE_NW_IN).unit("是/否").desc("BytesIn是否均衡, 1:是;0:否").category(CATEGORY_CLUSTER)
|
||||
// .extend( buildMethodExtend( CLUSTER_METHOD_GET_CLUSTER_LOAD_RE_BALANCE_INFO )));
|
||||
//
|
||||
// itemList.add( buildAllVersionsItem()
|
||||
// .name(CLUSTER_METRIC_LOAD_RE_BALANCE_NW_OUT).unit("是/否").desc("BytesOut是否均衡, 1:是;0:否").category(CATEGORY_CLUSTER)
|
||||
// .extend( buildMethodExtend( CLUSTER_METHOD_GET_CLUSTER_LOAD_RE_BALANCE_INFO )));
|
||||
//
|
||||
// itemList.add( buildAllVersionsItem()
|
||||
// .name(CLUSTER_METRIC_LOAD_RE_BALANCE_DISK).unit("是/否").desc("Disk是否均衡, 1:是;0:否").category(CATEGORY_CLUSTER)
|
||||
// .extend( buildMethodExtend( CLUSTER_METHOD_GET_CLUSTER_LOAD_RE_BALANCE_INFO )));
|
||||
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.xiaojukeji.know.streaming.km.common.enterprise.rebalance.bean.dto;
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.common.bean.dto;
|
||||
|
||||
import com.xiaojukeji.know.streaming.km.common.annotations.enterprise.EnterpriseLoadReBalance;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.xiaojukeji.know.streaming.km.common.enterprise.rebalance.bean.dto;
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.common.bean.dto;
|
||||
|
||||
import com.xiaojukeji.know.streaming.km.common.annotations.enterprise.EnterpriseLoadReBalance;
|
||||
import com.xiaojukeji.know.streaming.km.common.bean.dto.pagination.PaginationBaseDTO;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.xiaojukeji.know.streaming.km.common.enterprise.rebalance.bean.dto;
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.common.bean.dto;
|
||||
|
||||
import com.xiaojukeji.know.streaming.km.common.annotations.enterprise.EnterpriseLoadReBalance;
|
||||
import com.xiaojukeji.know.streaming.km.common.bean.dto.BaseDTO;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.xiaojukeji.know.streaming.km.common.enterprise.rebalance.bean.dto;
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.common.bean.dto;
|
||||
|
||||
import com.xiaojukeji.know.streaming.km.common.annotations.enterprise.EnterpriseLoadReBalance;
|
||||
import com.xiaojukeji.know.streaming.km.common.bean.dto.BaseDTO;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.xiaojukeji.know.streaming.km.common.enterprise.rebalance.bean.entity;
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.common.bean.entity;
|
||||
|
||||
import com.xiaojukeji.know.streaming.km.common.annotations.enterprise.EnterpriseLoadReBalance;
|
||||
import lombok.AllArgsConstructor;
|
||||
@@ -1,8 +1,8 @@
|
||||
package com.xiaojukeji.know.streaming.km.common.enterprise.rebalance.bean.entity;
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.common.bean.entity;
|
||||
|
||||
import com.xiaojukeji.know.streaming.km.common.annotations.enterprise.EnterpriseLoadReBalance;
|
||||
import com.xiaojukeji.know.streaming.km.common.constant.Constant;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.model.Resource;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.model.Resource;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
@@ -27,7 +27,7 @@ public class ClusterBalanceItemState {
|
||||
|
||||
/**
|
||||
* 子项是否均衡:key: disk,bytesIn,bytesOut,cpu ; value:true:已均衡,false:未均衡
|
||||
* @see com.xiaojukeji.know.streaming.km.rebalance.model.Resource
|
||||
* @see com.xiaojukeji.know.streaming.km.rebalance.algorithm.model.Resource
|
||||
*/
|
||||
private Map<String, Boolean> itemState;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* Copyright (c) 2015, WINIT and/or its affiliates. All rights reserved. Use, Copy is subject to authorized license.
|
||||
*/
|
||||
package com.xiaojukeji.know.streaming.km.common.enterprise.rebalance.bean.entity.job;
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.common.bean.entity.job;
|
||||
|
||||
import com.xiaojukeji.know.streaming.km.common.annotations.enterprise.EnterpriseLoadReBalance;
|
||||
import com.xiaojukeji.know.streaming.km.common.bean.entity.BaseEntity;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.xiaojukeji.know.streaming.km.common.enterprise.rebalance.bean.entity.job;
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.common.bean.entity.job;
|
||||
|
||||
import com.xiaojukeji.know.streaming.km.common.annotations.enterprise.EnterpriseLoadReBalance;
|
||||
import lombok.Data;
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.xiaojukeji.know.streaming.km.common.enterprise.rebalance.bean.entity.job;
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.common.bean.entity.job;
|
||||
|
||||
import com.xiaojukeji.know.streaming.km.common.annotations.enterprise.EnterpriseLoadReBalance;
|
||||
import com.xiaojukeji.know.streaming.km.common.enterprise.rebalance.bean.entity.job.detail.ClusterBalanceDetailDataGroupByTopic;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.common.bean.entity.job.detail.ClusterBalanceDetailDataGroupByTopic;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.xiaojukeji.know.streaming.km.common.enterprise.rebalance.bean.entity.job;
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.common.bean.entity.job;
|
||||
|
||||
import com.xiaojukeji.know.streaming.km.common.annotations.enterprise.EnterpriseLoadReBalance;
|
||||
import lombok.Data;
|
||||
@@ -1,8 +1,8 @@
|
||||
package com.xiaojukeji.know.streaming.km.common.enterprise.rebalance.bean.entity.job.content;
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.common.bean.entity.job.content;
|
||||
|
||||
import com.xiaojukeji.know.streaming.km.common.annotations.enterprise.EnterpriseLoadReBalance;
|
||||
import com.xiaojukeji.know.streaming.km.common.bean.entity.job.content.BaseJobCreateContent;
|
||||
import com.xiaojukeji.know.streaming.km.common.enterprise.rebalance.bean.dto.ClusterBalanceIntervalDTO;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.common.bean.dto.ClusterBalanceIntervalDTO;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.xiaojukeji.know.streaming.km.common.enterprise.rebalance.bean.entity.job.detail;
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.common.bean.entity.job.detail;
|
||||
|
||||
import com.xiaojukeji.know.streaming.km.common.annotations.enterprise.EnterpriseLoadReBalance;
|
||||
import lombok.Data;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.xiaojukeji.know.streaming.km.common.enterprise.rebalance.bean.entity.job.detail;
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.common.bean.entity.job.detail;
|
||||
|
||||
import com.xiaojukeji.know.streaming.km.common.annotations.enterprise.EnterpriseLoadReBalance;
|
||||
import lombok.Data;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.xiaojukeji.know.streaming.km.common.enterprise.rebalance.bean.entity.job.detail;
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.common.bean.entity.job.detail;
|
||||
|
||||
import com.xiaojukeji.know.streaming.km.common.annotations.enterprise.EnterpriseLoadReBalance;
|
||||
import lombok.Data;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.xiaojukeji.know.streaming.km.common.enterprise.rebalance.bean.entity.job.detail;
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.common.bean.entity.job.detail;
|
||||
|
||||
import com.xiaojukeji.know.streaming.km.common.annotations.enterprise.EnterpriseLoadReBalance;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* Copyright (c) 2015, WINIT and/or its affiliates. All rights reserved. Use, Copy is subject to authorized license.
|
||||
*/
|
||||
package com.xiaojukeji.know.streaming.km.common.enterprise.rebalance.bean.po;
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.common.bean.po;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.xiaojukeji.know.streaming.km.common.annotations.enterprise.EnterpriseLoadReBalance;
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* Copyright (c) 2015, WINIT and/or its affiliates. All rights reserved. Use, Copy is subject to authorized license.
|
||||
*/
|
||||
package com.xiaojukeji.know.streaming.km.common.enterprise.rebalance.bean.po;
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.common.bean.po;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.xiaojukeji.know.streaming.km.common.bean.po.BasePO;
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* Copyright (c) 2015, WINIT and/or its affiliates. All rights reserved. Use, Copy is subject to authorized license.
|
||||
*/
|
||||
package com.xiaojukeji.know.streaming.km.common.enterprise.rebalance.bean.po;
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.common.bean.po;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.xiaojukeji.know.streaming.km.common.bean.po.BasePO;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.xiaojukeji.know.streaming.km.common.enterprise.rebalance.bean.vo;
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.common.bean.vo;
|
||||
|
||||
import com.xiaojukeji.know.streaming.km.common.annotations.enterprise.EnterpriseLoadReBalance;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.xiaojukeji.know.streaming.km.common.enterprise.rebalance.bean.vo;
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.common.bean.vo;
|
||||
|
||||
import com.xiaojukeji.know.streaming.km.common.annotations.enterprise.EnterpriseLoadReBalance;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.xiaojukeji.know.streaming.km.common.enterprise.rebalance.bean.vo;
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.common.bean.vo;
|
||||
|
||||
import com.xiaojukeji.know.streaming.km.common.annotations.enterprise.EnterpriseLoadReBalance;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
@@ -1,10 +1,10 @@
|
||||
/*
|
||||
* Copyright (c) 2015, WINIT and/or its affiliates. All rights reserved. Use, Copy is subject to authorized license.
|
||||
*/
|
||||
package com.xiaojukeji.know.streaming.km.common.enterprise.rebalance.bean.vo;
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.common.bean.vo;
|
||||
|
||||
import com.xiaojukeji.know.streaming.km.common.annotations.enterprise.EnterpriseLoadReBalance;
|
||||
import com.xiaojukeji.know.streaming.km.common.enterprise.rebalance.bean.entity.ClusterBalanceInterval;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.common.bean.entity.ClusterBalanceInterval;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.xiaojukeji.know.streaming.km.common.enterprise.rebalance.bean.vo;
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.common.bean.vo;
|
||||
|
||||
import com.xiaojukeji.know.streaming.km.common.annotations.enterprise.EnterpriseLoadReBalance;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.xiaojukeji.know.streaming.km.common.enterprise.rebalance.bean.vo;
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.common.bean.vo;
|
||||
|
||||
import com.xiaojukeji.know.streaming.km.common.annotations.enterprise.EnterpriseLoadReBalance;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.xiaojukeji.know.streaming.km.common.enterprise.rebalance.bean.vo;
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.common.bean.vo;
|
||||
|
||||
import com.xiaojukeji.know.streaming.km.common.annotations.enterprise.EnterpriseLoadReBalance;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.xiaojukeji.know.streaming.km.common.enterprise.rebalance.bean.vo;
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.common.bean.vo;
|
||||
|
||||
import com.xiaojukeji.know.streaming.km.common.annotations.enterprise.EnterpriseLoadReBalance;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.xiaojukeji.know.streaming.km.common.enterprise.rebalance.bean.vo;
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.common.bean.vo;
|
||||
|
||||
|
||||
import com.xiaojukeji.know.streaming.km.common.annotations.enterprise.EnterpriseLoadReBalance;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.xiaojukeji.know.streaming.km.common.enterprise.rebalance.bean.vo;
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.common.bean.vo;
|
||||
|
||||
import com.xiaojukeji.know.streaming.km.common.annotations.enterprise.EnterpriseLoadReBalance;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
@@ -1,42 +1,42 @@
|
||||
package com.xiaojukeji.know.streaming.km.common.enterprise.rebalance.converter;
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.common.converter;
|
||||
|
||||
import com.xiaojukeji.know.streaming.km.common.annotations.enterprise.EnterpriseLoadReBalance;
|
||||
import com.xiaojukeji.know.streaming.km.common.enterprise.rebalance.bean.dto.ClusterBalanceIntervalDTO;
|
||||
import com.xiaojukeji.know.streaming.km.common.enterprise.rebalance.bean.dto.ClusterBalancePreviewDTO;
|
||||
import com.xiaojukeji.know.streaming.km.common.enterprise.rebalance.bean.dto.ClusterBalanceStrategyDTO;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.common.bean.dto.ClusterBalanceIntervalDTO;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.common.bean.dto.ClusterBalancePreviewDTO;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.common.bean.dto.ClusterBalanceStrategyDTO;
|
||||
import com.xiaojukeji.know.streaming.km.common.bean.entity.broker.Broker;
|
||||
import com.xiaojukeji.know.streaming.km.common.bean.entity.broker.BrokerSpec;
|
||||
import com.xiaojukeji.know.streaming.km.common.bean.entity.cluster.ClusterPhy;
|
||||
import com.xiaojukeji.know.streaming.km.common.enterprise.rebalance.bean.entity.ClusterBalanceInterval;
|
||||
import com.xiaojukeji.know.streaming.km.common.enterprise.rebalance.bean.entity.job.ClusterBalanceReassignExtendData;
|
||||
import com.xiaojukeji.know.streaming.km.common.enterprise.rebalance.bean.entity.job.detail.ClusterBalancePlanDetail;
|
||||
import com.xiaojukeji.know.streaming.km.common.enterprise.rebalance.bean.entity.job.content.JobClusterBalanceContent;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.common.bean.entity.ClusterBalanceInterval;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.common.bean.entity.job.ClusterBalanceReassignExtendData;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.common.bean.entity.job.detail.ClusterBalancePlanDetail;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.common.bean.entity.job.content.JobClusterBalanceContent;
|
||||
import com.xiaojukeji.know.streaming.km.common.bean.entity.topic.Topic;
|
||||
import com.xiaojukeji.know.streaming.km.common.enterprise.rebalance.bean.po.ClusterBalanceJobConfigPO;
|
||||
import com.xiaojukeji.know.streaming.km.common.enterprise.rebalance.bean.po.ClusterBalanceJobPO;
|
||||
import com.xiaojukeji.know.streaming.km.common.enterprise.rebalance.bean.po.ClusterBalanceReassignPO;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.common.bean.po.ClusterBalanceJobConfigPO;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.common.bean.po.ClusterBalanceJobPO;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.common.bean.po.ClusterBalanceReassignPO;
|
||||
import com.xiaojukeji.know.streaming.km.common.constant.Constant;
|
||||
import com.xiaojukeji.know.streaming.km.common.enterprise.rebalance.bean.vo.*;
|
||||
import com.xiaojukeji.know.streaming.km.common.enterprise.rebalance.enums.ClusterBalanceStateEnum;
|
||||
import com.xiaojukeji.know.streaming.km.common.enterprise.rebalance.enums.ClusterBalanceTypeEnum;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.common.bean.vo.*;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.common.enums.ClusterBalanceStateEnum;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.common.enums.ClusterBalanceTypeEnum;
|
||||
import com.xiaojukeji.know.streaming.km.common.enums.job.JobStatusEnum;
|
||||
import com.xiaojukeji.know.streaming.km.common.enums.job.JobTypeEnum;
|
||||
import com.xiaojukeji.know.streaming.km.common.utils.CommonUtils;
|
||||
import com.xiaojukeji.know.streaming.km.common.utils.ConvertUtil;
|
||||
import com.xiaojukeji.know.streaming.km.common.utils.ValidateUtils;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.executor.common.*;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.model.Resource;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.executor.common.*;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.model.Resource;
|
||||
import org.apache.kafka.clients.CommonClientConfigs;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static com.xiaojukeji.know.streaming.km.common.constant.ESConstant.*;
|
||||
|
||||
@EnterpriseLoadReBalance
|
||||
public class ClusterBalanceConverter {
|
||||
|
||||
public final static String PARTITION_INDEX = "ks_kafka_partition_metric";
|
||||
|
||||
private ClusterBalanceConverter() {
|
||||
}
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
package com.xiaojukeji.know.streaming.km.common.enterprise.rebalance.converter;
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.common.converter;
|
||||
|
||||
import com.xiaojukeji.know.streaming.km.common.annotations.enterprise.EnterpriseLoadReBalance;
|
||||
import com.xiaojukeji.know.streaming.km.common.enterprise.rebalance.bean.entity.job.ClusterBalanceReassignDetail;
|
||||
import com.xiaojukeji.know.streaming.km.common.enterprise.rebalance.bean.entity.job.ClusterBalanceReassignExtendData;
|
||||
import com.xiaojukeji.know.streaming.km.common.enterprise.rebalance.bean.entity.job.detail.ClusterBalanceDetailDataGroupByPartition;
|
||||
import com.xiaojukeji.know.streaming.km.common.enterprise.rebalance.bean.entity.job.detail.ClusterBalanceDetailDataGroupByTopic;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.common.bean.entity.job.ClusterBalanceReassignDetail;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.common.bean.entity.job.ClusterBalanceReassignExtendData;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.common.bean.entity.job.detail.ClusterBalanceDetailDataGroupByPartition;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.common.bean.entity.job.detail.ClusterBalanceDetailDataGroupByTopic;
|
||||
import com.xiaojukeji.know.streaming.km.common.bean.entity.job.Job;
|
||||
import com.xiaojukeji.know.streaming.km.common.bean.entity.job.JobStatus;
|
||||
import com.xiaojukeji.know.streaming.km.common.bean.entity.job.detail.JobDetail;
|
||||
import com.xiaojukeji.know.streaming.km.common.bean.entity.job.detail.SubJobReplicaMoveDetail;
|
||||
import com.xiaojukeji.know.streaming.km.common.bean.entity.reassign.strategy.ReplaceReassignSub;
|
||||
import com.xiaojukeji.know.streaming.km.common.enterprise.rebalance.bean.po.ClusterBalanceJobPO;
|
||||
import com.xiaojukeji.know.streaming.km.common.enterprise.rebalance.bean.po.ClusterBalanceReassignPO;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.common.bean.po.ClusterBalanceJobPO;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.common.bean.po.ClusterBalanceReassignPO;
|
||||
import com.xiaojukeji.know.streaming.km.common.bean.vo.job.sub.SubJobClusterBalanceReplicaMoveVO;
|
||||
import com.xiaojukeji.know.streaming.km.common.bean.vo.job.sub.SubJobPartitionDetailVO;
|
||||
import com.xiaojukeji.know.streaming.km.common.bean.vo.job.sub.SubJobVO;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.xiaojukeji.know.streaming.km.common.enterprise.rebalance.enums;
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.common.enums;
|
||||
|
||||
import com.xiaojukeji.know.streaming.km.common.annotations.enterprise.EnterpriseLoadReBalance;
|
||||
import lombok.Getter;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.xiaojukeji.know.streaming.km.common.enterprise.rebalance.enums;
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.common.enums;
|
||||
|
||||
import com.xiaojukeji.know.streaming.km.common.annotations.enterprise.EnterpriseLoadReBalance;
|
||||
import lombok.Getter;
|
||||
@@ -4,6 +4,6 @@
|
||||
* 当前 package 模块是依据产品的要求,依赖 km-extends/km-rebalance 模块,构建产品实际使用功能
|
||||
*/
|
||||
@EnterpriseLoadReBalance
|
||||
package com.xiaojukeji.know.streaming.km.core.enterprise.rebalance;
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.common;
|
||||
|
||||
import com.xiaojukeji.know.streaming.km.common.annotations.enterprise.EnterpriseLoadReBalance;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.xiaojukeji.know.streaming.km.core.enterprise.rebalance.job;
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.core.job;
|
||||
|
||||
import com.didiglobal.logi.log.ILog;
|
||||
import com.didiglobal.logi.log.LogFactory;
|
||||
@@ -6,41 +6,41 @@ import com.xiaojukeji.know.streaming.km.common.annotations.enterprise.Enterprise
|
||||
import com.xiaojukeji.know.streaming.km.common.bean.entity.broker.Broker;
|
||||
import com.xiaojukeji.know.streaming.km.common.bean.entity.broker.BrokerSpec;
|
||||
import com.xiaojukeji.know.streaming.km.common.bean.entity.cluster.ClusterPhy;
|
||||
import com.xiaojukeji.know.streaming.km.common.enterprise.rebalance.bean.entity.job.ClusterBalanceReassignDetail;
|
||||
import com.xiaojukeji.know.streaming.km.common.enterprise.rebalance.bean.entity.job.detail.ClusterBalanceDetailDataGroupByTopic;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.common.bean.entity.job.ClusterBalanceReassignDetail;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.common.bean.entity.job.detail.ClusterBalanceDetailDataGroupByTopic;
|
||||
import com.xiaojukeji.know.streaming.km.common.bean.entity.job.Job;
|
||||
import com.xiaojukeji.know.streaming.km.common.bean.entity.job.JobStatus;
|
||||
import com.xiaojukeji.know.streaming.km.common.enterprise.rebalance.bean.entity.job.content.JobClusterBalanceContent;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.common.bean.entity.job.content.JobClusterBalanceContent;
|
||||
import com.xiaojukeji.know.streaming.km.common.bean.entity.job.detail.JobDetail;
|
||||
import com.xiaojukeji.know.streaming.km.common.bean.entity.job.detail.JobModifyDetail;
|
||||
import com.xiaojukeji.know.streaming.km.common.bean.entity.result.Result;
|
||||
import com.xiaojukeji.know.streaming.km.common.bean.entity.result.ResultStatus;
|
||||
import com.xiaojukeji.know.streaming.km.common.bean.entity.topic.Topic;
|
||||
import com.xiaojukeji.know.streaming.km.common.enterprise.rebalance.bean.po.ClusterBalanceJobPO;
|
||||
import com.xiaojukeji.know.streaming.km.common.enterprise.rebalance.bean.po.ClusterBalanceReassignPO;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.common.bean.po.ClusterBalanceJobPO;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.common.bean.po.ClusterBalanceReassignPO;
|
||||
import com.xiaojukeji.know.streaming.km.common.bean.po.job.JobPO;
|
||||
import com.xiaojukeji.know.streaming.km.common.bean.vo.job.sub.SubJobPartitionDetailVO;
|
||||
import com.xiaojukeji.know.streaming.km.common.constant.Constant;
|
||||
import com.xiaojukeji.know.streaming.km.common.constant.JobConstant;
|
||||
import com.xiaojukeji.know.streaming.km.common.constant.MsgConstant;
|
||||
import com.xiaojukeji.know.streaming.km.common.enterprise.rebalance.converter.ClusterBalanceConverter;
|
||||
import com.xiaojukeji.know.streaming.km.common.enterprise.rebalance.converter.ClusterBalanceReassignConverter;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.common.converter.ClusterBalanceConverter;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.common.converter.ClusterBalanceReassignConverter;
|
||||
import com.xiaojukeji.know.streaming.km.common.enums.job.JobActionEnum;
|
||||
import com.xiaojukeji.know.streaming.km.common.enums.job.JobTypeEnum;
|
||||
import com.xiaojukeji.know.streaming.km.common.utils.ConvertUtil;
|
||||
import com.xiaojukeji.know.streaming.km.core.service.broker.BrokerService;
|
||||
import com.xiaojukeji.know.streaming.km.core.service.broker.BrokerSpecService;
|
||||
import com.xiaojukeji.know.streaming.km.core.service.cluster.ClusterPhyService;
|
||||
import com.xiaojukeji.know.streaming.km.core.enterprise.rebalance.service.ClusterBalanceJobService;
|
||||
import com.xiaojukeji.know.streaming.km.core.enterprise.rebalance.service.ClusterBalanceReassignService;
|
||||
import com.xiaojukeji.know.streaming.km.core.service.config.ConfigUtils;
|
||||
import com.xiaojukeji.know.streaming.km.core.service.job.JobHandler;
|
||||
import com.xiaojukeji.know.streaming.km.core.service.topic.TopicService;
|
||||
import com.xiaojukeji.know.streaming.km.persistence.mysql.job.JobDAO;
|
||||
import com.xiaojukeji.know.streaming.km.persistence.kafka.zookeeper.service.KafkaZKDAO;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.executor.ExecutionRebalance;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.executor.common.BalanceParameter;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.executor.common.OptimizerResult;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.executor.ExecutionRebalance;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.executor.common.BalanceParameter;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.algorithm.executor.common.OptimizerResult;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.core.service.ClusterBalanceJobService;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.core.service.ClusterBalanceReassignService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.stereotype.Component;
|
||||
@@ -143,8 +143,7 @@ public class ClusterBalanceJobHandler implements JobHandler {
|
||||
ClusterBalanceJobPO clusterBalanceJobPO = ClusterBalanceConverter.convert2ClusterBalanceJobPO(job.getId(), dto, optimizerResult, brokers, operator, generateReassignmentJson);
|
||||
Result<Void> result = clusterBalanceJobService.createClusterBalanceJob(clusterBalanceJobPO, operator);
|
||||
if (result.failed()){
|
||||
logger.error("method=clusterBalanceJobHandler.submit||job={}||errMsg={}!",
|
||||
job, result.getMessage());
|
||||
logger.error("method=submit||job={}||errMsg={}!", job, result.getMessage());
|
||||
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
||||
return result;
|
||||
}
|
||||
@@ -152,8 +151,7 @@ public class ClusterBalanceJobHandler implements JobHandler {
|
||||
//生成迁移明细
|
||||
Result<Void> cbrResult = clusterBalanceReassignService.addBatchBalanceReassign(reassignPOS);
|
||||
if (cbrResult.failed()){
|
||||
logger.error("method=clusterBalanceJobHandler.submit||job={}||errMsg={}!",
|
||||
job, cbrResult.getMessage());
|
||||
logger.error("method=submit||job={}||errMsg={}!", job, cbrResult.getMessage());
|
||||
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
||||
return cbrResult;
|
||||
}
|
||||
@@ -162,14 +160,13 @@ public class ClusterBalanceJobHandler implements JobHandler {
|
||||
job.setTarget(optimizerResult.resultOverview().getMoveTopics());
|
||||
int count = jobDAO.updateById(ConvertUtil.obj2Obj(job, JobPO.class));
|
||||
if (count < 0){
|
||||
logger.error("method=clusterBalanceJobHandler.submit||job={}||errMsg={}!",
|
||||
job, result.getMessage());
|
||||
logger.error("method=submit||job={}||errMsg={}!", job, result.getMessage());
|
||||
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
||||
return Result.buildFrom(ResultStatus.MYSQL_OPERATE_FAILED);
|
||||
}
|
||||
|
||||
}catch (Exception e){
|
||||
logger.error("method=clusterBalanceJobHandler.submit||job={}||errMsg=exception", job, e);
|
||||
logger.error("method=submit||job={}||errMsg=exception", job, e);
|
||||
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
||||
return Result.buildFailure(e.getMessage());
|
||||
}
|
||||
@@ -4,6 +4,6 @@
|
||||
* 当前 package 模块是依据产品的要求,依赖 km-extends/km-rebalance 模块,构建产品实际使用功能
|
||||
*/
|
||||
@EnterpriseLoadReBalance
|
||||
package com.xiaojukeji.know.streaming.km.common.enterprise.rebalance;
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.core;
|
||||
|
||||
import com.xiaojukeji.know.streaming.km.common.annotations.enterprise.EnterpriseLoadReBalance;
|
||||
@@ -1,8 +1,8 @@
|
||||
package com.xiaojukeji.know.streaming.km.core.enterprise.rebalance.service;
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.core.service;
|
||||
|
||||
import com.xiaojukeji.know.streaming.km.common.annotations.enterprise.EnterpriseLoadReBalance;
|
||||
import com.xiaojukeji.know.streaming.km.common.bean.entity.result.Result;
|
||||
import com.xiaojukeji.know.streaming.km.common.enterprise.rebalance.bean.po.ClusterBalanceJobConfigPO;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.common.bean.po.ClusterBalanceJobConfigPO;
|
||||
|
||||
@EnterpriseLoadReBalance
|
||||
public interface ClusterBalanceJobConfigService {
|
||||
@@ -1,12 +1,12 @@
|
||||
package com.xiaojukeji.know.streaming.km.core.enterprise.rebalance.service;
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.core.service;
|
||||
|
||||
import com.xiaojukeji.know.streaming.km.common.annotations.enterprise.EnterpriseLoadReBalance;
|
||||
import com.xiaojukeji.know.streaming.km.common.bean.dto.pagination.PaginationBaseDTO;
|
||||
import com.xiaojukeji.know.streaming.km.common.bean.entity.result.PaginationResult;
|
||||
import com.xiaojukeji.know.streaming.km.common.bean.entity.result.Result;
|
||||
import com.xiaojukeji.know.streaming.km.common.enterprise.rebalance.bean.po.ClusterBalanceJobPO;
|
||||
import com.xiaojukeji.know.streaming.km.common.enterprise.rebalance.bean.po.ClusterBalanceReassignPO;
|
||||
import com.xiaojukeji.know.streaming.km.common.enterprise.rebalance.bean.vo.ClusterBalanceHistoryVO;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.common.bean.po.ClusterBalanceJobPO;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.common.bean.po.ClusterBalanceReassignPO;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.common.bean.vo.ClusterBalanceHistoryVO;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@@ -1,10 +1,10 @@
|
||||
package com.xiaojukeji.know.streaming.km.core.enterprise.rebalance.service;
|
||||
package com.xiaojukeji.know.streaming.km.rebalance.core.service;
|
||||
|
||||
import com.xiaojukeji.know.streaming.km.common.annotations.enterprise.EnterpriseLoadReBalance;
|
||||
import com.xiaojukeji.know.streaming.km.common.enterprise.rebalance.bean.entity.job.ClusterBalanceReassignDetail;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.common.bean.entity.job.ClusterBalanceReassignDetail;
|
||||
import com.xiaojukeji.know.streaming.km.common.bean.entity.result.Result;
|
||||
import com.xiaojukeji.know.streaming.km.common.enterprise.rebalance.bean.po.ClusterBalanceJobPO;
|
||||
import com.xiaojukeji.know.streaming.km.common.enterprise.rebalance.bean.po.ClusterBalanceReassignPO;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.common.bean.po.ClusterBalanceJobPO;
|
||||
import com.xiaojukeji.know.streaming.km.rebalance.common.bean.po.ClusterBalanceReassignPO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user