diff --git a/docs/install_guide/版本升级手册.md b/docs/install_guide/版本升级手册.md index 2af3f69a..9344f32c 100644 --- a/docs/install_guide/版本升级手册.md +++ b/docs/install_guide/版本升级手册.md @@ -4,7 +4,12 @@ ### 6.2.0、升级至 `master` 版本 -暂无 +**SQL 变更** + +```sql +ALTER TABLE `ks_km_physical_cluster` +ADD COLUMN `zk_properties` TEXT NULL COMMENT 'ZK配置' AFTER `jmx_properties`; +``` ### 6.2.1、升级至 `v3.0.0-beta.2`版本 diff --git a/km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/dto/cluster/ClusterPhyBaseDTO.java b/km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/dto/cluster/ClusterPhyBaseDTO.java index 863e0b29..a9a3587f 100644 --- a/km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/dto/cluster/ClusterPhyBaseDTO.java +++ b/km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/dto/cluster/ClusterPhyBaseDTO.java @@ -3,6 +3,7 @@ package com.xiaojukeji.know.streaming.km.common.bean.dto.cluster; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.xiaojukeji.know.streaming.km.common.bean.dto.BaseDTO; import com.xiaojukeji.know.streaming.km.common.bean.entity.config.JmxConfig; +import com.xiaojukeji.know.streaming.km.common.bean.entity.config.ZKConfig; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -34,4 +35,8 @@ public class ClusterPhyBaseDTO extends BaseDTO { @NotNull(message = "jmxProperties不允许为空") @ApiModelProperty(value="Jmx配置") protected JmxConfig jmxProperties; + + // TODO 前端页面增加时,需要加一个不为空的限制 + @ApiModelProperty(value="ZK配置") + protected ZKConfig zkProperties; } diff --git a/km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/entity/cluster/ClusterPhy.java b/km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/entity/cluster/ClusterPhy.java index 5a0ee86a..823ec67d 100644 --- a/km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/entity/cluster/ClusterPhy.java +++ b/km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/entity/cluster/ClusterPhy.java @@ -53,9 +53,16 @@ public class ClusterPhy implements Comparable, EntifyIdInterface { /** * jmx配置 + * @see com.xiaojukeji.know.streaming.km.common.bean.entity.config.JmxConfig */ private String jmxProperties; + /** + * zk配置 + * @see com.xiaojukeji.know.streaming.km.common.bean.entity.config.ZKConfig + */ + private String zkProperties; + /** * 开启ACL * @see com.xiaojukeji.know.streaming.km.common.enums.cluster.ClusterAuthTypeEnum diff --git a/km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/entity/config/ZKConfig.java b/km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/entity/config/ZKConfig.java new file mode 100644 index 00000000..39e6fdf5 --- /dev/null +++ b/km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/entity/config/ZKConfig.java @@ -0,0 +1,31 @@ +package com.xiaojukeji.know.streaming.km.common.bean.entity.config; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.util.Properties; + +/** + * @author zengqiao + * @date 22/02/24 + */ +@Data +@ApiModel(description = "ZK配置") +public class ZKConfig implements Serializable { + @ApiModelProperty(value="ZK的jmx配置") + private JmxConfig jmxConfig; + + @ApiModelProperty(value="ZK是否开启secure", example = "false") + private Boolean openSecure = false; + + @ApiModelProperty(value="ZK的Session超时时间", example = "15000") + private Long sessionTimeoutUnitMs = 15000L; + + @ApiModelProperty(value="ZK的Request超时时间", example = "5000") + private Long requestTimeoutUnitMs = 5000L; + + @ApiModelProperty(value="ZK的Request超时时间") + private Properties otherProps = new Properties(); +} diff --git a/km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/po/cluster/ClusterPhyPO.java b/km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/po/cluster/ClusterPhyPO.java index a7632057..0a9bba41 100644 --- a/km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/po/cluster/ClusterPhyPO.java +++ b/km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/po/cluster/ClusterPhyPO.java @@ -41,6 +41,11 @@ public class ClusterPhyPO extends BasePO { */ private String jmxProperties; + /** + * zk配置 + */ + private String zkProperties; + /** * 认证类型 * @see com.xiaojukeji.know.streaming.km.common.enums.cluster.ClusterAuthTypeEnum diff --git a/km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/vo/cluster/ClusterPhyBaseVO.java b/km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/vo/cluster/ClusterPhyBaseVO.java index 3541dc38..d0960d27 100644 --- a/km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/vo/cluster/ClusterPhyBaseVO.java +++ b/km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/vo/cluster/ClusterPhyBaseVO.java @@ -31,6 +31,9 @@ public class ClusterPhyBaseVO extends BaseTimeVO { @ApiModelProperty(value="Jmx配置", example = "{}") protected String jmxProperties; + @ApiModelProperty(value="ZK配置", example = "{}") + protected String zkProperties; + @ApiModelProperty(value="描述", example = "测试") protected String description; diff --git a/km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/converter/ClusterConverter.java b/km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/converter/ClusterConverter.java index b0089729..bf848c8e 100644 --- a/km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/converter/ClusterConverter.java +++ b/km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/converter/ClusterConverter.java @@ -19,6 +19,11 @@ public class ClusterConverter { ClusterPhyPO clusterPhyPO = ConvertUtil.obj2Obj(dto, ClusterPhyPO.class); clusterPhyPO.setClientProperties(ConvertUtil.obj2Json(dto.getClientProperties())); clusterPhyPO.setJmxProperties(ConvertUtil.obj2Json(dto.getJmxProperties())); + if (ValidateUtils.isNull(dto.getZkProperties())) { + clusterPhyPO.setZkProperties(""); + } else { + clusterPhyPO.setZkProperties(ConvertUtil.obj2Json(dto.getZkProperties())); + } clusterPhyPO.setRunState( ValidateUtils.isBlank(dto.getZookeeper())? ClusterRunStateEnum.RUN_RAFT.getRunState() : @@ -32,6 +37,11 @@ public class ClusterConverter { ClusterPhyPO clusterPhyPO = ConvertUtil.obj2Obj(dto, ClusterPhyPO.class); clusterPhyPO.setClientProperties(ConvertUtil.obj2Json(dto.getClientProperties())); clusterPhyPO.setJmxProperties(ConvertUtil.obj2Json(dto.getJmxProperties())); + if (ValidateUtils.isNull(dto.getZkProperties())) { + clusterPhyPO.setZkProperties(""); + } else { + clusterPhyPO.setZkProperties(ConvertUtil.obj2Json(dto.getZkProperties())); + } clusterPhyPO.setRunState( ValidateUtils.isBlank(dto.getZookeeper())? ClusterRunStateEnum.RUN_RAFT.getRunState() : diff --git a/km-dist/init/sql/ddl-ks-km.sql b/km-dist/init/sql/ddl-ks-km.sql index 50696917..d9e4e16c 100644 --- a/km-dist/init/sql/ddl-ks-km.sql +++ b/km-dist/init/sql/ddl-ks-km.sql @@ -257,6 +257,7 @@ CREATE TABLE `ks_km_physical_cluster` ( `kafka_version` varchar(32) NOT NULL DEFAULT '' COMMENT 'kafka版本', `client_properties` text COMMENT 'Kafka客户端配置', `jmx_properties` text COMMENT 'JMX配置', + `zk_properties` text COMMENT 'ZK配置', `description` text COMMENT '备注', `auth_type` int(11) NOT NULL DEFAULT '0' COMMENT '认证类型,-1未知,0:无认证,', `run_state` tinyint(4) NOT NULL DEFAULT '1' COMMENT '运行状态, 0表示未监控, 1监控中,有ZK,2:监控中,无ZK', diff --git a/km-persistence/src/main/resources/mybatis/ClusterPhyMapper.xml b/km-persistence/src/main/resources/mybatis/ClusterPhyMapper.xml index 25e16526..ca99b102 100644 --- a/km-persistence/src/main/resources/mybatis/ClusterPhyMapper.xml +++ b/km-persistence/src/main/resources/mybatis/ClusterPhyMapper.xml @@ -13,6 +13,7 @@ + @@ -23,8 +24,8 @@ useGeneratedKeys="true" keyProperty="id"> INSERT INTO ks_km_physical_cluster - (name, zookeeper, bootstrap_servers, kafka_version, client_properties, jmx_properties, description, auth_type, run_state) + (name, zookeeper, bootstrap_servers, kafka_version, client_properties, jmx_properties, zk_properties, description, auth_type, run_state) VALUES - (#{name}, #{zookeeper}, #{bootstrapServers}, #{kafkaVersion}, #{clientProperties}, #{jmxProperties}, #{description}, #{authType}, #{runState}) + (#{name}, #{zookeeper}, #{bootstrapServers}, #{kafkaVersion}, #{clientProperties}, #{jmxProperties}, #{zkProperties}, #{description}, #{authType}, #{runState}) \ No newline at end of file