diff --git a/README.md b/README.md
index 0f3cd6ea..518965a5 100644
--- a/README.md
+++ b/README.md
@@ -45,12 +45,14 @@
- `Maven 3.5.0+`(后端打包依赖)
- `node v8.12.0+`(前端打包依赖)
- `Java 8+`(运行环境需要)
-- `MySQL`(数据存储)
+- `MySQL` 或 `PostgreSQL`(数据存储)
---
### 环境初始化
+**MySQL**
+
执行[create_mysql_table.sql](doc/create_mysql_table.sql)中的SQL命令,从而创建所需的MySQL库及表,默认创建的库名是`kafka_manager`。
```
@@ -58,6 +60,24 @@
mysql -uXXXX -pXXX -h XXX.XXX.XXX.XXX -PXXXX < ./create_mysql_table.sql
```
+**PostgreSQL**
+
+执行[create_postgresql_table.sql](doc/create_postgresql_table.sql)中的SQL命令,从而创建所需的PostgreSQL表。
+
+```
+############# 示例:
+psql -h XXX.XXX.XXX.XXX -U XXXX -d kafka_manager -f ./create_postgresql_table.sql
+```
+
+*PostgreSQL 用户、数据库创建方式*
+
+```sql
+create user admin encrypted password 'admin';
+create database kafka_manager owner=admin template=template0 encoding='UTF-8' lc_collate='zh_CN.UTF-8' lc_ctype='zh_CN.UTF-8';
+```
+
+***根据所选择的数据库,请修改 [application.yml](web/src/main/resources/application.yml) 相应配置。***
+
---
diff --git a/console/package-lock.json b/console/package-lock.json
index 1e6cc369..5b64b1b2 100644
--- a/console/package-lock.json
+++ b/console/package-lock.json
@@ -751,8 +751,7 @@
"version": "1.0.0",
"resolved": "http://registry.npm.taobao.org/assert-plus/download/assert-plus-1.0.0.tgz",
"integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
- "dev": true,
- "optional": true
+ "dev": true
},
"assign-symbols": {
"version": "1.0.0",
@@ -1505,7 +1504,6 @@
"resolved": "http://registry.npm.taobao.org/combined-stream/download/combined-stream-1.0.7.tgz",
"integrity": "sha1-LR0kMXr7ir6V1tLAsHtXgTU52Cg=",
"dev": true,
- "optional": true,
"requires": {
"delayed-stream": "~1.0.0"
}
@@ -2222,8 +2220,7 @@
"version": "1.0.0",
"resolved": "http://registry.npm.taobao.org/delayed-stream/download/delayed-stream-1.0.0.tgz",
"integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
- "dev": true,
- "optional": true
+ "dev": true
},
"depd": {
"version": "1.1.2",
@@ -2941,8 +2938,7 @@
"version": "1.3.0",
"resolved": "http://registry.npm.taobao.org/extsprintf/download/extsprintf-1.3.0.tgz",
"integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=",
- "dev": true,
- "optional": true
+ "dev": true
},
"fast-deep-equal": {
"version": "2.0.1",
@@ -3358,8 +3354,7 @@
"ansi-regex": {
"version": "2.1.1",
"bundled": true,
- "dev": true,
- "optional": true
+ "dev": true
},
"aproba": {
"version": "1.2.0",
@@ -3380,14 +3375,12 @@
"balanced-match": {
"version": "1.0.0",
"bundled": true,
- "dev": true,
- "optional": true
+ "dev": true
},
"brace-expansion": {
"version": "1.1.11",
"bundled": true,
"dev": true,
- "optional": true,
"requires": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
@@ -3402,20 +3395,17 @@
"code-point-at": {
"version": "1.1.0",
"bundled": true,
- "dev": true,
- "optional": true
+ "dev": true
},
"concat-map": {
"version": "0.0.1",
"bundled": true,
- "dev": true,
- "optional": true
+ "dev": true
},
"console-control-strings": {
"version": "1.1.0",
"bundled": true,
- "dev": true,
- "optional": true
+ "dev": true
},
"core-util-is": {
"version": "1.0.2",
@@ -3532,8 +3522,7 @@
"inherits": {
"version": "2.0.3",
"bundled": true,
- "dev": true,
- "optional": true
+ "dev": true
},
"ini": {
"version": "1.3.5",
@@ -3545,7 +3534,6 @@
"version": "1.0.0",
"bundled": true,
"dev": true,
- "optional": true,
"requires": {
"number-is-nan": "^1.0.0"
}
@@ -3560,7 +3548,6 @@
"version": "3.0.4",
"bundled": true,
"dev": true,
- "optional": true,
"requires": {
"brace-expansion": "^1.1.7"
}
@@ -3568,14 +3555,12 @@
"minimist": {
"version": "0.0.8",
"bundled": true,
- "dev": true,
- "optional": true
+ "dev": true
},
"minipass": {
"version": "2.3.5",
"bundled": true,
"dev": true,
- "optional": true,
"requires": {
"safe-buffer": "^5.1.2",
"yallist": "^3.0.0"
@@ -3594,7 +3579,6 @@
"version": "0.5.1",
"bundled": true,
"dev": true,
- "optional": true,
"requires": {
"minimist": "0.0.8"
}
@@ -3675,8 +3659,7 @@
"number-is-nan": {
"version": "1.0.1",
"bundled": true,
- "dev": true,
- "optional": true
+ "dev": true
},
"object-assign": {
"version": "4.1.1",
@@ -3688,7 +3671,6 @@
"version": "1.4.0",
"bundled": true,
"dev": true,
- "optional": true,
"requires": {
"wrappy": "1"
}
@@ -3774,8 +3756,7 @@
"safe-buffer": {
"version": "5.1.2",
"bundled": true,
- "dev": true,
- "optional": true
+ "dev": true
},
"safer-buffer": {
"version": "2.1.2",
@@ -3811,7 +3792,6 @@
"version": "1.0.2",
"bundled": true,
"dev": true,
- "optional": true,
"requires": {
"code-point-at": "^1.0.0",
"is-fullwidth-code-point": "^1.0.0",
@@ -3831,7 +3811,6 @@
"version": "3.0.1",
"bundled": true,
"dev": true,
- "optional": true,
"requires": {
"ansi-regex": "^2.0.0"
}
@@ -3875,14 +3854,12 @@
"wrappy": {
"version": "1.0.2",
"bundled": true,
- "dev": true,
- "optional": true
+ "dev": true
},
"yallist": {
"version": "3.0.3",
"bundled": true,
- "dev": true,
- "optional": true
+ "dev": true
}
}
},
@@ -4864,8 +4841,7 @@
"version": "0.1.1",
"resolved": "http://registry.npm.taobao.org/jsbn/download/jsbn-0.1.1.tgz",
"integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
- "dev": true,
- "optional": true
+ "dev": true
},
"json-parse-better-errors": {
"version": "1.0.2",
@@ -8883,8 +8859,7 @@
"version": "0.14.5",
"resolved": "http://registry.npm.taobao.org/tweetnacl/download/tweetnacl-0.14.5.tgz",
"integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
- "dev": true,
- "optional": true
+ "dev": true
},
"type-is": {
"version": "1.6.16",
diff --git a/dao/pom.xml b/dao/pom.xml
index 4b789b3b..0e0cf71f 100644
--- a/dao/pom.xml
+++ b/dao/pom.xml
@@ -43,5 +43,9 @@
mariadb-java-client
2.5.4
+
+ org.postgresql
+ postgresql
+
\ No newline at end of file
diff --git a/doc/create_postgresql_table.sql b/doc/create_postgresql_table.sql
new file mode 100644
index 00000000..cdf04388
--- /dev/null
+++ b/doc/create_postgresql_table.sql
@@ -0,0 +1,323 @@
+-- CREATE DATABASE kafka_manager;
+-- \c kafka_manager;
+SET TIME ZONE 'Asia/Chongqing';
+SET CLIENT_ENCODING TO 'UTF-8';
+
+CREATE OR REPLACE FUNCTION on_update_timestamp() RETURNS TRIGGER AS
+$$
+BEGIN
+ new.gmt_modify = current_timestamp;
+ return new;
+END;
+$$ LANGUAGE plpgsql;
+
+-- 账号表
+CREATE TABLE account
+(
+ id bigserial NOT NULL, -- 'ID',
+ username varchar(64) NOT NULL UNIQUE DEFAULT '', -- '用户名',
+ password varchar(128) NOT NULL DEFAULT '', -- '密码',
+ role int NOT NULL DEFAULT 0, -- '角色类型, 0:普通用户',
+ status int NOT NULL DEFAULT 0, -- '0标识使用中,-1标识已废弃',
+ gmt_create timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, -- '创建时间',
+ gmt_modify timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, -- '修改时间',
+ CONSTRAINT account_pk PRIMARY KEY (id)
+);
+CREATE UNIQUE INDEX account_uniq_username ON account (username);
+INSERT INTO account(username, password, role)
+VALUES ('admin', '21232f297a57a5a743894a0e4a801fc3', 2);
+CREATE TRIGGER account_trig_gmt_modify
+ BEFORE UPDATE
+ ON account
+ FOR EACH ROW
+EXECUTE PROCEDURE on_update_timestamp();
+
+-- 告警规则表
+CREATE TABLE alarm_rule
+(
+ id bigserial, -- '自增ID',
+ alarm_name varchar(128) NOT NULL DEFAULT '', -- '告警名字',
+ strategy_expressions text, -- '表达式',
+ strategy_filters text, -- '过滤条件',
+ strategy_actions text, -- '响应',
+ principals varchar(512) NOT NULL DEFAULT '', -- '负责人',
+ status int2 NOT NULL DEFAULT 1, -- '-1:逻辑删除, 0:关闭, 1:正常',
+ gmt_create timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, -- '创建时间',
+ gmt_modify timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, -- '修改时间',
+ CONSTRAINT alarm_rule_pk PRIMARY KEY (id)
+);
+CREATE UNIQUE INDEX alarm_rule_uniq_alarm_name ON alarm_rule (alarm_name);
+CREATE TRIGGER alarm_rule_trig_gmt_modify
+ BEFORE UPDATE
+ ON alarm_rule
+ FOR EACH ROW
+EXECUTE PROCEDURE on_update_timestamp();
+
+-- Broker信息表
+CREATE TABLE broker
+(
+ id bigserial, -- 'id',
+ cluster_id bigint NOT NULL DEFAULT '-1', -- '集群ID',
+ broker_id int NOT NULL DEFAULT '-1', -- 'BrokerID',
+ host varchar(128) NOT NULL DEFAULT '', -- 'Broker主机名',
+ port int NOT NULL DEFAULT '-1', -- 'Broker端口',
+ timestamp bigint NOT NULL DEFAULT '-1', -- '启动时间',
+ status int NOT NULL DEFAULT '0', -- '状态0有效,-1无效',
+ gmt_create timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, -- '创建时间',
+ gmt_modify timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, -- '修改时间',
+ CONSTRAINT broker_pk PRIMARY KEY (id)
+);
+CREATE UNIQUE INDEX broker_uniq_cluster_id_broker_id ON broker (cluster_id, broker_id);
+CREATE TRIGGER broker_trig_gmt_modify
+ BEFORE UPDATE
+ ON broker
+ FOR EACH ROW
+EXECUTE PROCEDURE on_update_timestamp();
+
+-- BrokerMetric信息表
+CREATE TABLE broker_metrics
+(
+ id bigserial, -- '自增id',
+ cluster_id bigint NOT NULL DEFAULT '-1', -- '集群ID',
+ broker_id int NOT NULL DEFAULT '-1', -- 'BrokerID',
+ bytes_in decimal(53, 2) NOT NULL DEFAULT '0.00', -- '每秒字节流入',
+ bytes_out decimal(53, 2) NOT NULL DEFAULT '0.00', -- '每秒字节流出',
+ bytes_rejected decimal(53, 2) NOT NULL DEFAULT '0.00', -- '每秒被拒绝字节数',
+ messages_in decimal(53, 2) NOT NULL DEFAULT '0.00', -- '每秒消息数流入',
+ fail_fetch_request decimal(53, 2) NOT NULL DEFAULT '0.00', -- '每秒消费失败数',
+ fail_produce_request decimal(53, 2) NOT NULL DEFAULT '0.00', -- '每秒失败生产数',
+ fetch_consumer_request decimal(53, 2) NOT NULL DEFAULT '0.00', -- '每秒消费请求数',
+ produce_request decimal(53, 2) NOT NULL DEFAULT '0.00', -- '每秒生产数',
+ request_handler_idl_percent decimal(53, 2) NOT NULL DEFAULT '0.00', -- '请求处理器繁忙百分比',
+ network_processor_idl_percent decimal(53, 2) NOT NULL DEFAULT '0.00', -- '网络处理器繁忙百分比',
+ request_queue_size bigint NOT NULL DEFAULT '0', -- '请求列表大小',
+ response_queue_size bigint NOT NULL DEFAULT '0', -- '响应列表大小',
+ log_flush_time decimal(53, 2) NOT NULL DEFAULT '0.00', -- '刷日志时间',
+ total_time_produce_mean decimal(53, 2) NOT NULL DEFAULT '0.00', -- 'produce请求处理总时间-平均值',
+ total_time_produce_99th decimal(53, 2) NOT NULL DEFAULT '0.00', -- 'produce请求处理总时间-99分位',
+ total_time_fetch_consumer_mean decimal(53, 2) NOT NULL DEFAULT '0.00', -- 'fetch请求总时间-平均值',
+ total_time_fetch_consumer_99th decimal(53, 2) NOT NULL DEFAULT '0.00', -- 'fetch请求总时间-99分位',
+ gmt_create timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, -- '创建时间',
+ CONSTRAINT broker_metrics_pk PRIMARY KEY (id)
+);
+CREATE INDEX broker_metrics_idx_cluster_id_broker_id_gmt_create ON broker_metrics (cluster_id, broker_id, gmt_create);
+
+-- Cluster表
+CREATE TABLE cluster
+(
+ id bigserial, -- '集群ID',
+ cluster_name varchar(128) NOT NULL DEFAULT '', -- '集群名称',
+ zookeeper varchar(512) NOT NULL DEFAULT '', -- 'ZK地址',
+ bootstrap_servers varchar(512) NOT NULL DEFAULT '', -- 'Server地址',
+ kafka_version varchar(32) NOT NULL DEFAULT '', -- 'Kafka版本',
+ alarm_flag int2 NOT NULL DEFAULT '0', -- '0:不开启告警, 1开启告警',
+ security_protocol varchar(512) NOT NULL DEFAULT '', -- '安全协议',
+ sasl_mechanism varchar(512) NOT NULL DEFAULT '', -- '安全机制',
+ sasl_jaas_config varchar(512) NOT NULL DEFAULT '', -- 'Jaas配置',
+ status int2 NOT NULL DEFAULT '0', -- '删除标记, 0表示未删除, -1表示删除',
+ gmt_create timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, -- '创建时间',
+ gmt_modify timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, -- '修改时间',
+ CONSTRAINT cluster_pk PRIMARY KEY (id)
+);
+CREATE UNIQUE INDEX cluster_uniq_cluster_name ON cluster (cluster_name);
+CREATE TRIGGER cluster_trig_gmt_modify
+ BEFORE UPDATE
+ ON cluster
+ FOR EACH ROW
+EXECUTE PROCEDURE on_update_timestamp();
+
+-- ClusterMetrics信息
+CREATE TABLE cluster_metrics
+(
+ id bigserial, -- '自增id',
+ cluster_id bigint NOT NULL DEFAULT '0', -- '集群ID',
+ topic_num int NOT NULL DEFAULT '0', -- 'Topic数',
+ partition_num int NOT NULL DEFAULT '0', -- '分区数',
+ broker_num int NOT NULL DEFAULT '0', -- 'Broker数',
+ bytes_in decimal(53, 2) NOT NULL DEFAULT '0.00', -- '每秒流入(B)',
+ bytes_out decimal(53, 2) NOT NULL DEFAULT '0.00', -- '每秒流出(B)',
+ bytes_rejected decimal(53, 2) NOT NULL DEFAULT '0.00', -- '每秒拒绝(B)',
+ messages_in decimal(53, 2) NOT NULL DEFAULT '0.00', -- '每秒消息数(条)',
+ gmt_create timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, -- '创建时间',
+ CONSTRAINT cluster_metrics_pk PRIMARY KEY (id)
+);
+CREATE INDEX cluster_metrics_idx_cluster_id_gmt_create ON cluster_metrics (cluster_id, gmt_create);
+
+-- Controller历史变更记录表
+CREATE TABLE controller
+(
+ id bigserial, -- '自增id',
+ cluster_id bigint NOT NULL DEFAULT '-1', -- '集群ID',
+ broker_id int NOT NULL DEFAULT '-1', -- 'BrokerId',
+ host varchar(256) NOT NULL DEFAULT '', -- '主机名',
+ timestamp bigint NOT NULL DEFAULT '-1', -- 'Controller变更时间',
+ version int NOT NULL DEFAULT '-1', -- 'Controller格式版本',
+ gmt_create timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, -- '创建时间',
+ CONSTRAINT controller_pk PRIMARY KEY (id)
+);
+CREATE UNIQUE INDEX controller_uniq_cluster_id_broker_id_timestamp ON controller (cluster_id, broker_id, timestamp);
+
+-- Topic迁移信息
+CREATE TABLE migration_task
+(
+ id bigserial, -- '自增id',
+ cluster_id bigint NOT NULL DEFAULT '0', -- '集群ID',
+ topic_name varchar(192) NOT NULL DEFAULT '', -- 'Topic名称',
+ reassignment_json text, -- '任务参数',
+ real_throttle bigint NOT NULL DEFAULT '0', -- '实际限流值(B/s)',
+ operator varchar(128) NOT NULL DEFAULT '', -- '操作人',
+ description varchar(256) NOT NULL DEFAULT '', -- '备注说明',
+ status int NOT NULL DEFAULT '0', -- '任务状态',
+ gmt_create timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, -- '任务创建时间',
+ gmt_modify timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, -- '任务修改时间',
+ CONSTRAINT migration_task_pk PRIMARY KEY (id)
+);
+CREATE TRIGGER migration_task_trig_gmt_modify
+ BEFORE UPDATE
+ ON migration_task
+ FOR EACH ROW
+EXECUTE PROCEDURE on_update_timestamp();
+
+CREATE TABLE operation_history
+(
+ id bigserial, -- 'id',
+ cluster_id bigint NOT NULL DEFAULT '-1', -- '集群ID',
+ topic_name varchar(192) NOT NULL DEFAULT '', -- 'Topic名称',
+ operator varchar(128) NOT NULL DEFAULT '', -- '操作人',
+ operation varchar(256) NOT NULL DEFAULT '', -- '操作描述',
+ gmt_create timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, -- '创建时间',
+ PRIMARY KEY (id)
+);
+--='操作记录表';
+
+-- 分区申请工单
+CREATE TABLE order_partition
+(
+ id bigserial, -- 'id',
+ cluster_id bigint NOT NULL DEFAULT '-1', -- '集群ID',
+ cluster_name varchar(128) NOT NULL DEFAULT '', -- '集群名称',
+ topic_name varchar(192) NOT NULL DEFAULT '', -- 'Topic名称',
+ applicant varchar(128) NOT NULL DEFAULT '', -- '申请人',
+ peak_bytes_in bigint NOT NULL DEFAULT '0', -- '峰值流量',
+ description text, -- '备注信息',
+ order_status int NOT NULL DEFAULT '0', -- '工单状态',
+ approver varchar(128) NOT NULL DEFAULT '', -- '审批人',
+ opinion varchar(256) NOT NULL DEFAULT '', -- '审批意见',
+ status int NOT NULL DEFAULT '0', -- '状态,0标识有效,-1无效',
+ gmt_create timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, -- '创建时间',
+ gmt_modify timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, -- '修改时间',
+ CONSTRAINT order_partition_pk PRIMARY KEY (id)
+);
+CREATE TRIGGER order_partition_trig_gmt_modify
+ BEFORE UPDATE
+ ON order_partition
+ FOR EACH ROW
+EXECUTE PROCEDURE on_update_timestamp();
+
+-- Topic申请工单
+CREATE TABLE order_topic
+(
+ id bigserial, -- 'ID',
+ cluster_id bigint NOT NULL DEFAULT '-1', -- '集群ID',
+ cluster_name varchar(128) NOT NULL DEFAULT '', -- '集群名称',
+ topic_name varchar(192) NOT NULL DEFAULT '', -- 'Topic名称',
+ retention_time bigint NOT NULL DEFAULT '-1', -- '保留时间(ms)',
+ partition_num int NOT NULL DEFAULT '-1', -- '分区数',
+ replica_num int NOT NULL DEFAULT '-1', -- '副本数',
+ regions varchar(128) NOT NULL DEFAULT '', -- 'RegionId列表',
+ brokers varchar(128) NOT NULL DEFAULT '', -- 'Broker列表',
+ peak_bytes_in bigint NOT NULL DEFAULT '0', -- '峰值流入流量(KB)',
+ applicant varchar(128) NOT NULL DEFAULT '', -- '申请人',
+ principals varchar(256) NOT NULL DEFAULT '', -- '负责人',
+ description text, -- '备注信息',
+ order_status int NOT NULL DEFAULT '0', -- '工单状态',
+ approver varchar(128) NOT NULL DEFAULT '', -- '审批人',
+ opinion varchar(256) NOT NULL DEFAULT '', -- '审批意见',
+ status int NOT NULL DEFAULT '0', -- '状态,0标识有效,-1无效',
+ gmt_create timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, -- '创建时间',
+ gmt_modify timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, -- '修改时间',
+ CONSTRAINT order_topic_pk PRIMARY KEY (id)
+);
+CREATE TRIGGER order_topic_trig_gmt_modify
+ BEFORE UPDATE
+ ON order_topic
+ FOR EACH ROW
+EXECUTE PROCEDURE on_update_timestamp();
+
+-- Region信息表
+CREATE TABLE region
+(
+ id bigserial, -- 'id',
+ cluster_id bigint NOT NULL DEFAULT '-1', -- '集群ID',
+ region_name varchar(128) NOT NULL DEFAULT '', -- 'Region名称',
+ broker_list varchar(256) NOT NULL DEFAULT '', -- 'Broker列表',
+ level int NOT NULL DEFAULT '0', -- 'Region重要等级, 0级普通, 1极重要,2级极重要',
+ operator varchar(45) NOT NULL DEFAULT '', -- '操作人',
+ description text, -- '备注说明',
+ status int NOT NULL DEFAULT '0', -- '状态,0正常,-1废弃,1容量已满',
+ gmt_create timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, -- '创建时间',
+ gmt_modify timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, -- '修改时间',
+ CONSTRAINT region_pk PRIMARY KEY (id)
+);
+CREATE UNIQUE INDEX region_uniq_cluster_id_region_name ON region (cluster_id, region_name);
+CREATE TRIGGER region_trig_gmt_modify
+ BEFORE UPDATE
+ ON region
+ FOR EACH ROW
+EXECUTE PROCEDURE on_update_timestamp();
+
+-- Topic信息表
+CREATE TABLE topic
+(
+ id bigserial, -- 'ID',
+ cluster_id bigint NOT NULL DEFAULT '-1', -- '集群ID',
+ topic_name varchar(192) NOT NULL DEFAULT '', -- 'Topic名称',
+ applicant varchar(256) NOT NULL DEFAULT '', -- '申请人',
+ principals varchar(256) NOT NULL DEFAULT '', -- '负责人',
+ description text, -- '备注信息',
+ status int NOT NULL DEFAULT '0', -- '0标识使用中,-1标识已废弃',
+ gmt_create timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, -- '创建时间',
+ gmt_modify timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, -- '修改时间',
+ CONSTRAINT topic_pk PRIMARY KEY (id)
+); --='';
+CREATE UNIQUE INDEX topic_uniq_cluster_id_topic_name ON topic (cluster_id, topic_name);
+CREATE TRIGGER topic_trig_gmt_modify
+ BEFORE UPDATE
+ ON topic
+ FOR EACH ROW
+EXECUTE PROCEDURE on_update_timestamp();
+
+-- 用户收藏的Topic表
+CREATE TABLE topic_favorite
+(
+ id bigserial, -- '自增Id',
+ username varchar(64) NOT NULL DEFAULT '', -- '用户名',
+ cluster_id bigint NOT NULL DEFAULT '-1', -- '集群ID',
+ topic_name varchar(192) NOT NULL DEFAULT '', -- 'Topic名称',
+ status int NOT NULL DEFAULT '0', -- '删除标记, 0表示未删除, -1表示删除',
+ gmt_create timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, -- '创建时间',
+ gmt_modify timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, -- '修改时间',
+ CONSTRAINT topic_favorite_pk PRIMARY KEY (id)
+);
+CREATE UNIQUE INDEX topic_favorite_uniq_username_cluster_id_topic_name ON topic_favorite (username, cluster_id, topic_name);
+CREATE TRIGGER topic_favorite_trig_gmt_modify
+ BEFORE UPDATE
+ ON topic_favorite
+ FOR EACH ROW
+EXECUTE PROCEDURE on_update_timestamp();
+
+-- TopicMetrics表
+CREATE TABLE topic_metrics
+(
+ id bigserial, -- '自增id',
+ cluster_id bigint NOT NULL DEFAULT '-1', -- '集群ID',
+ topic_name varchar(192) NOT NULL DEFAULT '', -- 'Topic名称',
+ messages_in decimal(53, 2) NOT NULL DEFAULT '0.00', -- '每秒进入消息条数',
+ bytes_in decimal(53, 2) NOT NULL DEFAULT '0.00', -- '每秒字节流入',
+ bytes_out decimal(53, 2) NOT NULL DEFAULT '0.00', -- '每秒字节流出',
+ bytes_rejected decimal(53, 2) NOT NULL DEFAULT '0.00', -- '每秒拒绝字节数',
+ total_produce_requests decimal(53, 2) NOT NULL DEFAULT '0.00', -- '每秒请求数',
+ gmt_create timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, -- '创建时间',
+ CONSTRAINT topic_metrics_pk PRIMARY KEY (id)
+);
+CREATE INDEX topic_metrics_idx_cluster_id_topic_name_gmt_create ON topic_metrics (cluster_id, topic_name, gmt_create);
diff --git a/web/src/main/resources/application.yml b/web/src/main/resources/application.yml
index b0363881..5b1a5cff 100644
--- a/web/src/main/resources/application.yml
+++ b/web/src/main/resources/application.yml
@@ -11,10 +11,17 @@ spring:
name: kafkamanager
datasource:
kafka-manager:
+ #driver-class-name: org.postgresql.Driver
+ #jdbc-url: jdbc:postgresql://localhost:5432/kafka_manager?reWriteBatchedInserts=true
+ driver-class-name: org.mariadb.jdbc.Driver
jdbc-url: jdbc:mysql://localhost:3306/kafka_manager?characterEncoding=UTF-8&serverTimezone=GMT%2B8
username: admin
password: admin
- driver-class-name: org.mariadb.jdbc.Driver
+ type: com.zaxxer.hikari.HikariDataSource
+ hikari:
+ # PostgreSQL 使用
+ #connection-init-sql: "SET TIME ZONE 'Asia/Chongqing';SET CLIENT_ENCODING TO 'UTF-8';"
+ connection-test-query: "select 1;"
main:
allow-bean-definition-overriding: true