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