broker日志配置
This commit is contained in:
@@ -70,4 +70,19 @@ public class ConfigController {
|
|||||||
public Object deleteBrokerConfig(@RequestBody AlterConfigDTO dto) {
|
public Object deleteBrokerConfig(@RequestBody AlterConfigDTO dto) {
|
||||||
return configService.alterBrokerConfig(dto.getEntity(), dto.to(), AlterType.DELETE);
|
return configService.alterBrokerConfig(dto.getEntity(), dto.to(), AlterType.DELETE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@GetMapping("/broker/logger")
|
||||||
|
public Object getBrokerLoggerConfig(String brokerId) {
|
||||||
|
return configService.getBrokerLoggerConfig(brokerId);
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping("/broker/logger")
|
||||||
|
public Object setBrokerLoggerConfig(@RequestBody AlterConfigDTO dto) {
|
||||||
|
return configService.alterBrokerLoggerConfig(dto.getEntity(), dto.to(), AlterType.SET);
|
||||||
|
}
|
||||||
|
|
||||||
|
@DeleteMapping("/broker/logger")
|
||||||
|
public Object deleteBrokerLoggerConfig(@RequestBody AlterConfigDTO dto) {
|
||||||
|
return configService.alterBrokerLoggerConfig(dto.getEntity(), dto.to(), AlterType.DELETE);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,7 +16,11 @@ public interface ConfigService {
|
|||||||
|
|
||||||
ResponseData getBrokerConfig(String brokerId);
|
ResponseData getBrokerConfig(String brokerId);
|
||||||
|
|
||||||
|
ResponseData getBrokerLoggerConfig(String brokerId);
|
||||||
|
|
||||||
ResponseData alterBrokerConfig(String brokerId, ConfigEntry entry, AlterType type);
|
ResponseData alterBrokerConfig(String brokerId, ConfigEntry entry, AlterType type);
|
||||||
|
|
||||||
|
ResponseData alterBrokerLoggerConfig(String brokerId, ConfigEntry entry, AlterType type);
|
||||||
|
|
||||||
ResponseData alterTopicConfig(String topic, ConfigEntry entry, AlterType type);
|
ResponseData alterTopicConfig(String topic, ConfigEntry entry, AlterType type);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -36,6 +36,12 @@ public class ConfigServiceImpl implements ConfigService {
|
|||||||
return ResponseData.create().data(vos).success();
|
return ResponseData.create().data(vos).success();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override public ResponseData getBrokerLoggerConfig(String brokerId) {
|
||||||
|
List<ConfigEntry> configEntries = configConsole.getBrokerLoggerConfig(brokerId);
|
||||||
|
List<ConfigEntryVO> vos = configEntries.stream().map(ConfigEntryVO::from).sorted().collect(Collectors.toList());
|
||||||
|
return ResponseData.create().data(vos).success();
|
||||||
|
}
|
||||||
|
|
||||||
@Override public ResponseData alterBrokerConfig(String brokerId, ConfigEntry entry, AlterType type) {
|
@Override public ResponseData alterBrokerConfig(String brokerId, ConfigEntry entry, AlterType type) {
|
||||||
Tuple2<Object, String> tuple2 = null;
|
Tuple2<Object, String> tuple2 = null;
|
||||||
switch (type) {
|
switch (type) {
|
||||||
@@ -49,6 +55,19 @@ public class ConfigServiceImpl implements ConfigService {
|
|||||||
return (boolean) tuple2._1() ? ResponseData.create().success() : ResponseData.create().failed(tuple2._2());
|
return (boolean) tuple2._1() ? ResponseData.create().success() : ResponseData.create().failed(tuple2._2());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override public ResponseData alterBrokerLoggerConfig(String brokerId, ConfigEntry entry, AlterType type) {
|
||||||
|
Tuple2<Object, String> tuple2 = null;
|
||||||
|
switch (type) {
|
||||||
|
case SET:
|
||||||
|
tuple2 = configConsole.setBrokerLoggerConfig(brokerId, entry);
|
||||||
|
break;
|
||||||
|
case DELETE:
|
||||||
|
tuple2 = configConsole.deleteBrokerLoggerConfig(brokerId, entry);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return (boolean) tuple2._1() ? ResponseData.create().success() : ResponseData.create().failed(tuple2._2());
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ResponseData alterTopicConfig(String topic, ConfigEntry entry, AlterType type) {
|
public ResponseData alterTopicConfig(String topic, ConfigEntry entry, AlterType type) {
|
||||||
Tuple2<Object, String> tuple2 = null;
|
Tuple2<Object, String> tuple2 = null;
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import java.util.Collections
|
|||||||
import java.util.concurrent.TimeUnit
|
import java.util.concurrent.TimeUnit
|
||||||
|
|
||||||
import com.xuxd.kafka.console.config.KafkaConfig
|
import com.xuxd.kafka.console.config.KafkaConfig
|
||||||
import kafka.admin.ConfigCommand.BrokerLoggerConfigType
|
import kafka.console.ConfigConsole.BrokerLoggerConfigType
|
||||||
import kafka.server.ConfigType
|
import kafka.server.ConfigType
|
||||||
import org.apache.kafka.clients.admin.{AlterConfigOp, Config, ConfigEntry, DescribeConfigsOptions}
|
import org.apache.kafka.clients.admin.{AlterConfigOp, Config, ConfigEntry, DescribeConfigsOptions}
|
||||||
import org.apache.kafka.common.config.ConfigResource
|
import org.apache.kafka.common.config.ConfigResource
|
||||||
@@ -31,6 +31,10 @@ class ConfigConsole(config: KafkaConfig) extends KafkaConsole(config: KafkaConfi
|
|||||||
getConfig(ConfigType.Broker, broker)
|
getConfig(ConfigType.Broker, broker)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
def getBrokerLoggerConfig(broker: String): List[ConfigEntry] = {
|
||||||
|
getConfig(BrokerLoggerConfigType, broker)
|
||||||
|
}
|
||||||
|
|
||||||
def setBrokerConfig(broker: String, entry: ConfigEntry): (Boolean, String) = {
|
def setBrokerConfig(broker: String, entry: ConfigEntry): (Boolean, String) = {
|
||||||
alterConfig(ConfigType.Broker, broker, entry, AlterConfigOp.OpType.SET)
|
alterConfig(ConfigType.Broker, broker, entry, AlterConfigOp.OpType.SET)
|
||||||
}
|
}
|
||||||
@@ -47,6 +51,14 @@ class ConfigConsole(config: KafkaConfig) extends KafkaConsole(config: KafkaConfi
|
|||||||
alterConfig(ConfigType.Topic, topic, entry, AlterConfigOp.OpType.DELETE)
|
alterConfig(ConfigType.Topic, topic, entry, AlterConfigOp.OpType.DELETE)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
def setBrokerLoggerConfig(topic: String, entry: ConfigEntry): (Boolean, String) = {
|
||||||
|
alterConfig(BrokerLoggerConfigType, topic, entry, AlterConfigOp.OpType.SET)
|
||||||
|
}
|
||||||
|
|
||||||
|
def deleteBrokerLoggerConfig(topic: String, entry: ConfigEntry): (Boolean, String) = {
|
||||||
|
alterConfig(BrokerLoggerConfigType, topic, entry, AlterConfigOp.OpType.DELETE)
|
||||||
|
}
|
||||||
|
|
||||||
def getConfig(entityType: String, entityName: String): List[ConfigEntry] = {
|
def getConfig(entityType: String, entityName: String): List[ConfigEntry] = {
|
||||||
getResourceConfig(entityType, entityName, false).asJava
|
getResourceConfig(entityType, entityName, false).asJava
|
||||||
}
|
}
|
||||||
@@ -107,3 +119,7 @@ class ConfigConsole(config: KafkaConfig) extends KafkaConsole(config: KafkaConfi
|
|||||||
configResourceType
|
configResourceType
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
object ConfigConsole {
|
||||||
|
val BrokerLoggerConfigType = "broker-loggers"
|
||||||
|
}
|
||||||
|
|||||||
@@ -58,6 +58,10 @@ export const KafkaConfigApi = {
|
|||||||
url: "/config/broker",
|
url: "/config/broker",
|
||||||
method: "get",
|
method: "get",
|
||||||
},
|
},
|
||||||
|
getBrokerLoggerConfig: {
|
||||||
|
url: "/config/broker/logger",
|
||||||
|
method: "get",
|
||||||
|
},
|
||||||
setBrokerConfig: {
|
setBrokerConfig: {
|
||||||
url: "/config/broker",
|
url: "/config/broker",
|
||||||
method: "post",
|
method: "post",
|
||||||
@@ -66,6 +70,14 @@ export const KafkaConfigApi = {
|
|||||||
url: "/config/broker",
|
url: "/config/broker",
|
||||||
method: "delete",
|
method: "delete",
|
||||||
},
|
},
|
||||||
|
setBrokerLoggerConfig: {
|
||||||
|
url: "/config/broker/logger",
|
||||||
|
method: "post",
|
||||||
|
},
|
||||||
|
deleteBrokerLoggerConfig: {
|
||||||
|
url: "/config/broker/logger",
|
||||||
|
method: "delete",
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
export const KafkaTopicApi = {
|
export const KafkaTopicApi = {
|
||||||
|
|||||||
@@ -54,6 +54,7 @@
|
|||||||
:visible="showEditConfigDialog"
|
:visible="showEditConfigDialog"
|
||||||
:record="selectData"
|
:record="selectData"
|
||||||
:broker-id="id"
|
:broker-id="id"
|
||||||
|
:is-logger-config="isLoggerConfig"
|
||||||
@closeEditConfigDialog="closeEditConfigDialog"
|
@closeEditConfigDialog="closeEditConfigDialog"
|
||||||
></EditConfig>
|
></EditConfig>
|
||||||
</a-spin>
|
</a-spin>
|
||||||
@@ -83,6 +84,10 @@ export default {
|
|||||||
type: String,
|
type: String,
|
||||||
default: "",
|
default: "",
|
||||||
},
|
},
|
||||||
|
isLoggerConfig: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
@@ -107,9 +112,12 @@ export default {
|
|||||||
methods: {
|
methods: {
|
||||||
getBrokerConfig() {
|
getBrokerConfig() {
|
||||||
this.loading = true;
|
this.loading = true;
|
||||||
|
const api = this.isLoggerConfig
|
||||||
|
? KafkaConfigApi.getBrokerLoggerConfig
|
||||||
|
: KafkaConfigApi.getBrokerConfig;
|
||||||
request({
|
request({
|
||||||
url: KafkaConfigApi.getBrokerConfig.url + "?brokerId=" + this.id,
|
url: api.url + "?brokerId=" + this.id,
|
||||||
method: KafkaConfigApi.getBrokerConfig.method,
|
method: api.method,
|
||||||
}).then((res) => {
|
}).then((res) => {
|
||||||
this.loading = false;
|
this.loading = false;
|
||||||
if (res.code != 0) {
|
if (res.code != 0) {
|
||||||
@@ -126,9 +134,12 @@ export default {
|
|||||||
deleteBrokerConfig(record) {
|
deleteBrokerConfig(record) {
|
||||||
this.selectData = record;
|
this.selectData = record;
|
||||||
this.loading = true;
|
this.loading = true;
|
||||||
|
const api = this.isLoggerConfig
|
||||||
|
? KafkaConfigApi.deleteBrokerLoggerConfig
|
||||||
|
: KafkaConfigApi.deleteBrokerConfig;
|
||||||
request({
|
request({
|
||||||
url: KafkaConfigApi.deleteBrokerConfig.url,
|
url: api.url,
|
||||||
method: KafkaConfigApi.deleteBrokerConfig.method,
|
method: api.method,
|
||||||
data: {
|
data: {
|
||||||
name: record.name,
|
name: record.name,
|
||||||
value: record.value,
|
value: record.value,
|
||||||
|
|||||||
@@ -18,15 +18,23 @@
|
|||||||
size="small"
|
size="small"
|
||||||
href="javascript:;"
|
href="javascript:;"
|
||||||
class="operation-btn"
|
class="operation-btn"
|
||||||
@click="openBrokerConfigDialog(record)"
|
@click="openBrokerConfigDialog(record, false)"
|
||||||
>属性配置
|
>属性配置
|
||||||
</a-button>
|
</a-button>
|
||||||
|
<a-button
|
||||||
|
size="small"
|
||||||
|
href="javascript:;"
|
||||||
|
class="operation-btn"
|
||||||
|
@click="openBrokerConfigDialog(record, true)"
|
||||||
|
>日志配置
|
||||||
|
</a-button>
|
||||||
</div>
|
</div>
|
||||||
</a-table>
|
</a-table>
|
||||||
</div>
|
</div>
|
||||||
<BrokerConfig
|
<BrokerConfig
|
||||||
:visible="showBrokerConfigDialog"
|
:visible="showBrokerConfigDialog"
|
||||||
:id="this.select.idString"
|
:id="this.select.idString"
|
||||||
|
:is-logger-config="isLoggerConfig"
|
||||||
@closeBrokerConfigDialog="closeBrokerConfigDialog"
|
@closeBrokerConfigDialog="closeBrokerConfigDialog"
|
||||||
></BrokerConfig>
|
></BrokerConfig>
|
||||||
</a-spin>
|
</a-spin>
|
||||||
@@ -49,6 +57,7 @@ export default {
|
|||||||
clusterId: "",
|
clusterId: "",
|
||||||
showBrokerConfigDialog: false,
|
showBrokerConfigDialog: false,
|
||||||
select: {},
|
select: {},
|
||||||
|
isLoggerConfig: false,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
@@ -63,9 +72,10 @@ export default {
|
|||||||
this.clusterId = res.data.clusterId;
|
this.clusterId = res.data.clusterId;
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
openBrokerConfigDialog(record) {
|
openBrokerConfigDialog(record, isLoggerConfig) {
|
||||||
this.select = record;
|
this.select = record;
|
||||||
this.showBrokerConfigDialog = true;
|
this.showBrokerConfigDialog = true;
|
||||||
|
this.isLoggerConfig = isLoggerConfig;
|
||||||
},
|
},
|
||||||
closeBrokerConfigDialog() {
|
closeBrokerConfigDialog() {
|
||||||
this.showBrokerConfigDialog = false;
|
this.showBrokerConfigDialog = false;
|
||||||
|
|||||||
@@ -67,6 +67,10 @@ export default {
|
|||||||
type: String,
|
type: String,
|
||||||
default: "",
|
default: "",
|
||||||
},
|
},
|
||||||
|
isLoggerConfig: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
@@ -87,9 +91,12 @@ export default {
|
|||||||
this.form.validateFields((err, values) => {
|
this.form.validateFields((err, values) => {
|
||||||
if (!err) {
|
if (!err) {
|
||||||
this.loading = true;
|
this.loading = true;
|
||||||
|
const api = this.isLoggerConfig
|
||||||
|
? KafkaConfigApi.setBrokerLoggerConfig
|
||||||
|
: KafkaConfigApi.setBrokerConfig;
|
||||||
request({
|
request({
|
||||||
url: KafkaConfigApi.setBrokerConfig.url,
|
url: api.url,
|
||||||
method: KafkaConfigApi.setBrokerConfig.method,
|
method: api.method,
|
||||||
data: Object.assign({ entity: this.brokerId }, values),
|
data: Object.assign({ entity: this.brokerId }, values),
|
||||||
}).then((res) => {
|
}).then((res) => {
|
||||||
this.loading = false;
|
this.loading = false;
|
||||||
|
|||||||
Reference in New Issue
Block a user