mirror of
https://github.com/didi/KnowStreaming.git
synced 2025-12-24 20:22:12 +08:00
Compare commits
1224 Commits
v2.0.0-alp
...
ve_prd
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
66e3da5d2f | ||
|
|
5f2adfe74e | ||
|
|
cecfde906a | ||
|
|
258385dc9a | ||
|
|
65238231f0 | ||
|
|
cb22e02fbe | ||
|
|
aa0bec1206 | ||
|
|
793c780015 | ||
|
|
ec6f063450 | ||
|
|
f25c65b98b | ||
|
|
2d99aae779 | ||
|
|
a8847dc282 | ||
|
|
4852c01c88 | ||
|
|
3d6f405b69 | ||
|
|
18e3fbf41d | ||
|
|
ae8cc3092b | ||
|
|
5c26e8947b | ||
|
|
fbe6945d3b | ||
|
|
7dc8f2dc48 | ||
|
|
91c60ce72c | ||
|
|
687eea80c8 | ||
|
|
9bfe3fd1db | ||
|
|
03f81bc6de | ||
|
|
eed9571ffa | ||
|
|
e4651ef749 | ||
|
|
f715cf7a8d | ||
|
|
fad9ddb9a1 | ||
|
|
b6e4f50849 | ||
|
|
5c6911e398 | ||
|
|
a0371ab88b | ||
|
|
fa2abadc25 | ||
|
|
f03460f3cd | ||
|
|
b5683b73c2 | ||
|
|
c062586c7e | ||
|
|
98a5c7b776 | ||
|
|
e204023b1f | ||
|
|
4c5ffccc45 | ||
|
|
fbcf58e19c | ||
|
|
e5c6d00438 | ||
|
|
ab6a4d7099 | ||
|
|
78b2b8a45e | ||
|
|
add2af4f3f | ||
|
|
235c0ed30e | ||
|
|
5bd93aa478 | ||
|
|
f95be2c1b3 | ||
|
|
5110b30f62 | ||
|
|
861faa5df5 | ||
|
|
efdf624c67 | ||
|
|
caccf9cef5 | ||
|
|
6ba3dceb84 | ||
|
|
9b7c41e804 | ||
|
|
346aee8fe7 | ||
|
|
353d781bca | ||
|
|
3ce4bf231a | ||
|
|
d046cb8bf4 | ||
|
|
da95c63503 | ||
|
|
915e48de22 | ||
|
|
256f770971 | ||
|
|
16e251cbe8 | ||
|
|
67743b859a | ||
|
|
c275b42632 | ||
|
|
a02760417b | ||
|
|
0e50bfc5d4 | ||
|
|
eab988e18f | ||
|
|
dd6004b9d4 | ||
|
|
ac7c32acd5 | ||
|
|
f4a219ceef | ||
|
|
a8b56fb613 | ||
|
|
2925a20e8e | ||
|
|
6b3eb05735 | ||
|
|
17e0c39f83 | ||
|
|
4994639111 | ||
|
|
c187b5246f | ||
|
|
6ed6d5ec8a | ||
|
|
0735b332a8 | ||
|
|
344cec19fe | ||
|
|
6ef365e201 | ||
|
|
edfa6a9f71 | ||
|
|
860d0b92e2 | ||
|
|
5bceed7105 | ||
|
|
44a2fe0398 | ||
|
|
218459ad1b | ||
|
|
7db757bc12 | ||
|
|
896a943587 | ||
|
|
cd2c388e68 | ||
|
|
4543a339b7 | ||
|
|
1c4fbef9f2 | ||
|
|
b2f0f69365 | ||
|
|
c4fb18a73c | ||
|
|
5cad7b4106 | ||
|
|
f3c4133cd2 | ||
|
|
d9c59cb3d3 | ||
|
|
7a0db7161b | ||
|
|
6aefc16fa0 | ||
|
|
186dcd07e0 | ||
|
|
e8652d5db5 | ||
|
|
fb5964af84 | ||
|
|
249fe7c700 | ||
|
|
cc2a590b33 | ||
|
|
5b3f3e5575 | ||
|
|
36cf285397 | ||
|
|
4386563c2c | ||
|
|
0123ce4a5a | ||
|
|
c3d47d3093 | ||
|
|
9735c4f885 | ||
|
|
3a3141a361 | ||
|
|
ac30436324 | ||
|
|
7176e418f5 | ||
|
|
ca794f507e | ||
|
|
0f8be4fadc | ||
|
|
7066246e8f | ||
|
|
7d1bb48b59 | ||
|
|
dd0d519677 | ||
|
|
4293d05fca | ||
|
|
2c82baf9fc | ||
|
|
921161d6d0 | ||
|
|
e632c6c13f | ||
|
|
5833a8644c | ||
|
|
fab41e892f | ||
|
|
7a52cf67b0 | ||
|
|
175b8d643a | ||
|
|
6241eb052a | ||
|
|
c2fd0a8410 | ||
|
|
5127b600ec | ||
|
|
feb03aede6 | ||
|
|
47b6c5d86a | ||
|
|
c4a81613f4 | ||
|
|
daeb5c4cec | ||
|
|
38def45ad6 | ||
|
|
4b29a2fdfd | ||
|
|
a165ecaeef | ||
|
|
6637ba4ccc | ||
|
|
2f807eec2b | ||
|
|
636c2c6a83 | ||
|
|
898a55c703 | ||
|
|
8ffe7e7101 | ||
|
|
7661826ea5 | ||
|
|
e456be91ef | ||
|
|
da0a97cabf | ||
|
|
c1031a492a | ||
|
|
3c8aaf528c | ||
|
|
70ff20a2b0 | ||
|
|
6918f4babe | ||
|
|
805a704d34 | ||
|
|
c69c289bc4 | ||
|
|
dd5869e246 | ||
|
|
b51ffb81a3 | ||
|
|
ed0efd6bd2 | ||
|
|
39d2fe6195 | ||
|
|
7471d05c20 | ||
|
|
3492688733 | ||
|
|
a603783615 | ||
|
|
5c9096d564 | ||
|
|
c27786a257 | ||
|
|
81910d1958 | ||
|
|
55d5fc4bde | ||
|
|
f30586b150 | ||
|
|
37037c19f0 | ||
|
|
1a5e2c7309 | ||
|
|
941dd4fd65 | ||
|
|
5f6df3681c | ||
|
|
7d045dbf05 | ||
|
|
4ff4accdc3 | ||
|
|
bbe967c4a8 | ||
|
|
b101cec6fa | ||
|
|
e98ec562a2 | ||
|
|
0e71ecc587 | ||
|
|
0f11a65df8 | ||
|
|
da00c8c877 | ||
|
|
8b177877bb | ||
|
|
ea199dca8d | ||
|
|
88b5833f77 | ||
|
|
127b5be651 | ||
|
|
80f001cdd5 | ||
|
|
30d297cae1 | ||
|
|
a96853db90 | ||
|
|
c1502152c0 | ||
|
|
afda292796 | ||
|
|
163cab78ae | ||
|
|
8f4ff36c09 | ||
|
|
47b6b3577a | ||
|
|
f3eca3b214 | ||
|
|
62f7d3f72f | ||
|
|
26e60d8a64 | ||
|
|
df655a250c | ||
|
|
811fc9b400 | ||
|
|
83df02783c | ||
|
|
6a5efce874 | ||
|
|
fa0ae5e474 | ||
|
|
cafd665a2d | ||
|
|
e8f77a456b | ||
|
|
4510c62ebd | ||
|
|
79864955e1 | ||
|
|
ff26a8d46c | ||
|
|
cc226d552e | ||
|
|
962f89475b | ||
|
|
ec204a1605 | ||
|
|
58d7623938 | ||
|
|
8f4ecfcdc0 | ||
|
|
ef719cedbc | ||
|
|
b7856c892b | ||
|
|
7435a78883 | ||
|
|
f49206b316 | ||
|
|
7d500a0721 | ||
|
|
98a519f20b | ||
|
|
39b655bb43 | ||
|
|
78d56a49fe | ||
|
|
d2e9d1fa01 | ||
|
|
41ff914dc3 | ||
|
|
3ba447fac2 | ||
|
|
e9cc380a2e | ||
|
|
017cac9bbe | ||
|
|
9ad72694af | ||
|
|
e8f9821870 | ||
|
|
bb167b9f8d | ||
|
|
28fbb5e130 | ||
|
|
16101e81e8 | ||
|
|
aced504d2a | ||
|
|
abb064d9d1 | ||
|
|
dc1899a1cd | ||
|
|
442f34278c | ||
|
|
a6dcbcd35b | ||
|
|
2b600e96eb | ||
|
|
177bb80f31 | ||
|
|
63fbe728c4 | ||
|
|
b33020840b | ||
|
|
c5caf7c0d6 | ||
|
|
0f0473db4c | ||
|
|
beadde3e06 | ||
|
|
a423a20480 | ||
|
|
79f0a23813 | ||
|
|
780fdea2cc | ||
|
|
1c0fda1adf | ||
|
|
9cf13e9b30 | ||
|
|
87cd058fd8 | ||
|
|
81b1ec48c2 | ||
|
|
66dd82f4fd | ||
|
|
ce35b23911 | ||
|
|
e79342acf5 | ||
|
|
3fc9f39d24 | ||
|
|
0221fb3a4a | ||
|
|
f009f8b7ba | ||
|
|
b76959431a | ||
|
|
975370b593 | ||
|
|
7275030971 | ||
|
|
99b0be5a95 | ||
|
|
edd3f95fc4 | ||
|
|
479f983b09 | ||
|
|
7650332252 | ||
|
|
8f1a021851 | ||
|
|
ce4df4d5fd | ||
|
|
bd43ae1b5d | ||
|
|
8fa34116b9 | ||
|
|
7e92553017 | ||
|
|
b7e243a693 | ||
|
|
35d4888afb | ||
|
|
b3e8a4f0f6 | ||
|
|
321125caee | ||
|
|
e01427aa4f | ||
|
|
14652e7f7a | ||
|
|
7c05899dbd | ||
|
|
56726b703f | ||
|
|
6237b0182f | ||
|
|
be5b662f65 | ||
|
|
224698355c | ||
|
|
8f47138ecd | ||
|
|
d159746391 | ||
|
|
63df93ea5e | ||
|
|
38948c0daa | ||
|
|
6c610427b6 | ||
|
|
b4cc31c459 | ||
|
|
7d781712c9 | ||
|
|
dd61ce9b2a | ||
|
|
69a7212986 | ||
|
|
ff05a951fd | ||
|
|
89d5357b40 | ||
|
|
7ca3d65c42 | ||
|
|
7b5c2d800f | ||
|
|
f414b47a78 | ||
|
|
44f4e2f0f9 | ||
|
|
2361008bdf | ||
|
|
7377ef3ec5 | ||
|
|
a28d064b7a | ||
|
|
e2e57e8575 | ||
|
|
9d90bd2835 | ||
|
|
7445e68df4 | ||
|
|
ab42625ad2 | ||
|
|
18789a0a53 | ||
|
|
68a37bb56a | ||
|
|
3b33652c47 | ||
|
|
1e0c4c3904 | ||
|
|
04e223de16 | ||
|
|
c4a691aa8a | ||
|
|
ff9dde163a | ||
|
|
eb7efbd1a5 | ||
|
|
8c8c362c54 | ||
|
|
66e119ad5d | ||
|
|
6dedc04a05 | ||
|
|
0cf8bad0df | ||
|
|
95c9582d8b | ||
|
|
7815126ff5 | ||
|
|
a5fa9de54b | ||
|
|
95f1a2c630 | ||
|
|
1e256ae1fd | ||
|
|
9fc9c54fa1 | ||
|
|
1b362b1e02 | ||
|
|
04e3172cca | ||
|
|
1caab7f3f7 | ||
|
|
9d33c725ad | ||
|
|
6ed1d38106 | ||
|
|
0f07ddedaf | ||
|
|
289945b471 | ||
|
|
f331a6d144 | ||
|
|
0c8c12a651 | ||
|
|
028c3bb2fa | ||
|
|
d7a5a0d405 | ||
|
|
5ef5f6e531 | ||
|
|
1d205734b3 | ||
|
|
5edd43884f | ||
|
|
c1992373bc | ||
|
|
ed562f9c8a | ||
|
|
b4d44ef8c7 | ||
|
|
ad0c16a1b4 | ||
|
|
7eabe66853 | ||
|
|
3983d73695 | ||
|
|
161d4c4562 | ||
|
|
9a1e89564e | ||
|
|
0c18c5b4f6 | ||
|
|
3e12ba34f7 | ||
|
|
e71e29391b | ||
|
|
9b7b9a7af0 | ||
|
|
a23819c308 | ||
|
|
6cb1825d96 | ||
|
|
77b8c758dc | ||
|
|
e5a582cfad | ||
|
|
ec83db267e | ||
|
|
bfd026cae7 | ||
|
|
35f1dd8082 | ||
|
|
7ed0e7dd23 | ||
|
|
1a3cbf7a9d | ||
|
|
d9e4abc3de | ||
|
|
a4186085d3 | ||
|
|
26b1846bb4 | ||
|
|
1aa89527a6 | ||
|
|
eac76d7ad0 | ||
|
|
cea0cd56f6 | ||
|
|
c4b897f282 | ||
|
|
47389dbabb | ||
|
|
a2f8b1a851 | ||
|
|
feac0a058f | ||
|
|
27eeac9fd4 | ||
|
|
a14db4b194 | ||
|
|
54ee271a47 | ||
|
|
a3a9be4f7f | ||
|
|
d4f0a832f3 | ||
|
|
7dc533372c | ||
|
|
1737d87713 | ||
|
|
dbb98dea11 | ||
|
|
802b382b36 | ||
|
|
fc82999d45 | ||
|
|
08aa000c07 | ||
|
|
39015b5100 | ||
|
|
0d635ad419 | ||
|
|
9133205915 | ||
|
|
725ac10c3d | ||
|
|
2b76358c8f | ||
|
|
833c360698 | ||
|
|
7da1e67b01 | ||
|
|
7eb86a47dd | ||
|
|
d67e383c28 | ||
|
|
8749d3e1f5 | ||
|
|
30fba21c48 | ||
|
|
d83d35aee9 | ||
|
|
1d3caeea7d | ||
|
|
c8806dbb4d | ||
|
|
e5802c7f50 | ||
|
|
590f684d66 | ||
|
|
8e5a67f565 | ||
|
|
8d2fbce11e | ||
|
|
26916f6632 | ||
|
|
fbfa0d2d2a | ||
|
|
e626b99090 | ||
|
|
203859b71b | ||
|
|
9a25c22f3a | ||
|
|
0a03f41a7c | ||
|
|
56191939c8 | ||
|
|
beb754aaaa | ||
|
|
f234f740ca | ||
|
|
e14679694c | ||
|
|
e06712397e | ||
|
|
b6c6df7ffc | ||
|
|
375c6f56c9 | ||
|
|
0bf85c97b5 | ||
|
|
630e582321 | ||
|
|
a89fe23bdd | ||
|
|
a7a5fa9a31 | ||
|
|
c73a7eee2f | ||
|
|
121f8468d5 | ||
|
|
7b0b6936e0 | ||
|
|
597ea04a96 | ||
|
|
f7f90aeaaa | ||
|
|
227479f695 | ||
|
|
6477fb3fe0 | ||
|
|
4223f4f3c4 | ||
|
|
7288874d72 | ||
|
|
68f76f2daf | ||
|
|
fe6ddebc49 | ||
|
|
12b5acd073 | ||
|
|
a6f1fe07b3 | ||
|
|
85e3f2a946 | ||
|
|
d4f416de14 | ||
|
|
0d9a6702c1 | ||
|
|
d11285cdbf | ||
|
|
5f1f33d2b9 | ||
|
|
474daf752d | ||
|
|
27d1b92690 | ||
|
|
993afa4c19 | ||
|
|
028d891c32 | ||
|
|
0df55ec22d | ||
|
|
579f64774d | ||
|
|
792f8d939d | ||
|
|
e4fb02fcda | ||
|
|
0c14c641d0 | ||
|
|
dba671fd1e | ||
|
|
80d1693722 | ||
|
|
26014a11b2 | ||
|
|
848fddd55a | ||
|
|
97f5f05f1a | ||
|
|
25b82810f2 | ||
|
|
9b1e506fa7 | ||
|
|
7a42996e97 | ||
|
|
dbfcebcf67 | ||
|
|
37c3f69a28 | ||
|
|
5d412890b4 | ||
|
|
1e318a4c40 | ||
|
|
d4549176ec | ||
|
|
61efdf492f | ||
|
|
67ea4d44c8 | ||
|
|
fdae05a4aa | ||
|
|
5efb837ee8 | ||
|
|
584b626d93 | ||
|
|
de25a4ed8e | ||
|
|
2e852e5ca6 | ||
|
|
b11000715a | ||
|
|
b3f8b46f0f | ||
|
|
8d22a0664a | ||
|
|
20756a3453 | ||
|
|
c9b4d45a64 | ||
|
|
83f7f5468b | ||
|
|
59c042ad67 | ||
|
|
d550fc5068 | ||
|
|
6effba69a0 | ||
|
|
9b46956259 | ||
|
|
b5a4a732da | ||
|
|
487862367e | ||
|
|
5b63b9ce67 | ||
|
|
afbcd3e1df | ||
|
|
12b82c1395 | ||
|
|
863b765e0d | ||
|
|
731429c51c | ||
|
|
66f3bc61fe | ||
|
|
4efe35dd51 | ||
|
|
c92461ef93 | ||
|
|
405e6e0c1d | ||
|
|
0d227aef49 | ||
|
|
0e49002f42 | ||
|
|
2e016800e0 | ||
|
|
09f317b991 | ||
|
|
5a48cb1547 | ||
|
|
f632febf33 | ||
|
|
3c53467943 | ||
|
|
d358c0f4f7 | ||
|
|
de977a5b32 | ||
|
|
703d685d59 | ||
|
|
31a5f17408 | ||
|
|
c40ae3c455 | ||
|
|
b71a34279e | ||
|
|
8f8c0c4eda | ||
|
|
3a384f0e34 | ||
|
|
cf7bc11cbd | ||
|
|
be60ae8399 | ||
|
|
8e50d145d5 | ||
|
|
7a3d15525c | ||
|
|
64f32d8b24 | ||
|
|
949d6ba605 | ||
|
|
ceb8db09f4 | ||
|
|
ed05a0ebb8 | ||
|
|
a7cbb76655 | ||
|
|
93cbfa0b1f | ||
|
|
6120613a98 | ||
|
|
dbd00db159 | ||
|
|
befde952f5 | ||
|
|
1aa759e5be | ||
|
|
2de27719c1 | ||
|
|
21db57b537 | ||
|
|
dfe8d09477 | ||
|
|
90dfa22c64 | ||
|
|
0f35427645 | ||
|
|
7909f60ff8 | ||
|
|
9a1a8a4c30 | ||
|
|
fa7ad64140 | ||
|
|
8a0c23339d | ||
|
|
e7ab3aff16 | ||
|
|
d0948797b9 | ||
|
|
04a5e17451 | ||
|
|
47065c8042 | ||
|
|
488c778736 | ||
|
|
d10a7bcc75 | ||
|
|
afe44a2537 | ||
|
|
9eadafe850 | ||
|
|
dab3eefcc0 | ||
|
|
2b9a6b28d8 | ||
|
|
465f98ca2b | ||
|
|
a0312be4fd | ||
|
|
4a5161372b | ||
|
|
4c9921f752 | ||
|
|
6dd72d40ee | ||
|
|
db49c234bb | ||
|
|
4a9df0c4d9 | ||
|
|
461573c2ba | ||
|
|
291992753f | ||
|
|
fcefe7ac38 | ||
|
|
7da712fcff | ||
|
|
2fd8687624 | ||
|
|
639b1f8336 | ||
|
|
ab3b83e42a | ||
|
|
4818629c40 | ||
|
|
61784c860a | ||
|
|
d5667254f2 | ||
|
|
af2b93983f | ||
|
|
8281301cbd | ||
|
|
0043ab8371 | ||
|
|
500eaace82 | ||
|
|
28e8540c78 | ||
|
|
69adf682e2 | ||
|
|
69cd1ff6e1 | ||
|
|
415d67cc32 | ||
|
|
46a2fec79b | ||
|
|
560b322fca | ||
|
|
effe17ac85 | ||
|
|
7699acfc1b | ||
|
|
6e058240b3 | ||
|
|
f005c6bc44 | ||
|
|
7be462599f | ||
|
|
271ab432d9 | ||
|
|
4114777a4e | ||
|
|
9189a54442 | ||
|
|
b95ee762e3 | ||
|
|
9e3c4dc06b | ||
|
|
1891a3ac86 | ||
|
|
9ecdcac06d | ||
|
|
790cb6a2e1 | ||
|
|
4a98e5f025 | ||
|
|
507abc1d84 | ||
|
|
9b732fbbad | ||
|
|
220f1c6fc3 | ||
|
|
7a950c67b6 | ||
|
|
78f625dc8c | ||
|
|
211d26a3ed | ||
|
|
dce2bc6326 | ||
|
|
90e5d7f6f0 | ||
|
|
71d4e0f9e6 | ||
|
|
580b4534e0 | ||
|
|
fc835e09c6 | ||
|
|
c6e782a637 | ||
|
|
1ddfbfc833 | ||
|
|
dbf637fe0f | ||
|
|
110e129622 | ||
|
|
677e9d1b54 | ||
|
|
ad2adb905e | ||
|
|
5e9de7ac14 | ||
|
|
c63fb8380c | ||
|
|
2d39acc224 | ||
|
|
e68358e05f | ||
|
|
a96f10edf0 | ||
|
|
f03d94935b | ||
|
|
9c1320cd95 | ||
|
|
4f2ae588a5 | ||
|
|
eff51034b7 | ||
|
|
18832dc448 | ||
|
|
5262ae8907 | ||
|
|
7f251679fa | ||
|
|
5f5920b427 | ||
|
|
65a16d058a | ||
|
|
a73484d23a | ||
|
|
47887a20c6 | ||
|
|
9465c6f198 | ||
|
|
c09872c8c2 | ||
|
|
b0501cc80d | ||
|
|
f0792db6b3 | ||
|
|
e1514c901b | ||
|
|
e90c5003ae | ||
|
|
92a0d5d52c | ||
|
|
8912cb5323 | ||
|
|
d008c19149 | ||
|
|
e844b6444a | ||
|
|
02606cdce2 | ||
|
|
0081720f0e | ||
|
|
cca1e92868 | ||
|
|
69b774a074 | ||
|
|
5656b03fb4 | ||
|
|
02d0dcbb7f | ||
|
|
7b2e06df12 | ||
|
|
4259ae63d7 | ||
|
|
d7b11803bc | ||
|
|
fed298a6d4 | ||
|
|
51832385b1 | ||
|
|
462303fca0 | ||
|
|
4405703e42 | ||
|
|
23e398e121 | ||
|
|
b17bb89d04 | ||
|
|
5590cebf8f | ||
|
|
1fa043f09d | ||
|
|
3bd0af1451 | ||
|
|
1545962745 | ||
|
|
d032571681 | ||
|
|
33fb0acc7e | ||
|
|
1ec68a91e2 | ||
|
|
a23c113a46 | ||
|
|
371ae2c0a5 | ||
|
|
8f8f6ffa27 | ||
|
|
475fe0d91f | ||
|
|
3d74e60d03 | ||
|
|
83ac83bb28 | ||
|
|
8478fb857c | ||
|
|
7074bdaa9f | ||
|
|
58164294cc | ||
|
|
7c0e9df156 | ||
|
|
bd62212ecb | ||
|
|
2292039b42 | ||
|
|
73f8da8d5a | ||
|
|
e51dbe0ca7 | ||
|
|
482a375e31 | ||
|
|
689c5ce455 | ||
|
|
734a020ecc | ||
|
|
44d537f78c | ||
|
|
b4c60eb910 | ||
|
|
e120b32375 | ||
|
|
de54966d30 | ||
|
|
39a6302c18 | ||
|
|
05ceeea4b0 | ||
|
|
9f8e3373a8 | ||
|
|
42521cbae4 | ||
|
|
b23c35197e | ||
|
|
70f28d9ac4 | ||
|
|
912d73d98a | ||
|
|
2a720fce6f | ||
|
|
e4534c359f | ||
|
|
b91bec15f2 | ||
|
|
67ad5cacb7 | ||
|
|
b4a739476a | ||
|
|
a7bf2085db | ||
|
|
c3802cf48b | ||
|
|
54711c4491 | ||
|
|
fcb52a69c0 | ||
|
|
1b632f9754 | ||
|
|
73d7a0ecdc | ||
|
|
08943593b3 | ||
|
|
c949a88f20 | ||
|
|
a49c11f655 | ||
|
|
a66aed4a88 | ||
|
|
0045c953a0 | ||
|
|
fdce41b451 | ||
|
|
4d5e4d0f00 | ||
|
|
82c9b6481e | ||
|
|
053d4dcb18 | ||
|
|
e1b2c442aa | ||
|
|
0ed8ba8ca4 | ||
|
|
f195847c68 | ||
|
|
5beb13b17e | ||
|
|
7d9ec05062 | ||
|
|
fc604a9eaf | ||
|
|
4f3c1ad9b6 | ||
|
|
6d45ed586c | ||
|
|
1afb633b4f | ||
|
|
34d9f9174b | ||
|
|
3b0c208eff | ||
|
|
05022f8db4 | ||
|
|
3336de457a | ||
|
|
10a27bc29c | ||
|
|
542e5d3c2d | ||
|
|
7372617b14 | ||
|
|
89735a130b | ||
|
|
859cf74bd6 | ||
|
|
e2744ab399 | ||
|
|
16bd065098 | ||
|
|
71c52e6dd7 | ||
|
|
a7f8c3ced3 | ||
|
|
f3f0432c65 | ||
|
|
426ba2d150 | ||
|
|
2790099efa | ||
|
|
f6ba8bc95e | ||
|
|
d6181522c0 | ||
|
|
04cf071ca6 | ||
|
|
e4371b5d02 | ||
|
|
52c52b2a0d | ||
|
|
8f40f10575 | ||
|
|
fe0f6fcd0b | ||
|
|
31b1ad8bb4 | ||
|
|
373680d854 | ||
|
|
9e3bc80495 | ||
|
|
89405fe003 | ||
|
|
b9ea3865a5 | ||
|
|
b5bd643814 | ||
|
|
52ccaeffd5 | ||
|
|
18136c12fd | ||
|
|
dec3f9e75e | ||
|
|
ccc0ee4d18 | ||
|
|
69e9708080 | ||
|
|
5944ba099a | ||
|
|
ada2718b5e | ||
|
|
1f87bd63e7 | ||
|
|
c0f3259cf6 | ||
|
|
e1d5749a40 | ||
|
|
a8d7eb27d9 | ||
|
|
1eecdf3829 | ||
|
|
be8b345889 | ||
|
|
074da389b3 | ||
|
|
4df2dc09fe | ||
|
|
e8d42ba074 | ||
|
|
c036483680 | ||
|
|
2818584db6 | ||
|
|
37585f760d | ||
|
|
f5477a03a1 | ||
|
|
50388425b2 | ||
|
|
725c59eab0 | ||
|
|
7bf1de29a4 | ||
|
|
d90c3fc7dd | ||
|
|
80785ce072 | ||
|
|
44ea896de8 | ||
|
|
d30cb8a0f0 | ||
|
|
6c7b333b34 | ||
|
|
6d34a00e77 | ||
|
|
1f353e10ce | ||
|
|
4e10f8d1c5 | ||
|
|
a22cd853fc | ||
|
|
354e0d6a87 | ||
|
|
dfabe28645 | ||
|
|
fce230da48 | ||
|
|
055ba9bda6 | ||
|
|
ec19c3b4dd | ||
|
|
37aa526404 | ||
|
|
86c1faa40f | ||
|
|
8dcf15d0f9 | ||
|
|
6835e1e680 | ||
|
|
d8f89b8f67 | ||
|
|
ec28eba781 | ||
|
|
5ef8fff5bc | ||
|
|
4f317b76fa | ||
|
|
61672637dc | ||
|
|
ecf6e8f664 | ||
|
|
4115975320 | ||
|
|
21904a8609 | ||
|
|
10b0a3dabb | ||
|
|
b2091e9aed | ||
|
|
f2cb5bd77c | ||
|
|
19c61c52e6 | ||
|
|
b327359183 | ||
|
|
9e9bb72e17 | ||
|
|
a23907e009 | ||
|
|
ad131f5a2c | ||
|
|
dbeae4ca68 | ||
|
|
0fb0e94848 | ||
|
|
95d2a82d35 | ||
|
|
5bc6eb6774 | ||
|
|
3ba81e9aaa | ||
|
|
329a9b59c1 | ||
|
|
39cccd568e | ||
|
|
19b7f6ad8c | ||
|
|
41c000cf47 | ||
|
|
1b8ea61e87 | ||
|
|
22c26e24b1 | ||
|
|
396045177c | ||
|
|
4538593236 | ||
|
|
8086ef355b | ||
|
|
60d038fe46 | ||
|
|
ff0f4463be | ||
|
|
820571d993 | ||
|
|
e311d3767c | ||
|
|
24d7b80244 | ||
|
|
61f99e4d2e | ||
|
|
d5348bcf49 | ||
|
|
5d31d66365 | ||
|
|
29778a0154 | ||
|
|
165c0a5866 | ||
|
|
588323961e | ||
|
|
fd1c0b71c5 | ||
|
|
54fbdcadf9 | ||
|
|
69a30d0cf0 | ||
|
|
b8f9b44f38 | ||
|
|
cbf17d4eb5 | ||
|
|
327e025262 | ||
|
|
6b1e944bba | ||
|
|
668ed4d61b | ||
|
|
312c0584ed | ||
|
|
110d3acb58 | ||
|
|
ddbc60283b | ||
|
|
471bcecfd6 | ||
|
|
0245791b13 | ||
|
|
4794396ce8 | ||
|
|
c7088779d6 | ||
|
|
672905da12 | ||
|
|
47172b13be | ||
|
|
3668a10af6 | ||
|
|
a4e294c03f | ||
|
|
3fd6f4003f | ||
|
|
3eaf5cd530 | ||
|
|
c344fd8ca4 | ||
|
|
09639ca294 | ||
|
|
a81b6dca83 | ||
|
|
b74aefb08f | ||
|
|
fffc0c3add | ||
|
|
757f90aa7a | ||
|
|
022f9eb551 | ||
|
|
6e7b82cfcb | ||
|
|
b5fb24b360 | ||
|
|
b77345222c | ||
|
|
793e81406e | ||
|
|
cef1ec95d2 | ||
|
|
7e1b3c552b | ||
|
|
69736a63b6 | ||
|
|
fb4a9f9056 | ||
|
|
387d89d3af | ||
|
|
65d9ca9d39 | ||
|
|
8c842af4ba | ||
|
|
4faf9262c9 | ||
|
|
be7724c67d | ||
|
|
48d26347f7 | ||
|
|
bdb01ec8b5 | ||
|
|
9047815799 | ||
|
|
05bd94a2cc | ||
|
|
c9f7da84d0 | ||
|
|
bcc124e86a | ||
|
|
48d2733403 | ||
|
|
31fc6e4e56 | ||
|
|
fcdeef0146 | ||
|
|
1cd524c0cc | ||
|
|
0f746917a7 | ||
|
|
a2228d0169 | ||
|
|
e8a679d34b | ||
|
|
1912a42091 | ||
|
|
ca81f96635 | ||
|
|
eb3b8c4b31 | ||
|
|
6740d6d60b | ||
|
|
c46c35b248 | ||
|
|
0b2dcec4bc | ||
|
|
f8e2a4aff4 | ||
|
|
7256db8c4e | ||
|
|
b14d5d9bee | ||
|
|
12e15c3e4b | ||
|
|
51911bf272 | ||
|
|
6dc8061401 | ||
|
|
b8fa4f8797 | ||
|
|
cc0bea7f45 | ||
|
|
4e9124b244 | ||
|
|
f0eabef7b0 | ||
|
|
23e5557958 | ||
|
|
b1d02afa85 | ||
|
|
2edc380f47 | ||
|
|
cea8295c09 | ||
|
|
244bfc993a | ||
|
|
3a272a4493 | ||
|
|
a3300db770 | ||
|
|
b0394ce261 | ||
|
|
3123089790 | ||
|
|
f13cf66676 | ||
|
|
0c8c4d87fb | ||
|
|
066088fdeb | ||
|
|
cf641e41c7 | ||
|
|
5b48322e1b | ||
|
|
9d3f680d58 | ||
|
|
bed28d57e6 | ||
|
|
2538525103 | ||
|
|
6ed798db8c | ||
|
|
8e9d966829 | ||
|
|
be16640f92 | ||
|
|
0e1376dd2e | ||
|
|
0494575aa7 | ||
|
|
bed57534e0 | ||
|
|
1862d631d1 | ||
|
|
c977ce5690 | ||
|
|
84df377516 | ||
|
|
4d9a284f6e | ||
|
|
da7ad8b44a | ||
|
|
4164046323 | ||
|
|
72e743dfd1 | ||
|
|
7eb7edaf0a | ||
|
|
49368aaf76 | ||
|
|
b8c07a966f | ||
|
|
c6bcc0e3aa | ||
|
|
7719339f23 | ||
|
|
8ad64722ed | ||
|
|
611f8b8865 | ||
|
|
38bdc173e8 | ||
|
|
52244325d9 | ||
|
|
3fd3d99b8c | ||
|
|
d4ee5e91a2 | ||
|
|
c2ad2d7238 | ||
|
|
892e195f0e | ||
|
|
c5b1bed7dc | ||
|
|
0e388d7aa7 | ||
|
|
c3a0dbbe48 | ||
|
|
8b95b3ffc7 | ||
|
|
42b78461cd | ||
|
|
9190a41ca5 | ||
|
|
28a7251319 | ||
|
|
20565866ef | ||
|
|
246f10aee5 | ||
|
|
960017280d | ||
|
|
7218aaf52e | ||
|
|
62050cc7b6 | ||
|
|
f88a14ac0a | ||
|
|
9286761c30 | ||
|
|
07c3273247 | ||
|
|
eb8fe77582 | ||
|
|
b68ba0bff6 | ||
|
|
696657c09e | ||
|
|
12bea9b60a | ||
|
|
9334e9552f | ||
|
|
a43b04a98b | ||
|
|
f359ff995d | ||
|
|
9185d2646b | ||
|
|
33e61c762c | ||
|
|
e342e646ff | ||
|
|
ed163a80e0 | ||
|
|
b390df08b5 | ||
|
|
f0b3b9f7f4 | ||
|
|
a67d732507 | ||
|
|
ca0ebe0d75 | ||
|
|
94d113cbe0 | ||
|
|
25c3aeaa5f | ||
|
|
736d5a00b7 | ||
|
|
f1627b214c | ||
|
|
d9265ec7ea | ||
|
|
663e871bed | ||
|
|
5c5eaddef7 | ||
|
|
edaec4f1ae | ||
|
|
6d19acaa6c | ||
|
|
d29a619fbf | ||
|
|
b17808dd91 | ||
|
|
c5321a3667 | ||
|
|
8836691510 | ||
|
|
6568f6525d | ||
|
|
473fc27b49 | ||
|
|
74aeb55acb | ||
|
|
8efcf0529f | ||
|
|
06071c2f9c | ||
|
|
5eb4eca487 | ||
|
|
33f6153e12 | ||
|
|
df3283f526 | ||
|
|
b5901a2819 | ||
|
|
6d5f1402fe | ||
|
|
65e3782b2e | ||
|
|
135981dd30 | ||
|
|
fe5cf2d922 | ||
|
|
e15425cc2e | ||
|
|
c3cb0a4e33 | ||
|
|
cc32976bdd | ||
|
|
bc08318716 | ||
|
|
ee1ab30c2c | ||
|
|
7fa1a66f7e | ||
|
|
946bf37406 | ||
|
|
8706f6931a | ||
|
|
f551674860 | ||
|
|
d90fe0ef07 | ||
|
|
bf979fa3b3 | ||
|
|
b3b88891e9 | ||
|
|
01c5de60dc | ||
|
|
47b8fe5022 | ||
|
|
324b37b875 | ||
|
|
76e7e192d8 | ||
|
|
f9f3c4d923 | ||
|
|
a476476bd1 | ||
|
|
82a60a884a | ||
|
|
f17727de18 | ||
|
|
f1f33c79f4 | ||
|
|
d52eaafdbb | ||
|
|
e7a3e50ed1 | ||
|
|
2e09a87baa | ||
|
|
b92ae7e47e | ||
|
|
f98446e139 | ||
|
|
57a48dadaa | ||
|
|
c65ec68e46 | ||
|
|
d6559be3fc | ||
|
|
6fbf67f9a9 | ||
|
|
59df5b24fe | ||
|
|
3e1544294b | ||
|
|
a12c398816 | ||
|
|
0bd3e28348 | ||
|
|
ad4e39c088 | ||
|
|
2668d96e6a | ||
|
|
357c496aad | ||
|
|
22a513ba22 | ||
|
|
e6dd1119be | ||
|
|
2dbe454e04 | ||
|
|
e3a59b76eb | ||
|
|
01008acfcd | ||
|
|
b67a162d3f | ||
|
|
8bfde9fbaf | ||
|
|
1fdecf8def | ||
|
|
1141d4b833 | ||
|
|
cdac92ca7b | ||
|
|
2a57c260cc | ||
|
|
f41e29ab3a | ||
|
|
8f10624073 | ||
|
|
eb1f8be11e | ||
|
|
3333501ab9 | ||
|
|
0f40820315 | ||
|
|
5f1a839620 | ||
|
|
b9bb1c775d | ||
|
|
1059b7376b | ||
|
|
f38ab4a9ce | ||
|
|
9e7450c012 | ||
|
|
99a3e360fe | ||
|
|
d45f8f78d6 | ||
|
|
648af61116 | ||
|
|
eebf1b89b1 | ||
|
|
f8094bb624 | ||
|
|
ed13e0d2c2 | ||
|
|
aa830589b4 | ||
|
|
999a2bd929 | ||
|
|
d69ee98450 | ||
|
|
f6712c24ad | ||
|
|
89d2772194 | ||
|
|
03352142b6 | ||
|
|
73a51e0c00 | ||
|
|
2e26f8caa6 | ||
|
|
f9bcce9e43 | ||
|
|
2ecc877ba8 | ||
|
|
3f8a3c69e3 | ||
|
|
67c37a0984 | ||
|
|
a58a55d00d | ||
|
|
06d51dd0b8 | ||
|
|
d5db028f57 | ||
|
|
fcb85ff4be | ||
|
|
3695b4363d | ||
|
|
cb11e6437c | ||
|
|
5127bd11ce | ||
|
|
91f90aefa1 | ||
|
|
0a067bce36 | ||
|
|
f0aba433bf | ||
|
|
f06467a0e3 | ||
|
|
68bcd3c710 | ||
|
|
a645733cc5 | ||
|
|
49fe5baf94 | ||
|
|
411ee55653 | ||
|
|
e351ce7411 | ||
|
|
f33e585a71 | ||
|
|
77f3096e0d | ||
|
|
9a5b18c4e6 | ||
|
|
0c7112869a | ||
|
|
f66a4d71ea | ||
|
|
9b0ab878df | ||
|
|
d30b90dfd0 | ||
|
|
efd28f8c27 | ||
|
|
e05e722387 | ||
|
|
748e81956d | ||
|
|
c9a41febce | ||
|
|
18e244b756 | ||
|
|
47676139a3 | ||
|
|
1ed933b7ad | ||
|
|
f6a343ccd6 | ||
|
|
dd6cdc22e5 | ||
|
|
f70f4348b3 | ||
|
|
ec7f801929 | ||
|
|
0f8aca382e | ||
|
|
0270f77eaa | ||
|
|
dcba71ada4 | ||
|
|
6080f76a9c | ||
|
|
e7349161f3 | ||
|
|
2e2907ea09 | ||
|
|
25e84b2a6c | ||
|
|
5efd424172 | ||
|
|
2672502c07 | ||
|
|
83440cc3d9 | ||
|
|
8e5f93be1c | ||
|
|
c1afc07955 | ||
|
|
4a83e14878 | ||
|
|
832320abc6 | ||
|
|
70c237da72 | ||
|
|
edfcc5c023 | ||
|
|
0668debec6 | ||
|
|
02d6463faa | ||
|
|
1fdb85234c | ||
|
|
44b7dd1808 | ||
|
|
e983ee3101 | ||
|
|
75e7e81c05 | ||
|
|
31ce3b9c08 | ||
|
|
ed93c50fef | ||
|
|
4845660eb5 | ||
|
|
c7919210a2 | ||
|
|
9491418f3b | ||
|
|
e8de403286 | ||
|
|
dfb625377b | ||
|
|
2c0f2a8be6 | ||
|
|
787d3cb3e9 | ||
|
|
96ca17d26c | ||
|
|
3dd0f7f2c3 | ||
|
|
10ba0cf976 | ||
|
|
276c15cc23 | ||
|
|
2584b848ad | ||
|
|
6471efed5f | ||
|
|
5b7d7ad65d | ||
|
|
712851a8a5 | ||
|
|
63d291cb47 | ||
|
|
f825c92111 | ||
|
|
419eb2ea41 | ||
|
|
89b58dd64e | ||
|
|
6bc5f81440 | ||
|
|
424f4b7b5e | ||
|
|
9271a1caac | ||
|
|
0ee4df03f9 | ||
|
|
8ac713ce32 | ||
|
|
76b2489fe9 | ||
|
|
6786095154 | ||
|
|
2c5793ef37 | ||
|
|
d483f25b96 | ||
|
|
7118368979 | ||
|
|
59256c2e80 | ||
|
|
1fb8a0db1e | ||
|
|
07d0c8e8fa | ||
|
|
98452ead17 | ||
|
|
d8c9f40377 | ||
|
|
8148d5eec6 | ||
|
|
4c429ad604 | ||
|
|
a9c52de8d5 | ||
|
|
f648aa1f91 | ||
|
|
eaba388bdd | ||
|
|
73e6afcbc6 | ||
|
|
8c3b72adf2 | ||
|
|
ae18ff4262 | ||
|
|
1adc8af543 | ||
|
|
7413df6f1e | ||
|
|
bda8559190 | ||
|
|
b74612fa41 | ||
|
|
22e0c20dcd | ||
|
|
08f92e1100 | ||
|
|
bb12ece46e | ||
|
|
0065438305 | ||
|
|
7f115c1b3e | ||
|
|
4e0114ab0d | ||
|
|
0ef64fa4bd | ||
|
|
84dbc17c22 | ||
|
|
16e16e356d | ||
|
|
978ee885c4 | ||
|
|
850d43df63 | ||
|
|
fc109fd1b1 | ||
|
|
9aefc55534 | ||
|
|
2829947b93 | ||
|
|
0c2af89a1c | ||
|
|
14c2dc9624 | ||
|
|
4f35d710a6 | ||
|
|
fdb5e018e5 | ||
|
|
6001fde25c | ||
|
|
ae63c0adaf | ||
|
|
ad1539c8f6 | ||
|
|
634a0c8cd0 | ||
|
|
773f9a0c63 | ||
|
|
e4e320e9e3 | ||
|
|
3b4b400e6b | ||
|
|
a950be2d95 | ||
|
|
ba6f5ab984 | ||
|
|
f3a5e3f5ed | ||
|
|
e685e621f3 | ||
|
|
2cd2be9b67 | ||
|
|
e73d9e8a03 | ||
|
|
476f74a604 | ||
|
|
ab0d1d99e6 | ||
|
|
d5680ffd5d | ||
|
|
3c091a88d4 | ||
|
|
49b70b33de | ||
|
|
c5ff2716fb | ||
|
|
400fdf0896 | ||
|
|
cbb8c7323c | ||
|
|
60e79f8f77 | ||
|
|
0e829d739a | ||
|
|
62abb274e0 | ||
|
|
e4028785de | ||
|
|
2bb44bcb76 | ||
|
|
684599f81b | ||
|
|
b56d28f5df | ||
|
|
02b9ac04c8 | ||
|
|
2fc283990a | ||
|
|
abb652ebd5 | ||
|
|
55786cb7f7 | ||
|
|
447a575f4f | ||
|
|
49280a8617 | ||
|
|
ff78a9cc35 | ||
|
|
3fea5c9c8c | ||
|
|
aea63cad52 | ||
|
|
800abe9920 | ||
|
|
dd6069e41a | ||
|
|
90d31aeff0 | ||
|
|
4d9a327b1f | ||
|
|
06a97ef076 | ||
|
|
76c2477387 | ||
|
|
bc4dac9cad | ||
|
|
36e3d6c18a | ||
|
|
edfd84a8e3 | ||
|
|
fb20cf6069 | ||
|
|
abbe47f6b9 | ||
|
|
f84d250134 | ||
|
|
3ffb4b8990 | ||
|
|
f70cfabede | ||
|
|
3a81783d77 | ||
|
|
237a4a90ff | ||
|
|
99c7dfc98d | ||
|
|
48aba34370 | ||
|
|
29cca36f2c | ||
|
|
0f5819f5c2 | ||
|
|
373772de2d | ||
|
|
7f5bbe8b5f | ||
|
|
daee57167b | ||
|
|
03467196b9 | ||
|
|
d3f3531cdb | ||
|
|
883b694592 | ||
|
|
6c89d66af9 | ||
|
|
fb0a76b418 | ||
|
|
64f77fca5b | ||
|
|
b1fca2c5be | ||
|
|
108d705f09 | ||
|
|
a77242e66c | ||
|
|
8b153113ff | ||
|
|
6d0ec37135 |
51
.github/ISSUE_TEMPLATE/bug_report.md
vendored
Normal file
51
.github/ISSUE_TEMPLATE/bug_report.md
vendored
Normal file
@@ -0,0 +1,51 @@
|
||||
---
|
||||
name: 报告Bug
|
||||
about: 报告KnowStreaming的相关Bug
|
||||
title: ''
|
||||
labels: bug
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
- [ ] 我已经在 [issues](https://github.com/didi/KnowStreaming/issues) 搜索过相关问题了,并没有重复的。
|
||||
|
||||
你是否希望来认领这个Bug。
|
||||
|
||||
「 Y / N 」
|
||||
|
||||
### 环境信息
|
||||
|
||||
* KnowStreaming version : <font size=4 color =red> xxx </font>
|
||||
* Operating System version : <font size=4 color =red> xxx </font>
|
||||
* Java version : <font size=4 color =red> xxx </font>
|
||||
|
||||
|
||||
### 重现该问题的步骤
|
||||
|
||||
1. xxx
|
||||
|
||||
|
||||
|
||||
2. xxx
|
||||
|
||||
|
||||
3. xxx
|
||||
|
||||
|
||||
|
||||
### 预期结果
|
||||
|
||||
<!-- 写下应该出现的预期结果?-->
|
||||
|
||||
### 实际结果
|
||||
|
||||
<!-- 实际发生了什么? -->
|
||||
|
||||
|
||||
---
|
||||
|
||||
如果有异常,请附上异常Trace:
|
||||
|
||||
```
|
||||
Just put your stack trace here!
|
||||
```
|
||||
8
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
8
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
blank_issues_enabled: true
|
||||
contact_links:
|
||||
- name: 讨论问题
|
||||
url: https://github.com/didi/KnowStreaming/discussions/new
|
||||
about: 发起问题、讨论 等等
|
||||
- name: KnowStreaming官网
|
||||
url: https://knowstreaming.com/
|
||||
about: KnowStreaming website
|
||||
26
.github/ISSUE_TEMPLATE/detail_optimizing.md
vendored
Normal file
26
.github/ISSUE_TEMPLATE/detail_optimizing.md
vendored
Normal file
@@ -0,0 +1,26 @@
|
||||
---
|
||||
name: 优化建议
|
||||
about: 相关功能优化建议
|
||||
title: ''
|
||||
labels: Optimization Suggestions
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
- [ ] 我已经在 [issues](https://github.com/didi/KnowStreaming/issues) 搜索过相关问题了,并没有重复的。
|
||||
|
||||
你是否希望来认领这个优化建议。
|
||||
|
||||
「 Y / N 」
|
||||
|
||||
### 环境信息
|
||||
|
||||
* KnowStreaming version : <font size=4 color =red> xxx </font>
|
||||
* Operating System version : <font size=4 color =red> xxx </font>
|
||||
* Java version : <font size=4 color =red> xxx </font>
|
||||
|
||||
### 需要优化的功能点
|
||||
|
||||
|
||||
### 建议如何优化
|
||||
|
||||
20
.github/ISSUE_TEMPLATE/feature_request.md
vendored
Normal file
20
.github/ISSUE_TEMPLATE/feature_request.md
vendored
Normal file
@@ -0,0 +1,20 @@
|
||||
---
|
||||
name: 提议新功能/需求
|
||||
about: 给KnowStreaming提一个功能需求
|
||||
title: ''
|
||||
labels: feature
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
- [ ] 我在 [issues](https://github.com/didi/KnowStreaming/issues) 中并未搜索到与此相关的功能需求。
|
||||
- [ ] 我在 [release note](https://github.com/didi/KnowStreaming/releases) 已经发布的版本中并没有搜到相关功能.
|
||||
|
||||
你是否希望来认领这个Feature。
|
||||
|
||||
「 Y / N 」
|
||||
|
||||
|
||||
## 这里描述需求
|
||||
<!--请尽可能的描述清楚您的需求 -->
|
||||
|
||||
12
.github/ISSUE_TEMPLATE/question.md
vendored
Normal file
12
.github/ISSUE_TEMPLATE/question.md
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
---
|
||||
name: 提个问题
|
||||
about: 问KnowStreaming相关问题
|
||||
title: ''
|
||||
labels: question
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
- [ ] 我已经在 [issues](https://github.com/didi/KnowStreaming/issues) 搜索过相关问题了,并没有重复的。
|
||||
|
||||
## 在这里提出你的问题
|
||||
23
.github/PULL_REQUEST_TEMPLATE.md
vendored
Normal file
23
.github/PULL_REQUEST_TEMPLATE.md
vendored
Normal file
@@ -0,0 +1,23 @@
|
||||
请不要在没有先创建Issue的情况下创建Pull Request。
|
||||
|
||||
## 变更的目的是什么
|
||||
|
||||
XXXXX
|
||||
|
||||
## 简短的更新日志
|
||||
|
||||
XX
|
||||
|
||||
## 验证这一变化
|
||||
|
||||
XXXX
|
||||
|
||||
请遵循此清单,以帮助我们快速轻松地整合您的贡献:
|
||||
|
||||
* [ ] 一个 PR(Pull Request的简写)只解决一个问题,禁止一个 PR 解决多个问题;
|
||||
* [ ] 确保 PR 有对应的 Issue(通常在您开始处理之前创建),除非是书写错误之类的琐碎更改不需要 Issue ;
|
||||
* [ ] 格式化 PR 及 Commit-Log 的标题及内容,例如 #861 。PS:Commit-Log 需要在 Git Commit 代码时进行填写,在 GitHub 上修改不了;
|
||||
* [ ] 编写足够详细的 PR 描述,以了解 PR 的作用、方式和原因;
|
||||
* [ ] 编写必要的单元测试来验证您的逻辑更正。如果提交了新功能或重大更改,请记住在 test 模块中添加 integration-test;
|
||||
* [ ] 确保编译通过,集成测试通过;
|
||||
|
||||
228
.gitignore
vendored
228
.gitignore
vendored
@@ -1,112 +1,116 @@
|
||||
### Intellij ###
|
||||
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm
|
||||
|
||||
*.iml
|
||||
|
||||
## Directory-based project format:
|
||||
.idea/
|
||||
# if you remove the above rule, at least ignore the following:
|
||||
|
||||
# User-specific stuff:
|
||||
# .idea/workspace.xml
|
||||
# .idea/tasks.xml
|
||||
# .idea/dictionaries
|
||||
# .idea/shelf
|
||||
|
||||
# Sensitive or high-churn files:
|
||||
.idea/dataSources.ids
|
||||
.idea/dataSources.xml
|
||||
.idea/sqlDataSources.xml
|
||||
.idea/dynamic.xml
|
||||
.idea/uiDesigner.xml
|
||||
|
||||
|
||||
# Mongo Explorer plugin:
|
||||
.idea/mongoSettings.xml
|
||||
|
||||
## File-based project format:
|
||||
*.ipr
|
||||
*.iws
|
||||
|
||||
## Plugin-specific files:
|
||||
|
||||
# IntelliJ
|
||||
/out/
|
||||
|
||||
# mpeltonen/sbt-idea plugin
|
||||
.idea_modules/
|
||||
|
||||
# JIRA plugin
|
||||
atlassian-ide-plugin.xml
|
||||
|
||||
# Crashlytics plugin (for Android Studio and IntelliJ)
|
||||
com_crashlytics_export_strings.xml
|
||||
crashlytics.properties
|
||||
crashlytics-build.properties
|
||||
fabric.properties
|
||||
|
||||
|
||||
### Java ###
|
||||
*.class
|
||||
|
||||
# Mobile Tools for Java (J2ME)
|
||||
.mtj.tmp/
|
||||
|
||||
# Package Files #
|
||||
*.jar
|
||||
*.war
|
||||
*.ear
|
||||
|
||||
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
|
||||
hs_err_pid*
|
||||
|
||||
|
||||
### OSX ###
|
||||
.DS_Store
|
||||
.AppleDouble
|
||||
.LSOverride
|
||||
|
||||
# Icon must end with two \r
|
||||
Icon
|
||||
|
||||
|
||||
# Thumbnails
|
||||
._*
|
||||
|
||||
# Files that might appear in the root of a volume
|
||||
.DocumentRevisions-V100
|
||||
.fseventsd
|
||||
.Spotlight-V100
|
||||
.TemporaryItems
|
||||
.Trashes
|
||||
.VolumeIcon.icns
|
||||
|
||||
# Directories potentially created on remote AFP share
|
||||
.AppleDB
|
||||
.AppleDesktop
|
||||
Network Trash Folder
|
||||
Temporary Items
|
||||
.apdisk
|
||||
|
||||
/target
|
||||
target/
|
||||
*.log
|
||||
*.log.*
|
||||
*.bak
|
||||
*.vscode
|
||||
*/.vscode/*
|
||||
*/.vscode
|
||||
*/velocity.log*
|
||||
*/*.log
|
||||
*/*.log.*
|
||||
web/node_modules/
|
||||
web/node_modules/*
|
||||
workspace.xml
|
||||
/output/*
|
||||
.gitversion
|
||||
*/node_modules/*
|
||||
web/src/main/resources/templates/*
|
||||
*/out/*
|
||||
*/dist/*
|
||||
.DS_Store
|
||||
kafka-manager-web/src/main/resources/templates/*
|
||||
### Intellij ###
|
||||
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm
|
||||
|
||||
*.iml
|
||||
|
||||
## Directory-based project format:
|
||||
.idea/
|
||||
# if you remove the above rule, at least ignore the following:
|
||||
|
||||
# User-specific stuff:
|
||||
# .idea/workspace.xml
|
||||
# .idea/tasks.xml
|
||||
# .idea/dictionaries
|
||||
# .idea/shelf
|
||||
|
||||
# Sensitive or high-churn files:
|
||||
.idea/dataSources.ids
|
||||
.idea/dataSources.xml
|
||||
.idea/sqlDataSources.xml
|
||||
.idea/dynamic.xml
|
||||
.idea/uiDesigner.xml
|
||||
|
||||
|
||||
# Mongo Explorer plugin:
|
||||
.idea/mongoSettings.xml
|
||||
|
||||
## File-based project format:
|
||||
*.ipr
|
||||
*.iws
|
||||
|
||||
## Plugin-specific files:
|
||||
|
||||
# IntelliJ
|
||||
/out/
|
||||
|
||||
# mpeltonen/sbt-idea plugin
|
||||
.idea_modules/
|
||||
|
||||
# JIRA plugin
|
||||
atlassian-ide-plugin.xml
|
||||
|
||||
# Crashlytics plugin (for Android Studio and IntelliJ)
|
||||
com_crashlytics_export_strings.xml
|
||||
crashlytics.properties
|
||||
crashlytics-build.properties
|
||||
fabric.properties
|
||||
|
||||
|
||||
### Java ###
|
||||
*.class
|
||||
|
||||
# Mobile Tools for Java (J2ME)
|
||||
.mtj.tmp/
|
||||
|
||||
# Package Files #
|
||||
*.jar
|
||||
*.war
|
||||
*.ear
|
||||
*.tar.gz
|
||||
|
||||
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
|
||||
hs_err_pid*
|
||||
|
||||
|
||||
### OSX ###
|
||||
.DS_Store
|
||||
.AppleDouble
|
||||
.LSOverride
|
||||
|
||||
# Icon must end with two \r
|
||||
Icon
|
||||
|
||||
|
||||
# Thumbnails
|
||||
._*
|
||||
|
||||
# Files that might appear in the root of a volume
|
||||
.DocumentRevisions-V100
|
||||
.fseventsd
|
||||
.Spotlight-V100
|
||||
.TemporaryItems
|
||||
.Trashes
|
||||
.VolumeIcon.icns
|
||||
|
||||
# Directories potentially created on remote AFP share
|
||||
.AppleDB
|
||||
.AppleDesktop
|
||||
Network Trash Folder
|
||||
Temporary Items
|
||||
.apdisk
|
||||
|
||||
/target
|
||||
target/
|
||||
*.log
|
||||
*.log.*
|
||||
*.bak
|
||||
*.vscode
|
||||
*/.vscode/*
|
||||
*/.vscode
|
||||
*/velocity.log*
|
||||
*/*.log
|
||||
*/*.log.*
|
||||
node_modules/
|
||||
node_modules/*
|
||||
workspace.xml
|
||||
/output/*
|
||||
.gitversion
|
||||
out/*
|
||||
dist/
|
||||
dist/*
|
||||
km-rest/src/main/resources/templates/
|
||||
*dependency-reduced-pom*
|
||||
#filter flattened xml
|
||||
*/.flattened-pom.xml
|
||||
.flattened-pom.xml
|
||||
*/*/.flattened-pom.xml
|
||||
@@ -1,28 +0,0 @@
|
||||
# Contribution Guideline
|
||||
|
||||
Thanks for considering to contribute this project. All issues and pull requests are highly appreciated.
|
||||
|
||||
## Pull Requests
|
||||
|
||||
Before sending pull request to this project, please read and follow guidelines below.
|
||||
|
||||
1. Branch: We only accept pull request on `dev` branch.
|
||||
2. Coding style: Follow the coding style used in kafka-manager.
|
||||
3. Commit message: Use English and be aware of your spell.
|
||||
4. Test: Make sure to test your code.
|
||||
|
||||
Add device mode, API version, related log, screenshots and other related information in your pull request if possible.
|
||||
|
||||
NOTE: We assume all your contribution can be licensed under the [Apache License 2.0](LICENSE).
|
||||
|
||||
## Issues
|
||||
|
||||
We love clearly described issues. :)
|
||||
|
||||
Following information can help us to resolve the issue faster.
|
||||
|
||||
* Device mode and hardware information.
|
||||
* API version.
|
||||
* Logs.
|
||||
* Screenshots.
|
||||
* Steps to reproduce the issue.
|
||||
BIN
KS-PRD-3.0-beta1.docx
Normal file
BIN
KS-PRD-3.0-beta1.docx
Normal file
Binary file not shown.
BIN
KS-PRD-3.0-beta2.docx
Normal file
BIN
KS-PRD-3.0-beta2.docx
Normal file
Binary file not shown.
BIN
KS-PRD-3.1-ZK.docx
Normal file
BIN
KS-PRD-3.1-ZK.docx
Normal file
Binary file not shown.
BIN
KS-PRD-3.2-Connect.docx
Normal file
BIN
KS-PRD-3.2-Connect.docx
Normal file
Binary file not shown.
BIN
KS-PRD-3.3-MM2.docx
Normal file
BIN
KS-PRD-3.3-MM2.docx
Normal file
Binary file not shown.
64
README.md
64
README.md
@@ -1,64 +0,0 @@
|
||||
|
||||
---
|
||||
|
||||

|
||||
|
||||
**一站式`Apache Kafka`集群指标监控与运维管控平台**
|
||||
|
||||
---
|
||||
|
||||
## 主要功能特性
|
||||
|
||||
|
||||
### 集群监控维度
|
||||
|
||||
- 多版本集群管控,支持从`0.10.2`到`2.x`版本;
|
||||
- 集群Topic、Broker等多维度历史与实时关键指标查看;
|
||||
|
||||
|
||||
### 集群管控维度
|
||||
|
||||
- 集群运维,包括逻辑Region方式管理集群
|
||||
- Broker运维,包括优先副本选举
|
||||
- Topic运维,包括创建、查询、扩容、修改属性、数据采样及迁移等;
|
||||
- 消费组运维,包括指定时间或指定偏移两种方式进行重置消费偏移
|
||||
|
||||
|
||||
### 用户使用维度
|
||||
|
||||
- Kafka用户、Kafka研发、Kafka运维 视角区分
|
||||
- Kafka用户、Kafka研发、Kafka运维 权限区分
|
||||
|
||||
|
||||
## kafka-manager架构图
|
||||
|
||||

|
||||
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [kafka-manager安装手册](./docs/install_cn_guide.md)
|
||||
- [kafka-manager接入集群](./docs/manual_kafka_op/add_cluster.md)
|
||||
- [kafka-manager使用手册-待更新](./docs/user_cn_guide.md)
|
||||
|
||||
|
||||
## 钉钉交流群
|
||||
|
||||

|
||||
|
||||
|
||||
## 项目成员
|
||||
|
||||
### 内部核心人员
|
||||
|
||||
`iceyuhui`、`liuyaguang`、`limengmonty`、`zhangliangmike`、`nullhuangyiming`、`zengqiao`、`eilenexuzhe`、`huangjiaweihjw`
|
||||
|
||||
|
||||
### 外部贡献者
|
||||
|
||||
`fangjunyu`、`zhoutaiyang`
|
||||
|
||||
|
||||
## 协议
|
||||
|
||||
`kafka-manager`基于`Apache-2.0`协议进行分发和使用,更多信息参见[协议文件](./LICENSE)
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 73 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 20 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 7.4 KiB |
@@ -1,575 +0,0 @@
|
||||
--
|
||||
-- Table structure for table `account`
|
||||
--
|
||||
|
||||
-- DROP TABLE IF EXISTS `account`;
|
||||
CREATE TABLE `account` (
|
||||
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id',
|
||||
`username` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT '用户名',
|
||||
`password` varchar(128) NOT NULL DEFAULT '' COMMENT '密码',
|
||||
`role` tinyint(8) NOT NULL DEFAULT '0' COMMENT '角色类型, 0:普通用户 1:研发 2:运维',
|
||||
`status` int(16) NOT NULL DEFAULT '0' COMMENT '0标识使用中,-1标识已废弃',
|
||||
`gmt_create` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`gmt_modify` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uniq_username` (`username`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='账号表';
|
||||
INSERT INTO account(username, password, role) VALUES ('admin', '21232f297a57a5a743894a0e4a801fc3', 2);
|
||||
|
||||
--
|
||||
-- Table structure for table `app`
|
||||
--
|
||||
|
||||
-- DROP TABLE IF EXISTS `app`;
|
||||
CREATE TABLE `app` (
|
||||
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增id',
|
||||
`app_id` varchar(128) NOT NULL DEFAULT '' COMMENT '应用id',
|
||||
`name` varchar(192) NOT NULL DEFAULT '' COMMENT '应用名称',
|
||||
`password` varchar(256) NOT NULL DEFAULT '' COMMENT '应用密码',
|
||||
`type` int(11) NOT NULL DEFAULT '0' COMMENT '类型, 0:普通用户, 1:超级用户',
|
||||
`applicant` varchar(64) NOT NULL DEFAULT '' COMMENT '申请人',
|
||||
`principals` text COMMENT '应用负责人',
|
||||
`description` text COMMENT '应用描述',
|
||||
`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`modify_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uniq_name` (`name`),
|
||||
UNIQUE KEY `uniq_app_id` (`app_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='应用信息';
|
||||
INSERT INTO app(app_id, name, password, type, applicant, principals, description) VALUES ('km-admin-tmp', 'km-admin-tmp', '123456', 0, 'admin', 'admin', '临时应用');
|
||||
|
||||
|
||||
--
|
||||
-- Table structure for table `authority`
|
||||
--
|
||||
|
||||
-- DROP TABLE IF EXISTS `authority`;
|
||||
CREATE TABLE `authority` (
|
||||
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增id',
|
||||
`app_id` varchar(128) NOT NULL DEFAULT '' COMMENT '应用id',
|
||||
`cluster_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '集群id',
|
||||
`topic_name` varchar(192) NOT NULL DEFAULT '' COMMENT 'topic名称',
|
||||
`access` int(11) NOT NULL DEFAULT '0' COMMENT '0:无权限, 1:读, 2:写, 3:读写',
|
||||
`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`modify_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uniq_app_id_cluster_id_topic_name` (`app_id`,`cluster_id`,`topic_name`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='权限信息(kafka-manager)';
|
||||
|
||||
--
|
||||
-- Table structure for table `broker`
|
||||
--
|
||||
|
||||
-- DROP TABLE IF EXISTS `broker`;
|
||||
CREATE TABLE `broker` (
|
||||
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id',
|
||||
`cluster_id` bigint(20) NOT NULL DEFAULT '-1' COMMENT '集群id',
|
||||
`broker_id` int(16) NOT NULL DEFAULT '-1' COMMENT 'brokerid',
|
||||
`host` varchar(128) NOT NULL DEFAULT '' COMMENT 'broker主机名',
|
||||
`port` int(16) NOT NULL DEFAULT '-1' COMMENT 'broker端口',
|
||||
`timestamp` bigint(20) NOT NULL DEFAULT '-1' COMMENT '启动时间',
|
||||
`max_avg_bytes_in` bigint(20) NOT NULL DEFAULT '-1' COMMENT '峰值的均值流量',
|
||||
`version` varchar(128) NOT NULL DEFAULT '' COMMENT 'broker版本',
|
||||
`status` int(16) NOT NULL DEFAULT '0' COMMENT '状态: 0有效,-1无效',
|
||||
`gmt_create` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`gmt_modify` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uniq_cluster_id_broker_id` (`cluster_id`,`broker_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='broker信息表';
|
||||
|
||||
--
|
||||
-- Table structure for table `broker_metrics`
|
||||
--
|
||||
|
||||
-- DROP TABLE IF EXISTS `broker_metrics`;
|
||||
CREATE TABLE `broker_metrics` (
|
||||
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增id',
|
||||
`cluster_id` bigint(20) NOT NULL DEFAULT '-1' COMMENT '集群id',
|
||||
`broker_id` int(16) NOT NULL DEFAULT '-1' COMMENT 'brokerid',
|
||||
`metrics` text COMMENT '指标',
|
||||
`messages_in` double(53,2) NOT NULL DEFAULT '0.00' COMMENT '每秒消息数流入',
|
||||
`gmt_create` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_cluster_id_broker_id_gmt_create` (`cluster_id`,`broker_id`,`gmt_create`),
|
||||
KEY `idx_gmt_create` (`gmt_create`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='broker-metric信息表';
|
||||
|
||||
--
|
||||
-- Table structure for table `cluster`
|
||||
--
|
||||
|
||||
-- DROP TABLE IF EXISTS `cluster`;
|
||||
CREATE TABLE `cluster` (
|
||||
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '集群id',
|
||||
`cluster_name` varchar(128) NOT NULL DEFAULT '' COMMENT '集群名称',
|
||||
`zookeeper` varchar(512) NOT NULL DEFAULT '' COMMENT 'zk地址',
|
||||
`bootstrap_servers` varchar(512) NOT NULL DEFAULT '' COMMENT 'server地址',
|
||||
`kafka_version` varchar(32) NOT NULL DEFAULT '' COMMENT 'kafka版本',
|
||||
`security_properties` text COMMENT '安全认证参数',
|
||||
`status` tinyint(4) NOT NULL DEFAULT '1' COMMENT ' 监控标记, 0表示未监控, 1表示监控中',
|
||||
`gmt_create` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`gmt_modify` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uniq_cluster_name` (`cluster_name`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='cluster信息表';
|
||||
|
||||
--
|
||||
-- Table structure for table `cluster_metrics`
|
||||
--
|
||||
|
||||
-- DROP TABLE IF EXISTS `cluster_metrics`;
|
||||
CREATE TABLE `cluster_metrics` (
|
||||
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增id',
|
||||
`cluster_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '集群id',
|
||||
`metrics` text COMMENT '指标',
|
||||
`gmt_create` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_cluster_id_gmt_create` (`cluster_id`,`gmt_create`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='clustermetrics信息';
|
||||
|
||||
--
|
||||
-- Table structure for table `cluster_tasks`
|
||||
--
|
||||
|
||||
-- DROP TABLE IF EXISTS `cluster_tasks`;
|
||||
CREATE TABLE `cluster_tasks` (
|
||||
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增id',
|
||||
`uuid` varchar(128) NOT NULL DEFAULT '' COMMENT '任务UUID',
|
||||
`cluster_id` bigint(128) NOT NULL DEFAULT '-1' COMMENT '集群id',
|
||||
`task_type` varchar(128) NOT NULL DEFAULT '' COMMENT '任务类型',
|
||||
`kafka_package` text COMMENT 'kafka包',
|
||||
`kafka_package_md5` varchar(128) NOT NULL DEFAULT '' COMMENT 'kafka包的md5',
|
||||
`server_properties` text COMMENT 'kafkaserver配置',
|
||||
`server_properties_md5` varchar(128) NOT NULL DEFAULT '' COMMENT '配置文件的md5',
|
||||
`agent_task_id` bigint(128) NOT NULL DEFAULT '-1' COMMENT '任务id',
|
||||
`agent_rollback_task_id` bigint(128) NOT NULL DEFAULT '-1' COMMENT '回滚任务id',
|
||||
`host_list` text COMMENT '升级的主机',
|
||||
`pause_host_list` text COMMENT '暂停点',
|
||||
`rollback_host_list` text COMMENT '回滚机器列表',
|
||||
`rollback_pause_host_list` text COMMENT '回滚暂停机器列表',
|
||||
`operator` varchar(64) NOT NULL DEFAULT '' COMMENT '操作人',
|
||||
`task_status` int(11) NOT NULL DEFAULT '0' COMMENT '任务状态',
|
||||
`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`modify_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='集群任务(集群升级部署)';
|
||||
|
||||
--
|
||||
-- Table structure for table `config`
|
||||
--
|
||||
|
||||
-- DROP TABLE IF EXISTS `config`;
|
||||
CREATE TABLE `config` (
|
||||
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id',
|
||||
`config_key` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT '配置key',
|
||||
`config_value` text COMMENT '配置value',
|
||||
`config_description` text COMMENT '备注说明',
|
||||
`status` int(16) NOT NULL DEFAULT '0' COMMENT '0标识使用中,-1标识已废弃',
|
||||
`gmt_create` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`gmt_modify` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uniq_config_key` (`config_key`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='配置表';
|
||||
|
||||
--
|
||||
-- Table structure for table `controller`
|
||||
--
|
||||
|
||||
-- DROP TABLE IF EXISTS `controller`;
|
||||
CREATE TABLE `controller` (
|
||||
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增id',
|
||||
`cluster_id` bigint(20) NOT NULL DEFAULT '-1' COMMENT '集群id',
|
||||
`broker_id` int(16) NOT NULL DEFAULT '-1' COMMENT 'brokerid',
|
||||
`host` varchar(256) NOT NULL DEFAULT '' COMMENT '主机名',
|
||||
`timestamp` bigint(20) NOT NULL DEFAULT '-1' COMMENT 'controller变更时间',
|
||||
`version` int(16) NOT NULL DEFAULT '-1' COMMENT 'controller格式版本',
|
||||
`gmt_create` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uniq_cluster_id_broker_id_timestamp` (`cluster_id`,`broker_id`,`timestamp`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='controller记录表';
|
||||
|
||||
--
|
||||
-- Table structure for table `gateway_config`
|
||||
--
|
||||
|
||||
-- DROP TABLE IF EXISTS `gateway_config`;
|
||||
CREATE TABLE `gateway_config` (
|
||||
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id',
|
||||
`type` varchar(128) NOT NULL DEFAULT '' COMMENT '配置类型',
|
||||
`name` varchar(128) NOT NULL DEFAULT '' COMMENT '配置名称',
|
||||
`value` text COMMENT '配置值',
|
||||
`version` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '版本信息',
|
||||
`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`modify_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uniq_type_name` (`type`,`name`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='gateway配置';
|
||||
|
||||
--
|
||||
-- Table structure for table `heartbeat`
|
||||
--
|
||||
|
||||
-- DROP TABLE IF EXISTS `heartbeat`;
|
||||
CREATE TABLE `heartbeat` (
|
||||
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id',
|
||||
`ip` varchar(128) NOT NULL DEFAULT '' COMMENT '主机ip',
|
||||
`hostname` varchar(256) NOT NULL DEFAULT '' COMMENT '主机名',
|
||||
`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`modify_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uniq_ip` (`ip`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='心跳信息';
|
||||
|
||||
--
|
||||
-- Table structure for table `kafka_acl`
|
||||
--
|
||||
|
||||
-- DROP TABLE IF EXISTS `kafka_acl`;
|
||||
CREATE TABLE `kafka_acl` (
|
||||
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增id',
|
||||
`app_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT '用户id',
|
||||
`cluster_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '集群id',
|
||||
`topic_name` varchar(192) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT 'topic名称',
|
||||
`access` int(11) NOT NULL DEFAULT '0' COMMENT '0:无权限, 1:读, 2:写, 3:读写',
|
||||
`operation` int(11) NOT NULL DEFAULT '0' COMMENT '0:创建, 1:更新 2:删除, 以最新的一条数据为准',
|
||||
`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='权限信息(kafka-broker)';
|
||||
|
||||
--
|
||||
-- Table structure for table `kafka_bill`
|
||||
--
|
||||
|
||||
-- DROP TABLE IF EXISTS `kafka_bill`;
|
||||
CREATE TABLE `kafka_bill` (
|
||||
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id',
|
||||
`cluster_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '集群id',
|
||||
`topic_name` varchar(192) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT 'topic名称',
|
||||
`principal` varchar(64) NOT NULL DEFAULT '' COMMENT '负责人',
|
||||
`quota` double(53,2) NOT NULL DEFAULT '0.00' COMMENT '配额, 单位mb/s',
|
||||
`cost` double(53,2) NOT NULL DEFAULT '0.00' COMMENT '成本, 单位元',
|
||||
`cost_type` int(16) NOT NULL DEFAULT '0' COMMENT '成本类型, 0:共享集群, 1:独享集群, 2:独立集群',
|
||||
`gmt_day` varchar(64) NOT NULL DEFAULT '' COMMENT '计价的日期, 例如2019-02-02的计价结果',
|
||||
`gmt_create` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uniq_cluster_id_topic_name_gmt_day` (`cluster_id`,`topic_name`,`gmt_day`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='kafka账单';
|
||||
|
||||
--
|
||||
-- Table structure for table `kafka_file`
|
||||
--
|
||||
|
||||
-- DROP TABLE IF EXISTS `kafka_file`;
|
||||
CREATE TABLE `kafka_file` (
|
||||
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增id',
|
||||
`cluster_id` bigint(20) NOT NULL DEFAULT '-1' COMMENT '集群id',
|
||||
`storage_name` varchar(128) NOT NULL DEFAULT '' COMMENT '存储位置',
|
||||
`file_name` varchar(128) NOT NULL DEFAULT '' COMMENT '文件名',
|
||||
`file_md5` varchar(256) NOT NULL DEFAULT '' COMMENT '文件md5',
|
||||
`file_type` int(16) NOT NULL DEFAULT '-1' COMMENT '0:kafka压缩包, 1:kafkaserver配置',
|
||||
`description` text COMMENT '备注信息',
|
||||
`operator` varchar(64) NOT NULL DEFAULT '' COMMENT '创建用户',
|
||||
`status` int(16) NOT NULL DEFAULT '0' COMMENT '状态, 0:正常, -1:删除',
|
||||
`gmt_create` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`gmt_modify` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uniq_cluster_id_file_name_storage_name` (`cluster_id`,`file_name`,`storage_name`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='文件管理';
|
||||
|
||||
--
|
||||
-- Table structure for table `kafka_user`
|
||||
--
|
||||
|
||||
-- DROP TABLE IF EXISTS `kafka_user`;
|
||||
CREATE TABLE `kafka_user` (
|
||||
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增id',
|
||||
`app_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT '应用id',
|
||||
`password` varchar(256) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT '密码',
|
||||
`user_type` int(11) NOT NULL DEFAULT '0' COMMENT '0:普通用户, 1:超级用户',
|
||||
`operation` int(11) NOT NULL DEFAULT '0' COMMENT '0:创建, 1:更新 2:删除, 以最新一条的记录为准',
|
||||
`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='kafka用户表';
|
||||
|
||||
--
|
||||
-- Table structure for table `logical_cluster`
|
||||
--
|
||||
|
||||
-- DROP TABLE IF EXISTS `logical_cluster`;
|
||||
CREATE TABLE `logical_cluster` (
|
||||
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id',
|
||||
`name` varchar(192) NOT NULL DEFAULT '' COMMENT '逻辑集群名称',
|
||||
`mode` int(16) NOT NULL DEFAULT '0' COMMENT '逻辑集群类型, 0:共享集群, 1:独享集群, 2:独立集群',
|
||||
`app_id` varchar(64) NOT NULL DEFAULT '' COMMENT '所属应用',
|
||||
`cluster_id` bigint(20) NOT NULL DEFAULT '-1' COMMENT '集群id',
|
||||
`region_list` varchar(256) NOT NULL DEFAULT '' COMMENT 'regionid列表',
|
||||
`description` text COMMENT '备注说明',
|
||||
`gmt_create` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`gmt_modify` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uniq_name` (`name`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='逻辑集群信息表';
|
||||
|
||||
--
|
||||
-- Table structure for table `monitor_rule`
|
||||
--
|
||||
|
||||
-- DROP TABLE IF EXISTS `monitor_rule`;
|
||||
CREATE TABLE `monitor_rule` (
|
||||
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增id',
|
||||
`name` varchar(192) NOT NULL DEFAULT '' COMMENT '告警名称',
|
||||
`strategy_id` bigint(20) NOT NULL DEFAULT '-1' COMMENT '监控id',
|
||||
`app_id` varchar(64) NOT NULL DEFAULT '' COMMENT 'appid',
|
||||
`operator` varchar(64) NOT NULL DEFAULT '' COMMENT '操作人',
|
||||
`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`modify_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uniq_name` (`name`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='监控规则';
|
||||
|
||||
--
|
||||
-- Table structure for table `operate_record`
|
||||
--
|
||||
|
||||
-- DROP TABLE IF EXISTS `operate_record`;
|
||||
CREATE TABLE `operate_record` (
|
||||
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id',
|
||||
`module_id` int(16) NOT NULL DEFAULT '-1' COMMENT '模块类型, 0:topic, 1:应用, 2:配额, 3:权限, 4:集群, -1:未知',
|
||||
`operate_id` int(16) NOT NULL DEFAULT '-1' COMMENT '操作类型, 0:新增, 1:删除, 2:修改',
|
||||
`resource` varchar(256) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT 'topic名称、app名称',
|
||||
`content` text COMMENT '操作内容',
|
||||
`operator` varchar(64) NOT NULL DEFAULT '' COMMENT '操作人',
|
||||
`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`modify_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_module_id_operate_id_operator` (`module_id`,`operate_id`,`operator`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='操作记录';
|
||||
|
||||
--
|
||||
-- Table structure for table `reassign_task`
|
||||
--
|
||||
|
||||
-- DROP TABLE IF EXISTS `reassign_task`;
|
||||
CREATE TABLE `reassign_task` (
|
||||
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增id',
|
||||
`task_id` bigint(20) NOT NULL DEFAULT '-1' COMMENT '任务ID',
|
||||
`name` varchar(256) NOT NULL DEFAULT '' COMMENT '任务名称',
|
||||
`cluster_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '集群id',
|
||||
`topic_name` varchar(192) NOT NULL DEFAULT '' COMMENT 'Topic名称',
|
||||
`partitions` text COMMENT '分区',
|
||||
`reassignment_json` text COMMENT '任务参数',
|
||||
`real_throttle` bigint(20) NOT NULL DEFAULT '0' COMMENT '限流值',
|
||||
`max_throttle` bigint(20) NOT NULL DEFAULT '0' COMMENT '限流上限',
|
||||
`min_throttle` bigint(20) NOT NULL DEFAULT '0' COMMENT '限流下限',
|
||||
`begin_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '开始时间',
|
||||
`operator` varchar(64) NOT NULL DEFAULT '' COMMENT '操作人',
|
||||
`description` varchar(256) NOT NULL DEFAULT '' COMMENT '备注说明',
|
||||
`status` int(16) NOT NULL DEFAULT '0' COMMENT '任务状态',
|
||||
`gmt_create` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '任务创建时间',
|
||||
`gmt_modify` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '任务修改时间',
|
||||
`original_retention_time` bigint(20) NOT NULL DEFAULT '86400000' COMMENT 'Topic存储时间',
|
||||
`reassign_retention_time` bigint(20) NOT NULL DEFAULT '86400000' COMMENT '迁移时的存储时间',
|
||||
`src_brokers` text COMMENT '源Broker',
|
||||
`dest_brokers` text COMMENT '目标Broker',
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='topic迁移信息';
|
||||
|
||||
--
|
||||
-- Table structure for table `region`
|
||||
--
|
||||
|
||||
-- DROP TABLE IF EXISTS `region`;
|
||||
CREATE TABLE `region` (
|
||||
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id',
|
||||
`name` varchar(192) NOT NULL DEFAULT '' COMMENT 'region名称',
|
||||
`cluster_id` bigint(20) NOT NULL DEFAULT '-1' COMMENT '集群id',
|
||||
`broker_list` varchar(256) NOT NULL DEFAULT '' COMMENT 'broker列表',
|
||||
`capacity` bigint(20) NOT NULL DEFAULT '0' COMMENT '容量(B/s)',
|
||||
`real_used` bigint(20) NOT NULL DEFAULT '0' COMMENT '实际使用量(B/s)',
|
||||
`estimate_used` bigint(20) NOT NULL DEFAULT '0' COMMENT '预估使用量(B/s)',
|
||||
`description` text COMMENT '备注说明',
|
||||
`status` int(16) NOT NULL DEFAULT '0' COMMENT '状态,0正常,1已满',
|
||||
`gmt_create` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`gmt_modify` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uniq_name` (`name`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='region信息表';
|
||||
|
||||
--
|
||||
-- Table structure for table `topic`
|
||||
--
|
||||
|
||||
-- DROP TABLE IF EXISTS `topic`;
|
||||
CREATE TABLE `topic` (
|
||||
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id',
|
||||
`cluster_id` bigint(20) NOT NULL DEFAULT '-1' COMMENT '集群id',
|
||||
`topic_name` varchar(192) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT 'topic名称',
|
||||
`app_id` varchar(64) NOT NULL DEFAULT '' COMMENT 'topic所属appid',
|
||||
`peak_bytes_in` bigint(20) NOT NULL DEFAULT '0' COMMENT '峰值流量',
|
||||
`description` text COMMENT '备注信息',
|
||||
`gmt_create` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`gmt_modify` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uniq_cluster_id_topic_name` (`cluster_id`,`topic_name`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='topic信息表';
|
||||
|
||||
--
|
||||
-- Table structure for table `topic_app_metrics`
|
||||
--
|
||||
|
||||
-- DROP TABLE IF EXISTS `topic_app_metrics`;
|
||||
CREATE TABLE `topic_app_metrics` (
|
||||
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id',
|
||||
`cluster_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '集群id',
|
||||
`topic_name` varchar(192) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT 'topic名称',
|
||||
`app_id` varchar(64) NOT NULL DEFAULT '' COMMENT 'appid',
|
||||
`metrics` text COMMENT '指标',
|
||||
`gmt_create` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_cluster_id_topic_name_app_id_gmt_create` (`cluster_id`,`topic_name`,`app_id`,`gmt_create`),
|
||||
KEY `idx_gmt_create` (`gmt_create`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='topic app metrics';
|
||||
|
||||
--
|
||||
-- Table structure for table `topic_connections`
|
||||
--
|
||||
|
||||
-- DROP TABLE IF EXISTS `topic_connections`;
|
||||
CREATE TABLE `topic_connections` (
|
||||
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id',
|
||||
`app_id` varchar(64) NOT NULL DEFAULT '' COMMENT '应用id',
|
||||
`cluster_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '集群id',
|
||||
`topic_name` varchar(192) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT 'topic名称',
|
||||
`type` varchar(16) NOT NULL DEFAULT '' COMMENT 'producer or consumer',
|
||||
`ip` varchar(32) NOT NULL DEFAULT '' COMMENT 'ip地址',
|
||||
`client_version` varchar(8) NOT NULL DEFAULT '' COMMENT '客户端版本',
|
||||
`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uniq_app_id_cluster_id_topic_name_type_ip_client_version` (`app_id`,`cluster_id`,`topic_name`,`type`,`ip`,`client_version`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='topic连接信息表';
|
||||
|
||||
--
|
||||
-- Table structure for table `topic_expired`
|
||||
--
|
||||
|
||||
-- DROP TABLE IF EXISTS `topic_expired`;
|
||||
CREATE TABLE `topic_expired` (
|
||||
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id',
|
||||
`cluster_id` bigint(20) NOT NULL DEFAULT '-1' COMMENT '集群id',
|
||||
`topic_name` varchar(192) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT 'topic名称',
|
||||
`produce_connection_num` bigint(20) NOT NULL DEFAULT '0' COMMENT '发送连接数',
|
||||
`fetch_connection_num` bigint(20) NOT NULL DEFAULT '0' COMMENT '消费连接数',
|
||||
`expired_day` bigint(20) NOT NULL DEFAULT '0' COMMENT '过期天数',
|
||||
`gmt_retain` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '保留截止时间',
|
||||
`status` int(16) NOT NULL DEFAULT '0' COMMENT '-1:可下线, 0:过期待通知, 1+:已通知待反馈',
|
||||
`gmt_create` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`gmt_modify` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uniq_cluster_id_topic_name` (`cluster_id`,`topic_name`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='topic过期信息表';
|
||||
|
||||
--
|
||||
-- Table structure for table `topic_metrics`
|
||||
--
|
||||
|
||||
-- DROP TABLE IF EXISTS `topic_metrics`;
|
||||
CREATE TABLE `topic_metrics` (
|
||||
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增id',
|
||||
`cluster_id` bigint(20) NOT NULL DEFAULT '-1' COMMENT '集群id',
|
||||
`topic_name` varchar(192) NOT NULL DEFAULT '' COMMENT 'topic名称',
|
||||
`metrics` text COMMENT '指标数据JSON',
|
||||
`gmt_create` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_cluster_id_topic_name_gmt_create` (`cluster_id`,`topic_name`,`gmt_create`),
|
||||
KEY `idx_gmt_create` (`gmt_create`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='topicmetrics表';
|
||||
|
||||
--
|
||||
-- Table structure for table `topic_report`
|
||||
--
|
||||
|
||||
-- DROP TABLE IF EXISTS `topic_report`;
|
||||
CREATE TABLE `topic_report` (
|
||||
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id',
|
||||
`cluster_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '集群id',
|
||||
`topic_name` varchar(192) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT 'topic名称',
|
||||
`start_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '开始上报时间',
|
||||
`end_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '结束上报时间',
|
||||
`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`modify_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uniq_cluster_id_topic_name` (`cluster_id`,`topic_name`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='开启jmx采集的topic';
|
||||
|
||||
--
|
||||
-- Table structure for table `topic_request_time_metrics`
|
||||
--
|
||||
|
||||
-- DROP TABLE IF EXISTS `topic_request_time_metrics`;
|
||||
CREATE TABLE `topic_request_time_metrics` (
|
||||
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id',
|
||||
`cluster_id` bigint(20) NOT NULL DEFAULT '-1' COMMENT '集群id',
|
||||
`topic_name` varchar(192) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT 'topic名称',
|
||||
`metrics` text COMMENT '指标',
|
||||
`gmt_create` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_cluster_id_topic_name_gmt_create` (`cluster_id`,`topic_name`,`gmt_create`),
|
||||
KEY `idx_gmt_create` (`gmt_create`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='topic请求耗时信息';
|
||||
|
||||
--
|
||||
-- Table structure for table `topic_statistics`
|
||||
--
|
||||
|
||||
-- DROP TABLE IF EXISTS `topic_statistics`;
|
||||
CREATE TABLE `topic_statistics` (
|
||||
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增id',
|
||||
`cluster_id` bigint(20) NOT NULL DEFAULT '-1' COMMENT '集群id',
|
||||
`topic_name` varchar(192) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT 'topic名称',
|
||||
`offset_sum` bigint(20) NOT NULL DEFAULT '-1' COMMENT 'offset和',
|
||||
`max_avg_bytes_in` double(53,2) NOT NULL DEFAULT '-1.00' COMMENT '峰值的均值流量',
|
||||
`gmt_day` varchar(64) NOT NULL DEFAULT '' COMMENT '日期2020-03-30的形式',
|
||||
`gmt_create` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`max_avg_messages_in` double(53,2) NOT NULL DEFAULT '-1.00' COMMENT '峰值的均值消息条数',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uniq_cluster_id_topic_name_gmt_day` (`cluster_id`,`topic_name`,`gmt_day`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='topic统计信息表';
|
||||
|
||||
--
|
||||
-- Table structure for table `topic_throttled_metrics`
|
||||
--
|
||||
|
||||
-- DROP TABLE IF EXISTS `topic_throttled_metrics`;
|
||||
CREATE TABLE `topic_throttled_metrics` (
|
||||
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id',
|
||||
`cluster_id` bigint(20) NOT NULL DEFAULT '-1' COMMENT '集群id',
|
||||
`topic_name` varchar(192) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT 'topic name',
|
||||
`app_id` varchar(64) NOT NULL DEFAULT '' COMMENT 'app',
|
||||
`produce_throttled` tinyint(8) NOT NULL DEFAULT '0' COMMENT '是否是生产耗时',
|
||||
`fetch_throttled` tinyint(8) NOT NULL DEFAULT '0' COMMENT '是否是消费耗时',
|
||||
`gmt_create` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_cluster_id_topic_name_app_id` (`cluster_id`,`topic_name`,`app_id`),
|
||||
KEY `idx_gmt_create` (`gmt_create`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='topic限流信息';
|
||||
|
||||
--
|
||||
-- Table structure for table `work_order`
|
||||
--
|
||||
|
||||
-- DROP TABLE IF EXISTS `work_order`;
|
||||
CREATE TABLE `work_order` (
|
||||
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id',
|
||||
`type` int(16) NOT NULL DEFAULT '-1' COMMENT '工单类型',
|
||||
`title` varchar(512) NOT NULL DEFAULT '' COMMENT '工单标题',
|
||||
`applicant` varchar(64) NOT NULL DEFAULT '' COMMENT '申请人',
|
||||
`description` text COMMENT '备注信息',
|
||||
`approver` varchar(64) NOT NULL DEFAULT '' COMMENT '审批人',
|
||||
`gmt_handle` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '审批时间',
|
||||
`opinion` varchar(256) NOT NULL DEFAULT '' COMMENT '审批信息',
|
||||
`extensions` text COMMENT '扩展信息',
|
||||
`status` int(16) NOT NULL DEFAULT '0' COMMENT '工单状态, 0:待审批, 1:通过, 2:拒绝, 3:取消',
|
||||
`gmt_create` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`gmt_modify` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='工单表';
|
||||
@@ -1,58 +0,0 @@
|
||||
|
||||
---
|
||||
|
||||

|
||||
|
||||
**一站式`Apache Kafka`集群指标监控与运维管控平台**
|
||||
|
||||
---
|
||||
|
||||
# 安装手册
|
||||
|
||||
|
||||
## 环境依赖
|
||||
|
||||
- `Maven 3.2+`(后端打包依赖)
|
||||
- `node 10+`(前端打包依赖)
|
||||
- `Java 8+`(运行环境需要)
|
||||
- `MySQL`(数据存储)
|
||||
|
||||
---
|
||||
|
||||
## 环境初始化
|
||||
|
||||
执行[create_mysql_table.sql](./create_mysql_table.sql)中的SQL命令,从而创建所需的MySQL库及表,默认创建的库名是`kafka_manager`。
|
||||
|
||||
```
|
||||
# 示例:
|
||||
mysql -uXXXX -pXXX -h XXX.XXX.XXX.XXX -PXXXX < ./create_mysql_table.sql
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 打包
|
||||
|
||||
```bash
|
||||
|
||||
# 一次性打包
|
||||
cd ..
|
||||
mvn install
|
||||
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 启动
|
||||
|
||||
```
|
||||
# application.yml 是配置文件
|
||||
|
||||
cp web/src/main/resources/application.yml web/target/
|
||||
cd web/target/
|
||||
nohup java -jar kafka-manager-web-2.0.0-SNAPSHOT.jar --spring.config.location=./application.yml > /dev/null 2>&1 &
|
||||
```
|
||||
|
||||
## 使用
|
||||
|
||||
本地启动的话,访问`http://localhost:8080`,输入帐号及密码进行登录。更多参考:[kafka-manager使用手册](./user_cn_guide.md)
|
||||
|
||||
@@ -1,39 +0,0 @@
|
||||
|
||||
---
|
||||
|
||||

|
||||
|
||||
**一站式`Apache Kafka`集群指标监控与运维管控平台**
|
||||
|
||||
---
|
||||
|
||||
# 集群接入
|
||||
|
||||
集群的接入总共需要三个步骤,分别是:
|
||||
1. 接入物理集群
|
||||
2. 创建Region
|
||||
3. 创建逻辑集群
|
||||
|
||||
备注:接入集群需要2、3两步是因为普通用户的视角下,看到的都是逻辑集群,如果没有2、3两步,那么普通用户看不到任何信息。
|
||||
|
||||
|
||||
## 1、接入物理集群
|
||||
|
||||

|
||||
|
||||
如上图所示,填写集群信息,然后点击确定,即可完成集群的接入。因为考虑到分布式部署,添加集群之后,需要稍等**`1分钟`**才可以在界面上看到集群的详细信息。
|
||||
|
||||
## 2、创建Region
|
||||
|
||||

|
||||
|
||||
如上图所示,填写Region信息,然后点击确定,即可完成Region的创建。
|
||||
|
||||
备注:Region即为Broker的集合,可以按照业务需要,将Broker归类,从而创建相应的Region。
|
||||
|
||||
## 3、创建逻辑集群
|
||||
|
||||

|
||||
|
||||
|
||||
如上图所示,填写逻辑集群信息,然后点击确定,即可完成逻辑集群的创建。
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 261 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 240 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 195 KiB |
@@ -1,166 +0,0 @@
|
||||
|
||||
---
|
||||
|
||||

|
||||
|
||||
**一站式`Apache Kafka`集群指标监控与运维管控平台**
|
||||
|
||||
---
|
||||
|
||||
# kafka-manager 使用手册
|
||||
|
||||
管控平台主要有两种用户视角,分别为:
|
||||
|
||||
- 普通用户:站在使用Kafka的角度使用kafka-manager;
|
||||
- 管理员:站在使用与管理Kafka的角度在使用kafka-manager;
|
||||
|
||||
下面我们将从这两个用户的维度说明平台的功能及使用。
|
||||
|
||||
---
|
||||
|
||||
## 1. 普通用户篇
|
||||
|
||||
### 1.1 帐号获取及登录
|
||||
|
||||
- 询问管理员让其提供普通用户的帐号;
|
||||
- 输入帐号及密码,登录kafka-manager;
|
||||
|
||||
---
|
||||
|
||||
### 1.2 Topic申请
|
||||
- 步骤一:点击"Topic申请"按钮申请Topic;
|
||||
- 步骤二:填写申请信息;
|
||||
- 步骤三:等待运维人员或管理员审批;
|
||||
|
||||
**Topic申请完成:**
|
||||

|
||||
|
||||
---
|
||||
|
||||
### 1.3 Topic信息查看
|
||||
|
||||
普通用户可查看的信息包括:
|
||||
|
||||
- 集群Topic列表及我收藏的Topic列表;
|
||||
- Topic基本信息(Topic创建及修改时间、Topic数据保存时间、Topic负责人等);
|
||||
- Topic分区信息;
|
||||
- Topic消费组信息及消费组消费详情;
|
||||
- Topic实时&历史流量信息;
|
||||
- Topic数据采样;
|
||||
|
||||
**Topic详情信息界面:**
|
||||

|
||||
|
||||
---
|
||||
|
||||
### 1.4 Topic运维
|
||||
|
||||
普通用户可进行的Topic运维的操作包括:
|
||||
- 申请Topic扩容
|
||||
- 重置消费偏移;
|
||||
|
||||
**Topic重置消费偏移界面:**
|
||||

|
||||
|
||||
---
|
||||
|
||||
### 1.5 告警配置
|
||||
|
||||
kafka-manager告警配置中,仅支持Lag/BytesIn/BytesOut这三类告警,同时告警被触发后,告警消息会被发往指定的Topic(具体哪一个请联系管理员获取)。需要用户主动消费该告警Topic的数据或者统一由管理员将该数据接入外部通知系统,比如接入短信通知或电话通知等。
|
||||
|
||||
**告警规则配置界面:**
|
||||

|
||||
|
||||
---
|
||||
|
||||
### 1.6 密码修改
|
||||
|
||||
**密码修改界面:**
|
||||

|
||||
|
||||
---
|
||||
|
||||
## 2. 管理员篇
|
||||
|
||||
|
||||
### 2.1 帐号获取及登录
|
||||
|
||||
- 默认的管理员帐号密码为`admin/admin`(详见数据库account表);
|
||||
|
||||
---
|
||||
|
||||
### 2.2 添加集群
|
||||
|
||||
登录之后,就需要将我们搭建的Kafka集群添加到kafka-manager中。
|
||||
|
||||
**添加Kafka集群界面:**
|
||||

|
||||
|
||||
---
|
||||
|
||||
### 2.3 监控指标
|
||||
|
||||
#### 2.3.1 集群维度指标
|
||||
|
||||
- 集群的基本信息;
|
||||
- 集群历史及实时流量信息;
|
||||
- 集群Topic信息;
|
||||
- 集群Broker信息;
|
||||
- 集群ConsumerGroup信息;
|
||||
- 集群Region信息;
|
||||
- 集群当前Controller及变更历史;
|
||||
|
||||
**集群维度监控指标界面:**
|
||||

|
||||
|
||||
---
|
||||
|
||||
#### 2.3.2 Broker维度指标
|
||||
|
||||
- Broker基本信息;
|
||||
- Broker历史与实时流量信息;
|
||||
- Broker内Topic信息;
|
||||
- Broker内分区信息;
|
||||
- Broker关键指标(日志刷盘时间等);
|
||||
- Topic分析(Topic流量占比等);
|
||||
|
||||
**`Broker`维度监控指标界面:**
|
||||

|
||||
|
||||
---
|
||||
|
||||
#### 2.3.3 Topic维度指标
|
||||
|
||||
- 在普通用户的基础上,增加展示Topic的Broker信息;
|
||||
|
||||
图略
|
||||
|
||||
---
|
||||
|
||||
#### 2.3.4 其他维度指标
|
||||
|
||||
- 消费组消费哪些具体的Topic;
|
||||
|
||||
图略
|
||||
|
||||
---
|
||||
|
||||
### 2.4 集群运维管控
|
||||
|
||||
- Topic申请及扩容工单审批;
|
||||
- Topic创建、删除、扩容及属性修改;
|
||||
- Broker维度优先副本选举;
|
||||
- 分区粒度迁移;
|
||||
- 逻辑Region管理;
|
||||
|
||||
**资源审批界面:**
|
||||

|
||||
|
||||
---
|
||||
|
||||
### 2.5 用户管理
|
||||
|
||||
- 对用户进行增删改查;
|
||||
|
||||
**用户管理界面:**
|
||||

|
||||
@@ -1,108 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>com.xiaojukeji.kafka</groupId>
|
||||
<artifactId>kafka-manager-common</artifactId>
|
||||
<version>2.0.0-SNAPSHOT</version>
|
||||
<packaging>jar</packaging>
|
||||
|
||||
<parent>
|
||||
<artifactId>kafka-manager</artifactId>
|
||||
<groupId>com.xiaojukeji.kafka</groupId>
|
||||
<version>2.0.0-SNAPSHOT</version>
|
||||
</parent>
|
||||
|
||||
<properties>
|
||||
<maven.test.skip>true</maven.test.skip>
|
||||
<downloadSources>true</downloadSources>
|
||||
<java_source_version>1.8</java_source_version>
|
||||
<java_target_version>1.8</java_target_version>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<file_encoding>UTF-8</file_encoding>
|
||||
|
||||
<spring-version>5.1.3.RELEASE</spring-version>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
<artifactId>spring-web</artifactId>
|
||||
<version>${spring-version}</version>
|
||||
</dependency>
|
||||
|
||||
<!-- http -->
|
||||
<dependency>
|
||||
<groupId>org.apache.httpcomponents</groupId>
|
||||
<artifactId>httpcore</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.httpcomponents</groupId>
|
||||
<artifactId>httpclient</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>commons-httpclient</groupId>
|
||||
<artifactId>commons-httpclient</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.httpcomponents</groupId>
|
||||
<artifactId>httpmime</artifactId>
|
||||
</dependency>
|
||||
|
||||
<!-- zookeeper -->
|
||||
<dependency>
|
||||
<groupId>org.apache.curator</groupId>
|
||||
<artifactId>curator-recipes</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.zookeeper</groupId>
|
||||
<artifactId>zookeeper</artifactId>
|
||||
</dependency>
|
||||
|
||||
<!-- swagger -->
|
||||
<dependency>
|
||||
<groupId>io.springfox</groupId>
|
||||
<artifactId>springfox-swagger2</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>io.springfox</groupId>
|
||||
<artifactId>springfox-swagger-ui</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>io.swagger</groupId>
|
||||
<artifactId>swagger-annotations</artifactId>
|
||||
</dependency>
|
||||
|
||||
<!-- json -->
|
||||
<dependency>
|
||||
<groupId>com.fasterxml.jackson.core</groupId>
|
||||
<artifactId>jackson-databind</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.alibaba</groupId>
|
||||
<artifactId>fastjson</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>commons-beanutils</groupId>
|
||||
<artifactId>commons-beanutils</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.kafka</groupId>
|
||||
<artifactId>kafka_2.10</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>commons-lang</groupId>
|
||||
<artifactId>commons-lang</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.commons</groupId>
|
||||
<artifactId>commons-pool2</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>javax.servlet</groupId>
|
||||
<artifactId>javax.servlet-api</artifactId>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
||||
@@ -1,24 +0,0 @@
|
||||
package com.xiaojukeji.kafka.manager.common.annotations;
|
||||
|
||||
import com.xiaojukeji.kafka.manager.common.constant.ApiLevelContent;
|
||||
|
||||
import java.lang.annotation.Documented;
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.Target;
|
||||
|
||||
import static java.lang.annotation.RetentionPolicy.RUNTIME;
|
||||
|
||||
/**
|
||||
* 接口分级限流
|
||||
* @author zengqiao
|
||||
* @date 2020-07-20
|
||||
*/
|
||||
@Target(ElementType.METHOD)
|
||||
@Retention(RUNTIME)
|
||||
@Documented
|
||||
public @interface ApiLevel {
|
||||
int level() default ApiLevelContent.LEVEL_DEFAULT_4;
|
||||
|
||||
int rateLimit() default Integer.MAX_VALUE;
|
||||
}
|
||||
@@ -1,50 +0,0 @@
|
||||
package com.xiaojukeji.kafka.manager.common.bizenum;
|
||||
|
||||
/**
|
||||
* 用户角色
|
||||
* @author zengqiao_cn@163.com
|
||||
* @date 19/4/15
|
||||
*/
|
||||
public enum AccountRoleEnum {
|
||||
UNKNOWN(-1, "unknown"),
|
||||
|
||||
NORMAL(0, "normal"),
|
||||
|
||||
RD(1, "rd"),
|
||||
|
||||
OP(2, "op");
|
||||
|
||||
private Integer role;
|
||||
|
||||
private String message;
|
||||
|
||||
AccountRoleEnum(Integer role, String message) {
|
||||
this.role = role;
|
||||
this.message = message;
|
||||
}
|
||||
|
||||
public Integer getRole() {
|
||||
return role;
|
||||
}
|
||||
|
||||
public String getMessage() {
|
||||
return message;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "AccountRoleEnum{" +
|
||||
"role=" + role +
|
||||
", message='" + message + '\'' +
|
||||
'}';
|
||||
}
|
||||
|
||||
public static AccountRoleEnum getUserRoleEnum(Integer role) {
|
||||
for (AccountRoleEnum elem: AccountRoleEnum.values()) {
|
||||
if (elem.role.equals(role)) {
|
||||
return elem;
|
||||
}
|
||||
}
|
||||
return AccountRoleEnum.UNKNOWN;
|
||||
}
|
||||
}
|
||||
@@ -1,19 +0,0 @@
|
||||
package com.xiaojukeji.kafka.manager.common.bizenum;
|
||||
|
||||
/**
|
||||
* @author zengqiao
|
||||
* @date 20/7/27
|
||||
*/
|
||||
public enum ApiLevelEnum {
|
||||
LEVEL_0(0),
|
||||
LEVEL_1(1),
|
||||
LEVEL_2(2),
|
||||
LEVEL_3(3)
|
||||
;
|
||||
|
||||
private int level;
|
||||
|
||||
ApiLevelEnum(int level) {
|
||||
this.level = level;
|
||||
}
|
||||
}
|
||||
@@ -1,37 +0,0 @@
|
||||
package com.xiaojukeji.kafka.manager.common.bizenum;
|
||||
|
||||
/**
|
||||
* @author zengqiao
|
||||
* @date 20/4/21
|
||||
*/
|
||||
public enum ClusterComboEnum {
|
||||
BYTES_IN_200(200*1024*1024, "200MB/s"),
|
||||
BYTES_IN_400(400*1024*1024, "400MB/s"),
|
||||
BYTES_IN_600(600*1024*1024, "600MB/s"),
|
||||
;
|
||||
|
||||
private Integer code;
|
||||
|
||||
private String message;
|
||||
|
||||
ClusterComboEnum(Integer code, String message) {
|
||||
this.code = code;
|
||||
this.message = message;
|
||||
}
|
||||
|
||||
public Integer getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
public String getMessage() {
|
||||
return message;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "ClusterComboEnum{" +
|
||||
"code=" + code +
|
||||
", message='" + message + '\'' +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
@@ -1,48 +0,0 @@
|
||||
package com.xiaojukeji.kafka.manager.common.bizenum;
|
||||
|
||||
/**
|
||||
* 集群模式
|
||||
* @author zengqiao
|
||||
* @date 20/4/1
|
||||
*/
|
||||
public enum ClusterModeEnum {
|
||||
/**
|
||||
* 共享模式
|
||||
*/
|
||||
SHARED_MODE(0, "共享集群"),
|
||||
|
||||
/**
|
||||
* 独享模式
|
||||
*/
|
||||
EXCLUSIVE_MODE(1, "独享集群"),
|
||||
|
||||
/**
|
||||
* 独立模式
|
||||
*/
|
||||
INDEPENDENT_MODE(2, "独立集群");
|
||||
|
||||
private Integer code;
|
||||
|
||||
private String message;
|
||||
|
||||
ClusterModeEnum(Integer code, String message) {
|
||||
this.code = code;
|
||||
this.message = message;
|
||||
}
|
||||
|
||||
public Integer getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
public String getMessage() {
|
||||
return message;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "ClusterModeEnum{" +
|
||||
"code=" + code +
|
||||
", message='" + message + '\'' +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
package com.xiaojukeji.kafka.manager.common.bizenum;
|
||||
|
||||
/**
|
||||
* @author zengqiao
|
||||
* @date 20/6/4
|
||||
*/
|
||||
public enum DBStatusEnum {
|
||||
DEAD(-1),
|
||||
ALIVE(0)
|
||||
;
|
||||
|
||||
private int status;
|
||||
|
||||
DBStatusEnum(int status) {
|
||||
this.status = status;
|
||||
}
|
||||
|
||||
public int getStatus() {
|
||||
return status;
|
||||
}
|
||||
|
||||
public void setStatus(int status) {
|
||||
this.status = status;
|
||||
}
|
||||
}
|
||||
@@ -1,45 +0,0 @@
|
||||
package com.xiaojukeji.kafka.manager.common.bizenum;
|
||||
|
||||
/**
|
||||
* @author zengqiao
|
||||
* @date 20/5/26
|
||||
*/
|
||||
public enum IDCEnum {
|
||||
CN("cn", "国内"),
|
||||
US("us", "美东"),
|
||||
RU("ru", "俄罗斯"),
|
||||
;
|
||||
|
||||
private String idc;
|
||||
|
||||
private String name;
|
||||
|
||||
IDCEnum(String idc, String name) {
|
||||
this.idc = idc;
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public String getIdc() {
|
||||
return idc;
|
||||
}
|
||||
|
||||
public void setIdc(String idc) {
|
||||
this.idc = idc;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "IDCEnum{" +
|
||||
"idc='" + idc + '\'' +
|
||||
", name='" + name + '\'' +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
@@ -1,34 +0,0 @@
|
||||
package com.xiaojukeji.kafka.manager.common.bizenum;
|
||||
|
||||
/**
|
||||
* @author zengqiao
|
||||
* @date 20/5/20
|
||||
*/
|
||||
public enum KafkaBrokerRoleEnum {
|
||||
NORMAL("NormalBroker"),
|
||||
|
||||
COORDINATOR("Coordinator"),
|
||||
|
||||
CONTROLLER("Controller"),
|
||||
;
|
||||
private String role;
|
||||
|
||||
KafkaBrokerRoleEnum(String role) {
|
||||
this.role = role;
|
||||
}
|
||||
|
||||
public String getRole() {
|
||||
return role;
|
||||
}
|
||||
|
||||
public void setRole(String role) {
|
||||
this.role = role;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "KafkaBrokerRoleEnum{" +
|
||||
"role='" + role + '\'' +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
@@ -1,46 +0,0 @@
|
||||
package com.xiaojukeji.kafka.manager.common.bizenum;
|
||||
|
||||
/**
|
||||
* @author zengqiao
|
||||
* @date 20/5/29
|
||||
*/
|
||||
public enum KafkaClientEnum {
|
||||
PRODUCE_CLIENT(0, "Produce"),
|
||||
|
||||
FETCH_CLIENT(1, "Fetch"),
|
||||
|
||||
;
|
||||
|
||||
private Integer code;
|
||||
|
||||
private String name;
|
||||
|
||||
KafkaClientEnum(Integer code, String name) {
|
||||
this.code = code;
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public Integer getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
public void setCode(Integer code) {
|
||||
this.code = code;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "KafkaClientEnum{" +
|
||||
"code=" + code +
|
||||
", name='" + name + '\'' +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
@@ -1,54 +0,0 @@
|
||||
package com.xiaojukeji.kafka.manager.common.bizenum;
|
||||
|
||||
/**
|
||||
* @author zengqiao
|
||||
* @date 20/4/26
|
||||
*/
|
||||
public enum KafkaFileEnum {
|
||||
PACKAGE(0, "Kafka压缩包", ".tgz"),
|
||||
|
||||
SERVER_CONFIG(1, "KafkaServer配置", ".properties"),
|
||||
;
|
||||
|
||||
private Integer code;
|
||||
|
||||
private String message;
|
||||
|
||||
private String suffix;
|
||||
|
||||
KafkaFileEnum(Integer code, String message, String suffix) {
|
||||
this.code = code;
|
||||
this.message = message;
|
||||
this.suffix = suffix;
|
||||
}
|
||||
|
||||
public Integer getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
public String getMessage() {
|
||||
return message;
|
||||
}
|
||||
|
||||
public String getSuffix() {
|
||||
return suffix;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "KafkaFileEnum{" +
|
||||
"code=" + code +
|
||||
", message='" + message + '\'' +
|
||||
", suffix=" + suffix +
|
||||
'}';
|
||||
}
|
||||
|
||||
public static KafkaFileEnum getByCode(Integer code) {
|
||||
for (KafkaFileEnum elem: KafkaFileEnum.values()) {
|
||||
if (elem.getCode().equals(code)) {
|
||||
return elem;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -1,76 +0,0 @@
|
||||
package com.xiaojukeji.kafka.manager.common.bizenum;
|
||||
|
||||
import com.google.common.collect.Maps;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author zhongyuankai_i
|
||||
* @date 20/09/03
|
||||
*/
|
||||
public enum ModuleEnum {
|
||||
TOPIC(0, "Topic"),
|
||||
|
||||
APP(1, "应用"),
|
||||
|
||||
QUOTA(2, "配额"),
|
||||
|
||||
AUTHORITY(3, "权限"),
|
||||
|
||||
CLUSTER(4, "集群"),
|
||||
|
||||
PARTITION(5, "分区"),
|
||||
|
||||
UNKNOWN(-1, "未知")
|
||||
;
|
||||
ModuleEnum(int code, String message) {
|
||||
this.code = code;
|
||||
this.message = message;
|
||||
}
|
||||
|
||||
private int code;
|
||||
|
||||
private String message;
|
||||
|
||||
public int getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
public String getMessage() {
|
||||
return message;
|
||||
}
|
||||
|
||||
public Map<String, Object> toMap() {
|
||||
Map<String, Object> map = Maps.newHashMap();
|
||||
map.put("code", code);
|
||||
map.put("message", message);
|
||||
return map;
|
||||
}
|
||||
|
||||
public static ModuleEnum valueOf(Integer code) {
|
||||
if (code == null) {
|
||||
return ModuleEnum.UNKNOWN;
|
||||
}
|
||||
for (ModuleEnum state : ModuleEnum.values()) {
|
||||
if (state.getCode() == code) {
|
||||
return state;
|
||||
}
|
||||
}
|
||||
|
||||
return ModuleEnum.UNKNOWN;
|
||||
}
|
||||
|
||||
public static boolean validate(Integer code) {
|
||||
if (code == null) {
|
||||
return false;
|
||||
}
|
||||
for (ModuleEnum state : ModuleEnum.values()) {
|
||||
if (state.getCode() == code) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,36 +0,0 @@
|
||||
package com.xiaojukeji.kafka.manager.common.bizenum;
|
||||
|
||||
/**
|
||||
* @author limeng
|
||||
* @date 2017/11/21
|
||||
*/
|
||||
public enum OffsetLocationEnum {
|
||||
/**
|
||||
* 存储于zk
|
||||
*/
|
||||
ZOOKEEPER("zookeeper"),
|
||||
|
||||
/**
|
||||
* 存储于broker
|
||||
*/
|
||||
BROKER("broker");
|
||||
|
||||
public final String location;
|
||||
|
||||
OffsetLocationEnum(String location) {
|
||||
this.location = location;
|
||||
}
|
||||
|
||||
public static OffsetLocationEnum getOffsetStoreLocation(String location) {
|
||||
if (location == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
for (OffsetLocationEnum offsetStoreLocation: OffsetLocationEnum.values()) {
|
||||
if (offsetStoreLocation.location.equals(location)) {
|
||||
return offsetStoreLocation;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -1,42 +0,0 @@
|
||||
package com.xiaojukeji.kafka.manager.common.bizenum;
|
||||
|
||||
/**
|
||||
* offset获取的位置
|
||||
* @author zengqiao
|
||||
* @date 19/5/29
|
||||
*/
|
||||
public enum OffsetPosEnum {
|
||||
NONE(0),
|
||||
|
||||
BEGINNING(1),
|
||||
|
||||
END(2),
|
||||
|
||||
BOTH(3);
|
||||
|
||||
public final Integer code;
|
||||
|
||||
OffsetPosEnum(Integer code) {
|
||||
this.code = code;
|
||||
}
|
||||
|
||||
public Integer getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
public static OffsetPosEnum getOffsetPosEnum(Integer code) {
|
||||
for (OffsetPosEnum offsetPosEnum : values()) {
|
||||
if (offsetPosEnum.getCode().equals(code)) {
|
||||
return offsetPosEnum;
|
||||
}
|
||||
}
|
||||
return NONE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "OffsetPosEnum{" +
|
||||
"code=" + code +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
@@ -1,59 +0,0 @@
|
||||
package com.xiaojukeji.kafka.manager.common.bizenum;
|
||||
|
||||
/**
|
||||
* @author zhongyuankai
|
||||
* @date 20/09/03
|
||||
*/
|
||||
public enum OperateEnum {
|
||||
ADD(0, "新增"),
|
||||
|
||||
DELETE(1, "删除"),
|
||||
|
||||
EDIT(2, "修改"),
|
||||
|
||||
UNKNOWN(-1, "unknown"),
|
||||
;
|
||||
|
||||
OperateEnum(int code, String message) {
|
||||
this.code = code;
|
||||
this.message = message;
|
||||
}
|
||||
|
||||
private int code;
|
||||
|
||||
private String message;
|
||||
|
||||
public int getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
public String getMessage() {
|
||||
return message;
|
||||
}
|
||||
|
||||
public static OperateEnum valueOf(Integer code) {
|
||||
if (code == null) {
|
||||
return OperateEnum.UNKNOWN;
|
||||
}
|
||||
for (OperateEnum state : OperateEnum.values()) {
|
||||
if (state.getCode() == code) {
|
||||
return state;
|
||||
}
|
||||
}
|
||||
|
||||
return OperateEnum.UNKNOWN;
|
||||
}
|
||||
|
||||
public static boolean validate(Integer code) {
|
||||
if (code == null) {
|
||||
return false;
|
||||
}
|
||||
for (OperateEnum state : OperateEnum.values()) {
|
||||
if (state.getCode() == code) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -1,30 +0,0 @@
|
||||
package com.xiaojukeji.kafka.manager.common.bizenum;
|
||||
|
||||
/**
|
||||
* 操作状态类型
|
||||
* @author zengqiao
|
||||
* @date 19/11/21
|
||||
*/
|
||||
public enum OperationStatusEnum {
|
||||
CREATE(0, "创建"),
|
||||
UPDATE(1, "更新"),
|
||||
DELETE(2, "删除"),
|
||||
;
|
||||
|
||||
private Integer code;
|
||||
|
||||
private String message;
|
||||
|
||||
OperationStatusEnum(Integer code, String message) {
|
||||
this.code = code;
|
||||
this.message = message;
|
||||
}
|
||||
|
||||
public Integer getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
public String getMessage() {
|
||||
return message;
|
||||
}
|
||||
}
|
||||
@@ -1,50 +0,0 @@
|
||||
package com.xiaojukeji.kafka.manager.common.bizenum;
|
||||
|
||||
/**
|
||||
* 峰值状态枚举
|
||||
* @author zengqiao
|
||||
* @date 20/5/11
|
||||
*/
|
||||
public enum PeakFlowStatusEnum {
|
||||
BETWEEN_ALL(0, "全部"),
|
||||
BETWEEN_00_60(1, "使用率0%-60%"),
|
||||
BETWEEN_60_80(2, "使用率60%-80%"),
|
||||
BETWEEN_80_100(3, "使用率80%-100%"),
|
||||
BETWEEN_100_PLUS(4, "使用率大于100%"),
|
||||
BETWEEN_EXCEPTION(5, "数据获取失败"),
|
||||
|
||||
;
|
||||
|
||||
public Integer code;
|
||||
|
||||
public String message;
|
||||
|
||||
PeakFlowStatusEnum(Integer code, String message) {
|
||||
this.code = code;
|
||||
this.message = message;
|
||||
}
|
||||
|
||||
public Integer getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
public void setCode(Integer code) {
|
||||
this.code = code;
|
||||
}
|
||||
|
||||
public String getMessage() {
|
||||
return message;
|
||||
}
|
||||
|
||||
public void setMessage(String message) {
|
||||
this.message = message;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "PeakFlowStatusEnum{" +
|
||||
"code=" + code +
|
||||
", message='" + message + '\'' +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
@@ -1,31 +0,0 @@
|
||||
package com.xiaojukeji.kafka.manager.common.bizenum;
|
||||
|
||||
/**
|
||||
* 优先副本选举维度
|
||||
* @author zengqiao
|
||||
* @date 20/4/23
|
||||
*/
|
||||
public enum RebalanceDimensionEnum {
|
||||
CLUSTER(0, "Cluster维度"),
|
||||
REGION(1, "Region维度"),
|
||||
BROKER(2, "Broker维度"),
|
||||
TOPIC(3, "Topic维度"),
|
||||
;
|
||||
|
||||
private Integer code;
|
||||
|
||||
private String message;
|
||||
|
||||
RebalanceDimensionEnum(Integer code, String message) {
|
||||
this.code = code;
|
||||
this.message = message;
|
||||
}
|
||||
|
||||
public Integer getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
public String getMessage() {
|
||||
return message;
|
||||
}
|
||||
}
|
||||
@@ -1,45 +0,0 @@
|
||||
package com.xiaojukeji.kafka.manager.common.bizenum;
|
||||
|
||||
/**
|
||||
* 是否上报监控系统
|
||||
* @author zengqiao
|
||||
* @date 20/9/25
|
||||
*/
|
||||
public enum SinkMonitorSystemEnum {
|
||||
SINK_MONITOR_SYSTEM(0, "上报监控系统"),
|
||||
NOT_SINK_MONITOR_SYSTEM(1, "不上报监控系统"),
|
||||
;
|
||||
|
||||
private Integer code;
|
||||
|
||||
private String message;
|
||||
|
||||
SinkMonitorSystemEnum(Integer code, String message) {
|
||||
this.code = code;
|
||||
this.message = message;
|
||||
}
|
||||
|
||||
public Integer getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
public void setCode(Integer code) {
|
||||
this.code = code;
|
||||
}
|
||||
|
||||
public String getMessage() {
|
||||
return message;
|
||||
}
|
||||
|
||||
public void setMessage(String message) {
|
||||
this.message = message;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "SinkMonitorSystemEnum{" +
|
||||
"code=" + code +
|
||||
", message='" + message + '\'' +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
@@ -1,72 +0,0 @@
|
||||
package com.xiaojukeji.kafka.manager.common.bizenum;
|
||||
|
||||
/**
|
||||
* 任务状态
|
||||
* @author zengqiao
|
||||
* @date 2017/6/29.
|
||||
*/
|
||||
public enum TaskStatusEnum {
|
||||
UNKNOWN( -1, "未知"),
|
||||
|
||||
NEW( 0, "新建"),
|
||||
|
||||
RUNNABLE( 20, "就绪"),
|
||||
WAITING( 21, "等待"),
|
||||
|
||||
RUNNING( 30, "运行中"),
|
||||
KILLING( 31, "杀死中"),
|
||||
|
||||
BLOCKED( 40, "暂停"),
|
||||
|
||||
UNFINISHED( 99, "未完成"),
|
||||
FINISHED( 100, "完成"),
|
||||
|
||||
SUCCEED( 101, "成功"),
|
||||
FAILED( 102, "失败"),
|
||||
CANCELED( 103, "取消"),
|
||||
IGNORED( 104, "忽略"),
|
||||
TIMEOUT( 105, "超时"),
|
||||
KILL_FAILED(106, "杀死失败"),
|
||||
|
||||
;
|
||||
|
||||
private Integer code;
|
||||
|
||||
private String message;
|
||||
|
||||
TaskStatusEnum(Integer code, String message) {
|
||||
this.code = code;
|
||||
this.message = message;
|
||||
}
|
||||
|
||||
public Integer getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
public void setCode(Integer code) {
|
||||
this.code = code;
|
||||
}
|
||||
|
||||
public String getMessage() {
|
||||
return message;
|
||||
}
|
||||
|
||||
public void setMessage(String message) {
|
||||
this.message = message;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "TaskStatusEnum{" +
|
||||
"code=" + code +
|
||||
", message='" + message + '\'' +
|
||||
'}';
|
||||
}
|
||||
|
||||
public static Boolean isFinished(Integer code) {
|
||||
if (code >= FINISHED.getCode()) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -1,55 +0,0 @@
|
||||
package com.xiaojukeji.kafka.manager.common.bizenum;
|
||||
|
||||
/**
|
||||
* @author zengqiao
|
||||
* @date 20/6/11
|
||||
*/
|
||||
public enum TaskStatusReassignEnum {
|
||||
UNKNOWN(TaskStatusEnum.UNKNOWN),
|
||||
|
||||
NEW(TaskStatusEnum.NEW),
|
||||
|
||||
RUNNABLE(TaskStatusEnum.RUNNABLE),
|
||||
|
||||
RUNNING(TaskStatusEnum.RUNNING),
|
||||
|
||||
// FINISHED(TaskStatusEnum.FINISHED),
|
||||
SUCCEED(TaskStatusEnum.SUCCEED),
|
||||
FAILED(TaskStatusEnum.FAILED),
|
||||
CANCELED(TaskStatusEnum.CANCELED),
|
||||
;
|
||||
|
||||
private Integer code;
|
||||
|
||||
private String message;
|
||||
|
||||
TaskStatusReassignEnum(TaskStatusEnum taskStatusEnum) {
|
||||
this.code = taskStatusEnum.getCode();
|
||||
this.message = taskStatusEnum.getMessage();
|
||||
}
|
||||
|
||||
public Integer getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
public String getMessage() {
|
||||
return message;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "TaskStatusReassignEnum{" +
|
||||
"code=" + code +
|
||||
", message='" + message + '\'' +
|
||||
'}';
|
||||
}
|
||||
|
||||
public static Boolean isFinished(Integer code) {
|
||||
if (SUCCEED.getCode().equals(code)
|
||||
|| FAILED.getCode().equals(code)
|
||||
|| CANCELED.getCode().equals(code)) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -1,36 +0,0 @@
|
||||
package com.xiaojukeji.kafka.manager.common.bizenum;
|
||||
|
||||
/**
|
||||
* topic权限
|
||||
* @author zhongyuankai
|
||||
* @date 20/4/29
|
||||
*/
|
||||
public enum TopicAuthorityEnum {
|
||||
DENY(0, "无"),
|
||||
|
||||
READ(1, "只读"),
|
||||
|
||||
WRITE(2, "只写"),
|
||||
|
||||
READ_WRITE(3, "可读可写"),
|
||||
|
||||
OWNER(4, "可管理"),
|
||||
;
|
||||
|
||||
private Integer code;
|
||||
|
||||
private String message;
|
||||
|
||||
TopicAuthorityEnum(Integer code, String message) {
|
||||
this.code = code;
|
||||
this.message = message;
|
||||
}
|
||||
|
||||
public Integer getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
public String getMessage() {
|
||||
return message;
|
||||
}
|
||||
}
|
||||
@@ -1,45 +0,0 @@
|
||||
package com.xiaojukeji.kafka.manager.common.bizenum;
|
||||
|
||||
/**
|
||||
* @author zengqiao
|
||||
* @date 20/8/24
|
||||
*/
|
||||
public enum TopicOffsetChangedEnum {
|
||||
UNKNOWN(-1, "unknown"),
|
||||
NO(0, "no"),
|
||||
YES(1, "yes"),
|
||||
;
|
||||
|
||||
private Integer code;
|
||||
|
||||
private String message;
|
||||
|
||||
TopicOffsetChangedEnum(Integer code, String message) {
|
||||
this.code = code;
|
||||
this.message = message;
|
||||
}
|
||||
|
||||
public Integer getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
public void setCode(Integer code) {
|
||||
this.code = code;
|
||||
}
|
||||
|
||||
public String getMessage() {
|
||||
return message;
|
||||
}
|
||||
|
||||
public void setMessage(String message) {
|
||||
this.message = message;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "TopicOffsetChangedEnum{" +
|
||||
"code=" + code +
|
||||
", message='" + message + '\'' +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
@@ -1,39 +0,0 @@
|
||||
package com.xiaojukeji.kafka.manager.common.bizenum;
|
||||
|
||||
/**
|
||||
* Topic迁移动作
|
||||
* @author zengqiao
|
||||
* @date 20/4/16
|
||||
*/
|
||||
public enum TopicReassignActionEnum {
|
||||
START("start"),
|
||||
MODIFY("modify"),
|
||||
CANCEL("cancel"),
|
||||
;
|
||||
|
||||
private String action;
|
||||
|
||||
TopicReassignActionEnum(String action) {
|
||||
this.action = action;
|
||||
}
|
||||
|
||||
public String getAction() {
|
||||
return action;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "TopicReassignActionEnum{" +
|
||||
"action='" + action + '\'' +
|
||||
'}';
|
||||
}
|
||||
|
||||
public static TopicReassignActionEnum getByAction(String action) {
|
||||
for (TopicReassignActionEnum elem: TopicReassignActionEnum.values()) {
|
||||
if (elem.action.equals(action)) {
|
||||
return elem;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -1,48 +0,0 @@
|
||||
package com.xiaojukeji.kafka.manager.common.bizenum.gateway;
|
||||
|
||||
/**
|
||||
* @author zengqiao
|
||||
* @date 20/7/28
|
||||
*/
|
||||
public enum GatewayConfigKeyEnum {
|
||||
SD_CLUSTER_ID("SERVICE_DISCOVERY_CLUSTER_ID", "SERVICE_DISCOVERY_CLUSTER_ID"),
|
||||
SD_QUEUE_SIZE("SERVICE_DISCOVERY_QUEUE_SIZE", "SERVICE_DISCOVERY_QUEUE_SIZE"),
|
||||
SD_APP_ID_RATE("SERVICE_DISCOVERY_APPID_RATE", "SERVICE_DISCOVERY_APPID_RATE"),
|
||||
SD_IP_RATE("SERVICE_DISCOVERY_IP_RATE", "SERVICE_DISCOVERY_IP_RATE"),
|
||||
SD_SP_RATE("SERVICE_DISCOVERY_SP_RATE", "SERVICE_DISCOVERY_SP_RATE"),
|
||||
|
||||
;
|
||||
|
||||
private String configType;
|
||||
|
||||
private String configName;
|
||||
|
||||
GatewayConfigKeyEnum(String configType, String configName) {
|
||||
this.configType = configType;
|
||||
this.configName = configName;
|
||||
}
|
||||
|
||||
public String getConfigType() {
|
||||
return configType;
|
||||
}
|
||||
|
||||
public void setConfigType(String configType) {
|
||||
this.configType = configType;
|
||||
}
|
||||
|
||||
public String getConfigName() {
|
||||
return configName;
|
||||
}
|
||||
|
||||
public void setConfigName(String configName) {
|
||||
this.configName = configName;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "GatewayConfigKeyEnum{" +
|
||||
"configType='" + configType + '\'' +
|
||||
", configName='" + configName + '\'' +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
@@ -1,15 +0,0 @@
|
||||
package com.xiaojukeji.kafka.manager.common.constant;
|
||||
|
||||
/**
|
||||
* @author zengqiao
|
||||
* @date 20/7/28
|
||||
*/
|
||||
public class ApiLevelContent {
|
||||
public static final int LEVEL_VIP_1 = 1;
|
||||
|
||||
public static final int LEVEL_IMPORTANT_2 = 2;
|
||||
|
||||
public static final int LEVEL_NORMAL_3 = 3;
|
||||
|
||||
public static final int LEVEL_DEFAULT_4 = 4;
|
||||
}
|
||||
@@ -1,26 +0,0 @@
|
||||
package com.xiaojukeji.kafka.manager.common.constant;
|
||||
|
||||
/**
|
||||
* Api前缀
|
||||
* @author zengqiao
|
||||
* @date 20/4/16
|
||||
*/
|
||||
public class ApiPrefix {
|
||||
public static final String API_V1_SSO_PREFIX = "/api/v1/sso/";
|
||||
|
||||
public static final String API_V1_NORMAL_PREFIX = "/api/v1/normal/";
|
||||
|
||||
public static final String API_V1_RD_PREFIX = "/api/v1/rd/";
|
||||
|
||||
public static final String API_V1_OP_PREFIX = "/api/v1/op/";
|
||||
|
||||
public static final String API_V1_THIRD_PART_PREFIX = "/api/v1/third-part/";
|
||||
|
||||
public static final String API_V2_THIRD_PART_PREFIX = "/api/v2/third-part/";
|
||||
|
||||
public static final String API_V1_OBSOLETE_PREFIX = "/api/v1/";
|
||||
|
||||
public static final String API_V2_OBSOLETE_PREFIX = "/api/v2/";
|
||||
|
||||
public static final String GATEWAY_API_V1_PREFIX = "/gateway/api/v1/";
|
||||
}
|
||||
@@ -1,33 +0,0 @@
|
||||
package com.xiaojukeji.kafka.manager.common.constant;
|
||||
|
||||
/**
|
||||
* 配置的常量KEY
|
||||
* @author zengqiao
|
||||
* @date 20/7/1
|
||||
*/
|
||||
public class ConfigConstant {
|
||||
/**
|
||||
* 专家服务
|
||||
*/
|
||||
public static final String REGION_HOT_TOPIC_CONFIG_KEY = "REGION_HOT_TOPIC_CONFIG";
|
||||
public static final String TOPIC_INSUFFICIENT_PARTITION_CONFIG_KEY = "TOPIC_INSUFFICIENT_PARTITION_CONFIG";
|
||||
public static final String EXPIRED_TOPIC_CONFIG_KEY = "EXPIRED_TOPIC_CONFIG";
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public static final String PRODUCE_CONSUMER_METRICS_CONFIG_KEY = "PRODUCE_CONSUMER_METRICS_CONFIG_KEY";
|
||||
|
||||
public static final String PRODUCE_TOPIC_METRICS_CONFIG_KEY = "PRODUCE_TOPIC_METRICS_CONFIG_KEY";
|
||||
|
||||
public static final long MAX_LIMIT_NUM = 200L;
|
||||
|
||||
/**
|
||||
* broker 默认最大峰值流量 100M
|
||||
*/
|
||||
public static final Long DEFAULT_BROKER_CAPACITY_LIMIT = 100 * 1024 * 1024L;
|
||||
|
||||
public static final String BROKER_CAPACITY_LIMIT_CONFIG_KEY = "BROKER_CAPACITY_LIMIT_CONFIG";
|
||||
|
||||
public static final String KAFKA_CLUSTER_DO_CONFIG_KEY = "KAFKA_CLUSTER_DO_CONFIG";
|
||||
}
|
||||
@@ -1,48 +0,0 @@
|
||||
package com.xiaojukeji.kafka.manager.common.constant;
|
||||
|
||||
/**
|
||||
* @author zengqiao
|
||||
* @date 20/2/28
|
||||
*/
|
||||
public class Constant {
|
||||
public static final Integer SUCCESS = 0;
|
||||
|
||||
public static final Integer MAX_AVG_BYTES_DURATION = 10;
|
||||
|
||||
public static final Integer BATCH_INSERT_SIZE = 50;
|
||||
|
||||
public static final Integer DEFAULT_SESSION_TIMEOUT_UNIT_MS = 30000;
|
||||
|
||||
public static final Integer MAX_TOPIC_OPERATION_SIZE_PER_REQUEST = 10;
|
||||
|
||||
/**
|
||||
* 不进行过滤的BrokerId
|
||||
*/
|
||||
public static final Integer NOT_FILTER_BROKER_ID = -1;
|
||||
|
||||
/**
|
||||
* 默认最近20分钟的连接信息
|
||||
*/
|
||||
public static final Long TOPIC_CONNECTION_LATEST_TIME_MS = 20 * 60 * 1000L;
|
||||
|
||||
/**
|
||||
* 工单相关
|
||||
*/
|
||||
public static final String HANDLE_APP_APPLY_MAX_NUM = "handle_app_apply_order_num";
|
||||
|
||||
public static final Integer HANDLE_APP_APPLY_MAX_NUM_DEFAULT = 10;
|
||||
|
||||
public static final String AUTO_HANDLE_USER_NAME = "auto_handle";
|
||||
|
||||
public static final String AUTO_HANDLE_CHINESE_NAME = "自动审批";
|
||||
|
||||
public static final String UNKNOWN_VERSION = "unknownVersion";
|
||||
|
||||
public static final String UNKNOWN_USER = "UNKNOWN_USER";
|
||||
|
||||
public static final String DEFAULT_USER_NAME = "kafka-admin";
|
||||
|
||||
public static final Integer DEFAULT_MAX_CAL_TOPIC_EXPIRED_DAY = 90;
|
||||
|
||||
public static final Integer INVALID_CODE = -1;
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
package com.xiaojukeji.kafka.manager.common.constant;
|
||||
|
||||
/**
|
||||
* @author zengqiao
|
||||
* @date 20/5/20
|
||||
*/
|
||||
public class KafkaConstant {
|
||||
public static final String COORDINATOR_TOPIC_NAME = "__consumer_offsets";
|
||||
|
||||
public static final String BROKER_HOST_NAME_SUFFIX = ".diditaxi.com";
|
||||
|
||||
public static final String CLIENT_VERSION_CODE_UNKNOWN = "-1";
|
||||
|
||||
public static final String CLIENT_VERSION_NAME_UNKNOWN = "unknown";
|
||||
|
||||
public static final String RETENTION_MS_KEY = "retention.ms";
|
||||
}
|
||||
@@ -1,42 +0,0 @@
|
||||
package com.xiaojukeji.kafka.manager.common.constant;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author zengqiao
|
||||
* @date 20/4/22
|
||||
*/
|
||||
public class KafkaMetricsCollections {
|
||||
public static final int COMMON_DETAIL_METRICS = 0;
|
||||
|
||||
/**
|
||||
* Broker流量详情
|
||||
*/
|
||||
public static final int BROKER_TO_DB_METRICS = 101; // Broker入DB的Metrics指标
|
||||
public static final int BROKER_OVERVIEW_PAGE_METRICS = 103; // Broker状态概览的指标
|
||||
public static final int BROKER_ANALYSIS_METRICS = 105; // Broker分析的指标
|
||||
public static final int BROKER_TOPIC_ANALYSIS_METRICS = 106; // Broker分析的指标
|
||||
public static final int BROKER_BASIC_PAGE_METRICS = 107; // Broker基本信息页面的指标
|
||||
public static final int BROKER_STATUS_PAGE_METRICS = 108; // Broker状态
|
||||
public static final int BROKER_HEALTH_SCORE_METRICS = 109; // Broker健康分
|
||||
|
||||
/**
|
||||
* Topic流量详情
|
||||
*/
|
||||
public static final int TOPIC_FLOW_OVERVIEW = 201;
|
||||
public static final int TOPIC_METRICS_TO_DB = 202;
|
||||
public static final int TOPIC_REQUEST_TIME_METRICS_TO_DB = 203;
|
||||
public static final int TOPIC_BASIC_PAGE_METRICS = 204;
|
||||
public static final int TOPIC_REQUEST_TIME_DETAIL_PAGE_METRICS = 205;
|
||||
public static final int TOPIC_THROTTLED_METRICS_TO_DB = 206;
|
||||
|
||||
|
||||
/**
|
||||
* App+Topic流量详情
|
||||
*/
|
||||
public static final int APP_TOPIC_METRICS_TO_DB = 300;
|
||||
|
||||
/**
|
||||
* Broker信息
|
||||
*/
|
||||
public static final int BROKER_VERSION = 400;
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
package com.xiaojukeji.kafka.manager.common.constant;
|
||||
|
||||
/**
|
||||
* @author zengqiao
|
||||
* @date 20/8/10
|
||||
*/
|
||||
public class LogConstant {
|
||||
public static final String COLLECTOR_METRICS_LOGGER = "COLLECTOR_METRICS_LOGGER";
|
||||
|
||||
public static final String API_METRICS_LOGGER = "API_METRICS_LOGGER";
|
||||
|
||||
public static final String SCHEDULED_TASK_LOGGER = "SCHEDULED_TASK_LOGGER";
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
package com.xiaojukeji.kafka.manager.common.constant;
|
||||
|
||||
/**
|
||||
* 登录常量
|
||||
* @author zengqiao
|
||||
* @date 20/5/8
|
||||
*/
|
||||
public class LoginConstant {
|
||||
public static final String SESSION_USERNAME_KEY = "username";
|
||||
|
||||
public static final String COOKIE_CHINESE_USERNAME_KEY = "chineseName";
|
||||
|
||||
public static final Integer COOKIE_OR_SESSION_MAX_AGE_UNIT_MS = 24 * 60 * 60 * 1000;
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
package com.xiaojukeji.kafka.manager.common.constant;
|
||||
|
||||
/**
|
||||
* @author zengqiao
|
||||
* @date 20/7/28
|
||||
*/
|
||||
public class SystemCodeConstant {
|
||||
public static final String LOG_X = "LogX";
|
||||
|
||||
public static final String LEO = "leo";
|
||||
|
||||
public static final String DATA_DREAM = "datadream";
|
||||
|
||||
public static final String KAFKA_MANAGER = "kafka-manager";
|
||||
|
||||
public static final String CHORUS = "chorus"; // 治理平台-服务治理
|
||||
}
|
||||
@@ -1,49 +0,0 @@
|
||||
package com.xiaojukeji.kafka.manager.common.constant;
|
||||
|
||||
import java.util.Properties;
|
||||
|
||||
/**
|
||||
* @author zengqiao
|
||||
* @date 20/7/28
|
||||
*/
|
||||
public class TopicCreationConstant {
|
||||
/**
|
||||
* LogX创建Topic配置KEY
|
||||
*/
|
||||
public static final String LOG_X_CREATE_TOPIC_CONFIG_KEY_NAME = "LOG_X_CREATE_TOPIC_CONFIG";
|
||||
|
||||
/**
|
||||
* 治理平台创建Topic配置KEY
|
||||
*/
|
||||
public static final String CHORUS_CREATE_TOPIC_CONFIG_KEY_NAME = "CHORUS_CREATE_TOPIC_CONFIG";
|
||||
|
||||
/**
|
||||
* 内部创建Topic配置KEY
|
||||
*/
|
||||
public static final String INNER_CREATE_TOPIC_CONFIG_KEY = "INNER_CREATE_TOPIC_CONFIG_KEY";
|
||||
|
||||
public static final Integer DEFAULT_REPLICA = 3;
|
||||
|
||||
public static final Integer DEFAULT_PARTITION_NUM = 1;
|
||||
|
||||
public static final Integer DEFAULT_RETENTION_TIME_UNIT_HOUR = 24;
|
||||
|
||||
public static final String TOPIC_RETENTION_TIME_KEY_NAME = "retention.ms";
|
||||
|
||||
public static Properties createNewProperties(Long retentionTime) {
|
||||
Properties properties = new Properties();
|
||||
properties.put(TOPIC_RETENTION_TIME_KEY_NAME, String.valueOf(retentionTime));
|
||||
return properties;
|
||||
}
|
||||
|
||||
public static final Long AUTO_EXEC_MAX_BYTES_IN_UNIT_B = 30 * 1024 * 1024L;
|
||||
|
||||
/**
|
||||
* Topic 前缀
|
||||
*/
|
||||
public static final String TOPIC_NAME_PREFIX_US = "us01_";
|
||||
|
||||
public static final String TOPIC_NAME_PREFIX_RU = "ru01_";
|
||||
|
||||
public static final Integer TOPIC_NAME_MAX_LENGTH = 255;
|
||||
}
|
||||
@@ -1,19 +0,0 @@
|
||||
package com.xiaojukeji.kafka.manager.common.constant;
|
||||
|
||||
/**
|
||||
* 采样相关配置
|
||||
* @author zengqiao
|
||||
* @date 20/5/8
|
||||
*/
|
||||
public class TopicSampleConstant {
|
||||
/**
|
||||
* TOPIC_SAMPLE_MAX_MSG_NUM: 最大采样条数
|
||||
* TOPIC_SAMPLE_MAX_TIMEOUT_MS:采样超时时间
|
||||
* TOPIC_SAMPLE_POLL_TIME_OUT_MS:采样单次poll超时时间
|
||||
* TOPIC_SAMPLE_MAX_DATA_LENGTH:截断情况下, 采样的数据最大长度
|
||||
*/
|
||||
public static final Integer MAX_MSG_NUM = 100;
|
||||
public static final Integer MAX_TIMEOUT_UNIT_MS = 10000;
|
||||
public static final Integer POLL_TIME_OUT_UNIT_MS = 2000;
|
||||
public static final Integer MAX_DATA_LENGTH_UNIT_BYTE = 2048;
|
||||
}
|
||||
@@ -1,47 +0,0 @@
|
||||
package com.xiaojukeji.kafka.manager.common.entity;
|
||||
|
||||
import kafka.admin.AdminClient;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
/**
|
||||
* @author zengqiao
|
||||
* @date 19/5/14
|
||||
*/
|
||||
public class ConsumerMetadata {
|
||||
private Set<String> consumerGroupSet = new HashSet<>();
|
||||
|
||||
private Map<String, Set<String>> topicNameConsumerGroupMap = new HashMap<>();
|
||||
|
||||
private Map<String, AdminClient.ConsumerGroupSummary> consumerGroupSummaryMap = new HashMap<>();
|
||||
|
||||
private Map<String, List<String>> consumerGroupAppMap = new ConcurrentHashMap<>();
|
||||
|
||||
|
||||
public ConsumerMetadata(Set<String> consumerGroupSet,
|
||||
Map<String, Set<String>> topicNameConsumerGroupMap,
|
||||
Map<String, AdminClient.ConsumerGroupSummary> consumerGroupSummaryMap,
|
||||
Map<String, List<String>> consumerGroupAppMap) {
|
||||
this.consumerGroupSet = consumerGroupSet;
|
||||
this.topicNameConsumerGroupMap = topicNameConsumerGroupMap;
|
||||
this.consumerGroupSummaryMap = consumerGroupSummaryMap;
|
||||
this.consumerGroupAppMap = consumerGroupAppMap;
|
||||
}
|
||||
|
||||
public Set<String> getConsumerGroupSet() {
|
||||
return consumerGroupSet;
|
||||
}
|
||||
|
||||
public Map<String, Set<String>> getTopicNameConsumerGroupMap() {
|
||||
return topicNameConsumerGroupMap;
|
||||
}
|
||||
|
||||
public Map<String, AdminClient.ConsumerGroupSummary> getConsumerGroupSummaryMap() {
|
||||
return consumerGroupSummaryMap;
|
||||
}
|
||||
|
||||
public Map<String, List<String>> getConsumerGroupAppMap() {
|
||||
return consumerGroupAppMap;
|
||||
}
|
||||
}
|
||||
@@ -1,83 +0,0 @@
|
||||
package com.xiaojukeji.kafka.manager.common.entity;
|
||||
|
||||
/**
|
||||
* @author zengqiao
|
||||
* @date 20/7/27
|
||||
*/
|
||||
public class DeprecatedResponseResult<T> {
|
||||
public static final String SUCCESS_STATUS = "success";
|
||||
|
||||
public static final String FAILED_STATUS = "failure";
|
||||
|
||||
public static final String SUCCESS_MESSAGE = "process succeeded!";
|
||||
|
||||
public static final String FAILED_MESSAGE = "process failed!";
|
||||
|
||||
private String status;
|
||||
|
||||
private String message;
|
||||
|
||||
private T data;
|
||||
|
||||
public static <T> DeprecatedResponseResult<T> success(T data) {
|
||||
DeprecatedResponseResult<T> responseCommonResult = new DeprecatedResponseResult<T>();
|
||||
responseCommonResult.setMessage(SUCCESS_MESSAGE);
|
||||
responseCommonResult.setStatus(SUCCESS_STATUS);
|
||||
responseCommonResult.setData(data);
|
||||
return responseCommonResult;
|
||||
}
|
||||
|
||||
public static <T> DeprecatedResponseResult<T> success() {
|
||||
DeprecatedResponseResult<T> responseCommonResult = new DeprecatedResponseResult<T>();
|
||||
responseCommonResult.setStatus(SUCCESS_STATUS);
|
||||
responseCommonResult.setMessage(SUCCESS_MESSAGE);
|
||||
return responseCommonResult;
|
||||
}
|
||||
|
||||
public static <T> DeprecatedResponseResult<T> failure() {
|
||||
DeprecatedResponseResult<T> responseCommonResult = new DeprecatedResponseResult<T>();
|
||||
responseCommonResult.setMessage(FAILED_MESSAGE);
|
||||
responseCommonResult.setStatus(FAILED_STATUS);
|
||||
return responseCommonResult;
|
||||
}
|
||||
|
||||
public static <T> DeprecatedResponseResult<T> failure(String message) {
|
||||
DeprecatedResponseResult<T> responseCommonResult = new DeprecatedResponseResult<T>();
|
||||
responseCommonResult.setMessage(message);
|
||||
responseCommonResult.setStatus(FAILED_STATUS);
|
||||
return responseCommonResult;
|
||||
}
|
||||
|
||||
public String getStatus() {
|
||||
return status;
|
||||
}
|
||||
|
||||
public void setStatus(String status) {
|
||||
this.status = status;
|
||||
}
|
||||
|
||||
public String getMessage() {
|
||||
return message;
|
||||
}
|
||||
|
||||
public void setMessage(String message) {
|
||||
this.message = message;
|
||||
}
|
||||
|
||||
public T getData() {
|
||||
return data;
|
||||
}
|
||||
|
||||
public void setData(T data) {
|
||||
this.data = data;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "DeprecatedResponseResult{" +
|
||||
"status='" + status + '\'' +
|
||||
", message='" + message + '\'' +
|
||||
", data=" + data +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
@@ -1,82 +0,0 @@
|
||||
package com.xiaojukeji.kafka.manager.common.entity;
|
||||
|
||||
import com.xiaojukeji.kafka.manager.common.utils.ValidateUtils;
|
||||
|
||||
/**
|
||||
* @author zengqiao
|
||||
* @date 20/6/15
|
||||
*/
|
||||
public class KafkaVersion {
|
||||
private static final String DIDI_VERSION_EXTEND = "d";
|
||||
|
||||
public static final Long VERSION_0_10_3 = 10030000L; // 0.10.2+
|
||||
public static final Long VERSION_MAX = Long.MAX_VALUE;
|
||||
|
||||
private volatile String version = null;
|
||||
|
||||
private volatile long versionNum = Long.MAX_VALUE;
|
||||
|
||||
public boolean initialized() {
|
||||
if (ValidateUtils.isNull(version)) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public String getVersion() {
|
||||
return version;
|
||||
}
|
||||
|
||||
public long getVersionNum() {
|
||||
return versionNum;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "KafkaVersion{" +
|
||||
"version='" + version + '\'' +
|
||||
", versionNum=" + versionNum +
|
||||
'}';
|
||||
}
|
||||
|
||||
public long init(String version) {
|
||||
version = version.toLowerCase();
|
||||
String[] splitElems = version.split("-");
|
||||
int splitElemLength = splitElems.length;
|
||||
if (splitElemLength <= 0) {
|
||||
versionNum = Long.MAX_VALUE;
|
||||
return versionNum;
|
||||
}
|
||||
|
||||
try {
|
||||
// kafka的version
|
||||
String[] kafkaVersion = splitElems[0].split("\\.");
|
||||
int kafkaVersionLength = kafkaVersion.length;
|
||||
|
||||
versionNum = kafkaVersionLength > 0? Integer.valueOf(kafkaVersion[0]): 0;
|
||||
versionNum = versionNum * 100 + (kafkaVersionLength > 1? Integer.valueOf(kafkaVersion[1]): 0);
|
||||
versionNum = versionNum * 100 + (kafkaVersionLength > 2? Integer.valueOf(kafkaVersion[2]): 0);
|
||||
} catch (Exception e) {
|
||||
// Kafka版本信息获取不到时, 直接返回空
|
||||
this.versionNum = Long.MAX_VALUE;
|
||||
return versionNum;
|
||||
}
|
||||
|
||||
// 成功获取版本信息
|
||||
versionNum = versionNum * 10000;
|
||||
this.version = version;
|
||||
|
||||
// 补充扩展信息
|
||||
try {
|
||||
for (int idx = 0; idx < splitElemLength; ++idx) {
|
||||
if (splitElems[idx].equals(DIDI_VERSION_EXTEND) && idx < splitElemLength - 1) {
|
||||
versionNum = versionNum + (Integer.valueOf(splitElems[idx + 1]));
|
||||
return versionNum;
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
// 扩展版本信息获取不到时, 忽略
|
||||
}
|
||||
return versionNum;
|
||||
}
|
||||
}
|
||||
@@ -1,105 +0,0 @@
|
||||
package com.xiaojukeji.kafka.manager.common.entity;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @author huangyiminghappy@163.com
|
||||
* @date 2019-07-08
|
||||
*/
|
||||
public class Result<T> implements Serializable {
|
||||
private static final long serialVersionUID = -2772975319944108658L;
|
||||
|
||||
private T data;
|
||||
private String message;
|
||||
private String tips;
|
||||
private int code;
|
||||
|
||||
public Result(T data) {
|
||||
this.data = data;
|
||||
this.code = ResultStatus.SUCCESS.getCode();
|
||||
this.message = ResultStatus.SUCCESS.getMessage();
|
||||
}
|
||||
|
||||
public Result() {
|
||||
this(null);
|
||||
}
|
||||
|
||||
public Result(Integer code, String message) {
|
||||
this.message = message;
|
||||
this.code = code;
|
||||
}
|
||||
|
||||
public Result(Integer code, T data, String message) {
|
||||
this.data = data;
|
||||
this.message = message;
|
||||
this.code = code;
|
||||
}
|
||||
|
||||
public T getData()
|
||||
{
|
||||
return (T)this.data;
|
||||
}
|
||||
|
||||
public void setData(T data)
|
||||
{
|
||||
this.data = data;
|
||||
}
|
||||
|
||||
public String getMessage()
|
||||
{
|
||||
return this.message;
|
||||
}
|
||||
|
||||
public void setMessage(String message)
|
||||
{
|
||||
this.message = message;
|
||||
}
|
||||
|
||||
public String getTips() {
|
||||
return tips;
|
||||
}
|
||||
|
||||
public void setTips(String tips) {
|
||||
this.tips = tips;
|
||||
}
|
||||
|
||||
public int getCode()
|
||||
{
|
||||
return this.code;
|
||||
}
|
||||
|
||||
public void setCode(int code)
|
||||
{
|
||||
this.code = code;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString()
|
||||
{
|
||||
return JSON.toJSONString(this);
|
||||
}
|
||||
|
||||
public static Result buildSuc() {
|
||||
Result result = new Result();
|
||||
result.setCode(ResultStatus.SUCCESS.getCode());
|
||||
result.setMessage(ResultStatus.SUCCESS.getMessage());
|
||||
return result;
|
||||
}
|
||||
|
||||
public static Result buildFrom(ResultStatus resultStatus) {
|
||||
Result result = new Result();
|
||||
result.setCode(resultStatus.getCode());
|
||||
result.setMessage(resultStatus.getMessage());
|
||||
return result;
|
||||
}
|
||||
|
||||
public static Result buildFrom(ResultStatus resultStatus, Object data) {
|
||||
Result result = new Result();
|
||||
result.setCode(resultStatus.getCode());
|
||||
result.setMessage(resultStatus.getMessage());
|
||||
result.setData(data);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
@@ -1,154 +0,0 @@
|
||||
package com.xiaojukeji.kafka.manager.common.entity;
|
||||
|
||||
import com.xiaojukeji.kafka.manager.common.constant.Constant;
|
||||
|
||||
/**
|
||||
* 返回状态
|
||||
* @author zengqiao
|
||||
* @date 20/4/16
|
||||
*/
|
||||
public enum ResultStatus {
|
||||
SUCCESS(Constant.SUCCESS, "success"),
|
||||
LOGIN_FAILED(1, "login failed, please check username and password"),
|
||||
|
||||
|
||||
/**
|
||||
* 内部依赖错误, [1000, 1200)
|
||||
* ------------------------------------------------------------------------------------------
|
||||
*/
|
||||
MYSQL_ERROR(1000, "operate database failed"),
|
||||
|
||||
CONNECT_ZOOKEEPER_FAILED(1000, "connect zookeeper failed"),
|
||||
READ_ZOOKEEPER_FAILED(1000, "read zookeeper failed"),
|
||||
READ_JMX_FAILED(1000, "read jmx failed"),
|
||||
|
||||
|
||||
// 内部依赖错误 —— Kafka特定错误, [1000, 1100)
|
||||
BROKER_NUM_NOT_ENOUGH(1000, "broker not enough"),
|
||||
CONTROLLER_NOT_ALIVE(1000, "controller not alive"),
|
||||
CLUSTER_METADATA_ERROR(1000, "cluster metadata error"),
|
||||
TOPIC_CONFIG_ERROR(1000, "topic config error"),
|
||||
|
||||
|
||||
/**
|
||||
* 外部依赖错误, [1200, 1400)
|
||||
* ------------------------------------------------------------------------------------------
|
||||
*/
|
||||
CALL_CLUSTER_TASK_AGENT_FAILED(1000, " call cluster task agent failed"),
|
||||
CALL_MONITOR_SYSTEM_ERROR(1000, " call monitor-system failed"),
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 外部用户操作错误, [1400, 1600)
|
||||
* ------------------------------------------------------------------------------------------
|
||||
*/
|
||||
PARAM_ILLEGAL(1400, "param illegal"),
|
||||
OPERATION_FAILED(1401, "operation failed"),
|
||||
OPERATION_FORBIDDEN(1402, "operation forbidden"),
|
||||
API_CALL_EXCEED_LIMIT(1403, "api call exceed limit"),
|
||||
|
||||
// 资源不存在
|
||||
CLUSTER_NOT_EXIST(10000, "cluster not exist"),
|
||||
BROKER_NOT_EXIST(10000, "broker not exist"),
|
||||
TOPIC_NOT_EXIST(10000, "topic not exist"),
|
||||
PARTITION_NOT_EXIST(10000, "partition not exist"),
|
||||
|
||||
ACCOUNT_NOT_EXIST(10000, "account not exist"),
|
||||
APP_NOT_EXIST(1000, "app not exist"),
|
||||
ORDER_NOT_EXIST(1000, "order not exist"),
|
||||
CONFIG_NOT_EXIST(1000, "config not exist"),
|
||||
IDC_NOT_EXIST(1000, "idc not exist"),
|
||||
TASK_NOT_EXIST(1110, "task not exist"),
|
||||
|
||||
AUTHORITY_NOT_EXIST(1000, "authority not exist"),
|
||||
|
||||
MONITOR_NOT_EXIST(1110, "monitor not exist"),
|
||||
|
||||
QUOTA_NOT_EXIST(1000, "quota not exist, please check clusterId, topicName and appId"),
|
||||
|
||||
// 资源不存在, 已存在, 已被使用
|
||||
RESOURCE_NOT_EXIST(1200, "资源不存在"),
|
||||
RESOURCE_ALREADY_EXISTED(1200, "资源已经存在"),
|
||||
RESOURCE_NAME_DUPLICATED(1200, "资源名称重复"),
|
||||
RESOURCE_ALREADY_USED(1000, "资源早已被使用"),
|
||||
|
||||
|
||||
/**
|
||||
* 资源参数错误
|
||||
*/
|
||||
CG_LOCATION_ILLEGAL(10000, "consumer group location illegal"),
|
||||
ORDER_ALREADY_HANDLED(1000, "order already handled"),
|
||||
|
||||
APP_ID_OR_PASSWORD_ILLEGAL(1000, "app or password illegal"),
|
||||
SYSTEM_CODE_ILLEGAL(1000, "system code illegal"),
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////
|
||||
|
||||
USER_WITHOUT_AUTHORITY(1000, "user without authority"),
|
||||
|
||||
|
||||
|
||||
JSON_PARSER_ERROR(1000, "json parser error"),
|
||||
|
||||
|
||||
TOPIC_OPERATION_PARAM_NULL_POINTER(2, "参数错误"),
|
||||
TOPIC_OPERATION_PARTITION_NUM_ILLEGAL(3, "分区数错误"),
|
||||
TOPIC_OPERATION_BROKER_NUM_NOT_ENOUGH(4, "Broker数不足错误"),
|
||||
TOPIC_OPERATION_TOPIC_NAME_ILLEGAL(5, "Topic名称非法"),
|
||||
TOPIC_OPERATION_TOPIC_EXISTED(6, "Topic已存在"),
|
||||
TOPIC_OPERATION_UNKNOWN_TOPIC_PARTITION(7, "Topic未知"),
|
||||
TOPIC_OPERATION_TOPIC_CONFIG_ILLEGAL(8, "Topic配置错误"),
|
||||
TOPIC_OPERATION_TOPIC_IN_DELETING(9, "Topic正在删除"),
|
||||
TOPIC_OPERATION_UNKNOWN_ERROR(10, "未知错误"),
|
||||
TOPIC_EXIST_CONNECT_CANNOT_DELETE(10, "topic exist connect cannot delete"),
|
||||
EXIST_TOPIC_CANNOT_DELETE(10, "exist topic cannot delete"),
|
||||
|
||||
|
||||
/**
|
||||
* 工单
|
||||
*/
|
||||
CHANGE_ZOOKEEPER_FORBIDEN(100, "change zookeeper forbiden"),
|
||||
// APP_EXIST_TOPIC_AUTHORITY_CANNOT_DELETE(1000, "app exist topic authority cannot delete"),
|
||||
|
||||
UPLOAD_FILE_FAIL(1000, "upload file fail"),
|
||||
FILE_TYPE_NOT_SUPPORT(1000, "File type not support"),
|
||||
DOWNLOAD_FILE_FAIL(1000, "download file fail"),
|
||||
|
||||
|
||||
TOPIC_ALREADY_EXIST(17400, "topic already existed"),
|
||||
CONSUMER_GROUP_NOT_EXIST(17411, "consumerGroup not exist"),
|
||||
;
|
||||
|
||||
private int code;
|
||||
private String message;
|
||||
|
||||
ResultStatus(int code, String message) {
|
||||
this.code = code;
|
||||
this.message = message;
|
||||
}
|
||||
|
||||
public int getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
public void setCode(int code) {
|
||||
this.code = code;
|
||||
}
|
||||
|
||||
public String getMessage() {
|
||||
return message;
|
||||
}
|
||||
|
||||
public void setMessage(String message) {
|
||||
this.message = message;
|
||||
}
|
||||
}
|
||||
@@ -1,83 +0,0 @@
|
||||
package com.xiaojukeji.kafka.manager.common.entity;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
|
||||
/**
|
||||
* @author zengqiao
|
||||
* @date 20/4/2
|
||||
*/
|
||||
public class TopicOperationResult {
|
||||
@ApiModelProperty(value = "集群ID")
|
||||
private Long clusterId;
|
||||
|
||||
@ApiModelProperty(value = "Topic名称")
|
||||
private String topicName;
|
||||
|
||||
@ApiModelProperty(value = "状态码, 0:成功, 其他失败")
|
||||
private Integer code;
|
||||
|
||||
@ApiModelProperty(value = "信息")
|
||||
private String message;
|
||||
|
||||
public Long getClusterId() {
|
||||
return clusterId;
|
||||
}
|
||||
|
||||
public void setClusterId(Long clusterId) {
|
||||
this.clusterId = clusterId;
|
||||
}
|
||||
|
||||
public String getTopicName() {
|
||||
return topicName;
|
||||
}
|
||||
|
||||
public void setTopicName(String topicName) {
|
||||
this.topicName = topicName;
|
||||
}
|
||||
|
||||
public Integer getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
public void setCode(Integer code) {
|
||||
this.code = code;
|
||||
}
|
||||
|
||||
public String getMessage() {
|
||||
return message;
|
||||
}
|
||||
|
||||
public void setMessage(String message) {
|
||||
this.message = message;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "TopicOperationResult{" +
|
||||
"clusterId=" + clusterId +
|
||||
", topicName='" + topicName + '\'' +
|
||||
", code=" + code +
|
||||
", message='" + message + '\'' +
|
||||
'}';
|
||||
}
|
||||
|
||||
public static TopicOperationResult buildFrom(Long clusterId, String topicName, Result rs) {
|
||||
return buildFrom(clusterId, topicName, rs.getCode(), rs.getMessage());
|
||||
}
|
||||
|
||||
public static TopicOperationResult buildFrom(Long clusterId, String topicName, ResultStatus rs) {
|
||||
return buildFrom(clusterId, topicName, rs.getCode(), rs.getMessage());
|
||||
}
|
||||
|
||||
private static TopicOperationResult buildFrom(Long clusterId,
|
||||
String topicName,
|
||||
Integer code,
|
||||
String message) {
|
||||
TopicOperationResult result = new TopicOperationResult();
|
||||
result.setClusterId(clusterId);
|
||||
result.setTopicName(topicName);
|
||||
result.setCode(code);
|
||||
result.setMessage(message);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
@@ -1,91 +0,0 @@
|
||||
package com.xiaojukeji.kafka.manager.common.entity.ao;
|
||||
|
||||
/**
|
||||
* AppTopic信息
|
||||
* @author zengqiao
|
||||
* @date 20/5/11
|
||||
*/
|
||||
public class AppTopicDTO {
|
||||
private Long logicalClusterId;
|
||||
|
||||
private String logicalClusterName;
|
||||
|
||||
private Long physicalClusterId;
|
||||
|
||||
private String topicName;
|
||||
|
||||
private Integer access;
|
||||
|
||||
private String operator;
|
||||
|
||||
private Long gmtCreate;
|
||||
|
||||
public Long getLogicalClusterId() {
|
||||
return logicalClusterId;
|
||||
}
|
||||
|
||||
public void setLogicalClusterId(Long logicalClusterId) {
|
||||
this.logicalClusterId = logicalClusterId;
|
||||
}
|
||||
|
||||
public String getLogicalClusterName() {
|
||||
return logicalClusterName;
|
||||
}
|
||||
|
||||
public void setLogicalClusterName(String logicalClusterName) {
|
||||
this.logicalClusterName = logicalClusterName;
|
||||
}
|
||||
|
||||
public Long getPhysicalClusterId() {
|
||||
return physicalClusterId;
|
||||
}
|
||||
|
||||
public void setPhysicalClusterId(Long physicalClusterId) {
|
||||
this.physicalClusterId = physicalClusterId;
|
||||
}
|
||||
|
||||
public String getTopicName() {
|
||||
return topicName;
|
||||
}
|
||||
|
||||
public void setTopicName(String topicName) {
|
||||
this.topicName = topicName;
|
||||
}
|
||||
|
||||
public Integer getAccess() {
|
||||
return access;
|
||||
}
|
||||
|
||||
public void setAccess(Integer access) {
|
||||
this.access = access;
|
||||
}
|
||||
|
||||
public String getOperator() {
|
||||
return operator;
|
||||
}
|
||||
|
||||
public void setOperator(String operator) {
|
||||
this.operator = operator;
|
||||
}
|
||||
|
||||
public Long getGmtCreate() {
|
||||
return gmtCreate;
|
||||
}
|
||||
|
||||
public void setGmtCreate(Long gmtCreate) {
|
||||
this.gmtCreate = gmtCreate;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "AppTopicDTO{" +
|
||||
"logicalClusterId=" + logicalClusterId +
|
||||
", logicalClusterName='" + logicalClusterName + '\'' +
|
||||
", physicalClusterId=" + physicalClusterId +
|
||||
", topicName='" + topicName + '\'' +
|
||||
", access=" + access +
|
||||
", operator='" + operator + '\'' +
|
||||
", gmtCreate=" + gmtCreate +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
@@ -1,91 +0,0 @@
|
||||
package com.xiaojukeji.kafka.manager.common.entity.ao;
|
||||
|
||||
/**
|
||||
* Broker基本信息
|
||||
* @author zengqiao_cn@163.com
|
||||
* @date 19/4/8
|
||||
*/
|
||||
public class BrokerBasicDTO {
|
||||
private String host;
|
||||
|
||||
private Integer port;
|
||||
|
||||
private Integer jmxPort;
|
||||
|
||||
private Integer topicNum;
|
||||
|
||||
private Integer partitionCount;
|
||||
|
||||
private Long startTime;
|
||||
|
||||
private Integer leaderCount;
|
||||
|
||||
public String getHost() {
|
||||
return host;
|
||||
}
|
||||
|
||||
public void setHost(String host) {
|
||||
this.host = host;
|
||||
}
|
||||
|
||||
public Integer getPort() {
|
||||
return port;
|
||||
}
|
||||
|
||||
public void setPort(Integer port) {
|
||||
this.port = port;
|
||||
}
|
||||
|
||||
public Integer getJmxPort() {
|
||||
return jmxPort;
|
||||
}
|
||||
|
||||
public void setJmxPort(Integer jmxPort) {
|
||||
this.jmxPort = jmxPort;
|
||||
}
|
||||
|
||||
public Integer getTopicNum() {
|
||||
return topicNum;
|
||||
}
|
||||
|
||||
public void setTopicNum(Integer topicNum) {
|
||||
this.topicNum = topicNum;
|
||||
}
|
||||
|
||||
public Integer getPartitionCount() {
|
||||
return partitionCount;
|
||||
}
|
||||
|
||||
public void setPartitionCount(Integer partitionCount) {
|
||||
this.partitionCount = partitionCount;
|
||||
}
|
||||
|
||||
public Long getStartTime() {
|
||||
return startTime;
|
||||
}
|
||||
|
||||
public void setStartTime(Long startTime) {
|
||||
this.startTime = startTime;
|
||||
}
|
||||
|
||||
public Integer getLeaderCount() {
|
||||
return leaderCount;
|
||||
}
|
||||
|
||||
public void setLeaderCount(Integer leaderCount) {
|
||||
this.leaderCount = leaderCount;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "BrokerBasicInfoDTO{" +
|
||||
"host='" + host + '\'' +
|
||||
", port=" + port +
|
||||
", jmxPort=" + jmxPort +
|
||||
", topicNum=" + topicNum +
|
||||
", partitionCount=" + partitionCount +
|
||||
", startTime=" + startTime +
|
||||
", leaderCount=" + leaderCount +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
@@ -1,189 +0,0 @@
|
||||
package com.xiaojukeji.kafka.manager.common.entity.ao;
|
||||
|
||||
import com.xiaojukeji.kafka.manager.common.entity.metrics.BrokerMetrics;
|
||||
import com.xiaojukeji.kafka.manager.common.utils.ValidateUtils;
|
||||
import com.xiaojukeji.kafka.manager.common.zookeeper.znode.brokers.BrokerMetadata;
|
||||
|
||||
/**
|
||||
* @author zengqiao_cn@163.com
|
||||
* @date 19/4/21
|
||||
*/
|
||||
public class BrokerOverviewDTO {
|
||||
private Integer brokerId;
|
||||
|
||||
private String host;
|
||||
|
||||
private Integer port;
|
||||
|
||||
private Integer jmxPort;
|
||||
|
||||
private Long startTime;
|
||||
|
||||
private Object byteIn;
|
||||
|
||||
private Object byteOut;
|
||||
|
||||
private Integer partitionCount;
|
||||
|
||||
private Integer underReplicatedPartitions;
|
||||
|
||||
private Boolean underReplicated;
|
||||
|
||||
private Integer status;
|
||||
|
||||
private Integer peakFlowStatus;
|
||||
|
||||
private String kafkaVersion;
|
||||
|
||||
private Integer leaderCount;
|
||||
|
||||
public Integer getBrokerId() {
|
||||
return brokerId;
|
||||
}
|
||||
|
||||
public void setBrokerId(Integer brokerId) {
|
||||
this.brokerId = brokerId;
|
||||
}
|
||||
|
||||
public String getHost() {
|
||||
return host;
|
||||
}
|
||||
|
||||
public void setHost(String host) {
|
||||
this.host = host;
|
||||
}
|
||||
|
||||
public Integer getPort() {
|
||||
return port;
|
||||
}
|
||||
|
||||
public void setPort(Integer port) {
|
||||
this.port = port;
|
||||
}
|
||||
|
||||
public Integer getJmxPort() {
|
||||
return jmxPort;
|
||||
}
|
||||
|
||||
public void setJmxPort(Integer jmxPort) {
|
||||
this.jmxPort = jmxPort;
|
||||
}
|
||||
|
||||
public Long getStartTime() {
|
||||
return startTime;
|
||||
}
|
||||
|
||||
public void setStartTime(Long startTime) {
|
||||
this.startTime = startTime;
|
||||
}
|
||||
|
||||
public Object getByteIn() {
|
||||
return byteIn;
|
||||
}
|
||||
|
||||
public void setByteIn(Object byteIn) {
|
||||
this.byteIn = byteIn;
|
||||
}
|
||||
|
||||
public Object getByteOut() {
|
||||
return byteOut;
|
||||
}
|
||||
|
||||
public void setByteOut(Object byteOut) {
|
||||
this.byteOut = byteOut;
|
||||
}
|
||||
|
||||
public Integer getPartitionCount() {
|
||||
return partitionCount;
|
||||
}
|
||||
|
||||
public void setPartitionCount(Integer partitionCount) {
|
||||
this.partitionCount = partitionCount;
|
||||
}
|
||||
|
||||
public Integer getUnderReplicatedPartitions() {
|
||||
return underReplicatedPartitions;
|
||||
}
|
||||
|
||||
public void setUnderReplicatedPartitions(Integer underReplicatedPartitions) {
|
||||
this.underReplicatedPartitions = underReplicatedPartitions;
|
||||
}
|
||||
|
||||
public Boolean getUnderReplicated() {
|
||||
return underReplicated;
|
||||
}
|
||||
|
||||
public void setUnderReplicated(Boolean underReplicated) {
|
||||
this.underReplicated = underReplicated;
|
||||
}
|
||||
|
||||
public Integer getStatus() {
|
||||
return status;
|
||||
}
|
||||
|
||||
public void setStatus(Integer status) {
|
||||
this.status = status;
|
||||
}
|
||||
|
||||
public Integer getPeakFlowStatus() {
|
||||
return peakFlowStatus;
|
||||
}
|
||||
|
||||
public void setPeakFlowStatus(Integer peakFlowStatus) {
|
||||
this.peakFlowStatus = peakFlowStatus;
|
||||
}
|
||||
|
||||
public String getKafkaVersion() {
|
||||
return kafkaVersion;
|
||||
}
|
||||
|
||||
public void setKafkaVersion(String kafkaVersion) {
|
||||
this.kafkaVersion = kafkaVersion;
|
||||
}
|
||||
|
||||
public Integer getLeaderCount() {
|
||||
return leaderCount;
|
||||
}
|
||||
|
||||
public void setLeaderCount(Integer leaderCount) {
|
||||
this.leaderCount = leaderCount;
|
||||
}
|
||||
|
||||
public static BrokerOverviewDTO newInstance(BrokerMetadata brokerMetadata,
|
||||
BrokerMetrics brokerMetrics,
|
||||
String kafkaVersion) {
|
||||
BrokerOverviewDTO brokerOverviewDTO = new BrokerOverviewDTO();
|
||||
brokerOverviewDTO.setBrokerId(brokerMetadata.getBrokerId());
|
||||
brokerOverviewDTO.setHost(brokerMetadata.getHost());
|
||||
brokerOverviewDTO.setPort(brokerMetadata.getPort());
|
||||
brokerOverviewDTO.setJmxPort(brokerMetadata.getJmxPort());
|
||||
brokerOverviewDTO.setStartTime(brokerMetadata.getTimestamp());
|
||||
brokerOverviewDTO.setStatus(0);
|
||||
if (brokerMetrics == null) {
|
||||
return brokerOverviewDTO;
|
||||
}
|
||||
brokerOverviewDTO.setByteIn(
|
||||
brokerMetrics.getSpecifiedMetrics("BytesInPerSecOneMinuteRate")
|
||||
);
|
||||
brokerOverviewDTO.setByteOut(
|
||||
brokerMetrics.getSpecifiedMetrics("BytesOutPerSecOneMinuteRate")
|
||||
);
|
||||
brokerOverviewDTO.setPartitionCount(
|
||||
brokerMetrics.getSpecifiedMetrics("PartitionCountValue", Integer.class)
|
||||
);
|
||||
brokerOverviewDTO.setUnderReplicatedPartitions(
|
||||
brokerMetrics.getSpecifiedMetrics("UnderReplicatedPartitionsValue", Integer.class)
|
||||
);
|
||||
|
||||
if (!ValidateUtils.isNull(brokerOverviewDTO.getUnderReplicatedPartitions())) {
|
||||
brokerOverviewDTO.setUnderReplicated(brokerOverviewDTO.getUnderReplicatedPartitions() > 0);
|
||||
}
|
||||
brokerOverviewDTO.setLeaderCount(
|
||||
brokerMetrics.getSpecifiedMetrics("LeaderCountValue", Integer.class)
|
||||
);
|
||||
brokerOverviewDTO.setKafkaVersion(kafkaVersion);
|
||||
return brokerOverviewDTO;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -1,191 +0,0 @@
|
||||
package com.xiaojukeji.kafka.manager.common.entity.ao;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @author zengqiao
|
||||
* @date 20/4/23
|
||||
*/
|
||||
public class ClusterDetailDTO {
|
||||
private Long clusterId;
|
||||
|
||||
private String clusterName;
|
||||
|
||||
private String zookeeper;
|
||||
|
||||
private String bootstrapServers;
|
||||
|
||||
private String kafkaVersion;
|
||||
|
||||
private String idc;
|
||||
|
||||
private Integer mode;
|
||||
|
||||
private String securityProperties;
|
||||
|
||||
private Integer status;
|
||||
|
||||
private Date gmtCreate;
|
||||
|
||||
private Date gmtModify;
|
||||
|
||||
private Integer brokerNum;
|
||||
|
||||
private Integer topicNum;
|
||||
|
||||
private Integer consumerGroupNum;
|
||||
|
||||
private Integer controllerId;
|
||||
|
||||
private Integer regionNum;
|
||||
|
||||
public Long getClusterId() {
|
||||
return clusterId;
|
||||
}
|
||||
|
||||
public void setClusterId(Long clusterId) {
|
||||
this.clusterId = clusterId;
|
||||
}
|
||||
|
||||
public String getClusterName() {
|
||||
return clusterName;
|
||||
}
|
||||
|
||||
public void setClusterName(String clusterName) {
|
||||
this.clusterName = clusterName;
|
||||
}
|
||||
|
||||
public String getZookeeper() {
|
||||
return zookeeper;
|
||||
}
|
||||
|
||||
public void setZookeeper(String zookeeper) {
|
||||
this.zookeeper = zookeeper;
|
||||
}
|
||||
|
||||
public String getBootstrapServers() {
|
||||
return bootstrapServers;
|
||||
}
|
||||
|
||||
public void setBootstrapServers(String bootstrapServers) {
|
||||
this.bootstrapServers = bootstrapServers;
|
||||
}
|
||||
|
||||
public String getKafkaVersion() {
|
||||
return kafkaVersion;
|
||||
}
|
||||
|
||||
public void setKafkaVersion(String kafkaVersion) {
|
||||
this.kafkaVersion = kafkaVersion;
|
||||
}
|
||||
|
||||
public String getIdc() {
|
||||
return idc;
|
||||
}
|
||||
|
||||
public void setIdc(String idc) {
|
||||
this.idc = idc;
|
||||
}
|
||||
|
||||
public Integer getMode() {
|
||||
return mode;
|
||||
}
|
||||
|
||||
public void setMode(Integer mode) {
|
||||
this.mode = mode;
|
||||
}
|
||||
|
||||
public String getSecurityProperties() {
|
||||
return securityProperties;
|
||||
}
|
||||
|
||||
public void setSecurityProperties(String securityProperties) {
|
||||
this.securityProperties = securityProperties;
|
||||
}
|
||||
|
||||
public Integer getStatus() {
|
||||
return status;
|
||||
}
|
||||
|
||||
public void setStatus(Integer status) {
|
||||
this.status = status;
|
||||
}
|
||||
|
||||
public Date getGmtCreate() {
|
||||
return gmtCreate;
|
||||
}
|
||||
|
||||
public void setGmtCreate(Date gmtCreate) {
|
||||
this.gmtCreate = gmtCreate;
|
||||
}
|
||||
|
||||
public Date getGmtModify() {
|
||||
return gmtModify;
|
||||
}
|
||||
|
||||
public void setGmtModify(Date gmtModify) {
|
||||
this.gmtModify = gmtModify;
|
||||
}
|
||||
|
||||
public Integer getBrokerNum() {
|
||||
return brokerNum;
|
||||
}
|
||||
|
||||
public void setBrokerNum(Integer brokerNum) {
|
||||
this.brokerNum = brokerNum;
|
||||
}
|
||||
|
||||
public Integer getTopicNum() {
|
||||
return topicNum;
|
||||
}
|
||||
|
||||
public void setTopicNum(Integer topicNum) {
|
||||
this.topicNum = topicNum;
|
||||
}
|
||||
|
||||
public Integer getConsumerGroupNum() {
|
||||
return consumerGroupNum;
|
||||
}
|
||||
|
||||
public void setConsumerGroupNum(Integer consumerGroupNum) {
|
||||
this.consumerGroupNum = consumerGroupNum;
|
||||
}
|
||||
|
||||
public Integer getControllerId() {
|
||||
return controllerId;
|
||||
}
|
||||
|
||||
public void setControllerId(Integer controllerId) {
|
||||
this.controllerId = controllerId;
|
||||
}
|
||||
|
||||
public Integer getRegionNum() {
|
||||
return regionNum;
|
||||
}
|
||||
|
||||
public void setRegionNum(Integer regionNum) {
|
||||
this.regionNum = regionNum;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "ClusterDetailDTO{" +
|
||||
"clusterId=" + clusterId +
|
||||
", clusterName='" + clusterName + '\'' +
|
||||
", zookeeper='" + zookeeper + '\'' +
|
||||
", bootstrapServers='" + bootstrapServers + '\'' +
|
||||
", kafkaVersion='" + kafkaVersion + '\'' +
|
||||
", idc='" + idc + '\'' +
|
||||
", mode='" + mode + '\'' +
|
||||
", securityProperties='" + securityProperties + '\'' +
|
||||
", status=" + status +
|
||||
", gmtCreate=" + gmtCreate +
|
||||
", gmtModify=" + gmtModify +
|
||||
", brokerNum=" + brokerNum +
|
||||
", topicNum=" + topicNum +
|
||||
", consumerGroupNum=" + consumerGroupNum +
|
||||
", controllerId=" + controllerId +
|
||||
", regionNum=" + regionNum +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
@@ -1,24 +0,0 @@
|
||||
package com.xiaojukeji.kafka.manager.common.entity.ao;
|
||||
|
||||
/**
|
||||
* @author zhongyuankai
|
||||
* @date 2020/5/26
|
||||
*/
|
||||
public class PartitionAttributeDTO {
|
||||
private Long logSize;
|
||||
|
||||
public Long getLogSize() {
|
||||
return logSize;
|
||||
}
|
||||
|
||||
public void setLogSize(Long logSize) {
|
||||
this.logSize = logSize;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "PartitionAttributeDTO{" +
|
||||
"logSize=" + logSize +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
@@ -1,62 +0,0 @@
|
||||
package com.xiaojukeji.kafka.manager.common.entity.ao;
|
||||
|
||||
/**
|
||||
* Topic Offset
|
||||
* @author zengqiao
|
||||
* @date 19/6/2
|
||||
*/
|
||||
public class PartitionOffsetDTO {
|
||||
private Integer partitionId;
|
||||
|
||||
private Long offset;
|
||||
|
||||
private Long timestamp;
|
||||
|
||||
public PartitionOffsetDTO() {
|
||||
}
|
||||
|
||||
public PartitionOffsetDTO(Integer partitionId, Long offset) {
|
||||
this.partitionId = partitionId;
|
||||
this.offset = offset;
|
||||
}
|
||||
|
||||
public PartitionOffsetDTO(Integer partitionId, Long offset, Long timestamp) {
|
||||
this.partitionId = partitionId;
|
||||
this.offset = offset;
|
||||
this.timestamp = timestamp;
|
||||
}
|
||||
|
||||
public Integer getPartitionId() {
|
||||
return partitionId;
|
||||
}
|
||||
|
||||
public void setPartitionId(Integer partitionId) {
|
||||
this.partitionId = partitionId;
|
||||
}
|
||||
|
||||
public Long getOffset() {
|
||||
return offset;
|
||||
}
|
||||
|
||||
public void setOffset(Long offset) {
|
||||
this.offset = offset;
|
||||
}
|
||||
|
||||
public Long getTimestamp() {
|
||||
return timestamp;
|
||||
}
|
||||
|
||||
public void setTimestamp(Long timestamp) {
|
||||
this.timestamp = timestamp;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "TopicOffsetDTO{" +
|
||||
", partitionId=" + partitionId +
|
||||
", offset=" + offset +
|
||||
", timestamp=" + timestamp +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,103 +0,0 @@
|
||||
package com.xiaojukeji.kafka.manager.common.entity.ao;
|
||||
|
||||
import java.util.Properties;
|
||||
|
||||
/**
|
||||
* @author zengqiao
|
||||
* @date 20/6/10
|
||||
*/
|
||||
public class RdTopicBasic {
|
||||
private Long clusterId;
|
||||
|
||||
private String clusterName;
|
||||
|
||||
private String topicName;
|
||||
|
||||
private Long retentionTime;
|
||||
|
||||
private String appId;
|
||||
|
||||
private String appName;
|
||||
|
||||
private Properties properties;
|
||||
|
||||
private String description;
|
||||
|
||||
public Long getClusterId() {
|
||||
return clusterId;
|
||||
}
|
||||
|
||||
public void setClusterId(Long clusterId) {
|
||||
this.clusterId = clusterId;
|
||||
}
|
||||
|
||||
public String getClusterName() {
|
||||
return clusterName;
|
||||
}
|
||||
|
||||
public void setClusterName(String clusterName) {
|
||||
this.clusterName = clusterName;
|
||||
}
|
||||
|
||||
public String getTopicName() {
|
||||
return topicName;
|
||||
}
|
||||
|
||||
public void setTopicName(String topicName) {
|
||||
this.topicName = topicName;
|
||||
}
|
||||
|
||||
public Long getRetentionTime() {
|
||||
return retentionTime;
|
||||
}
|
||||
|
||||
public void setRetentionTime(Long retentionTime) {
|
||||
this.retentionTime = retentionTime;
|
||||
}
|
||||
|
||||
public String getAppId() {
|
||||
return appId;
|
||||
}
|
||||
|
||||
public void setAppId(String appId) {
|
||||
this.appId = appId;
|
||||
}
|
||||
|
||||
public String getAppName() {
|
||||
return appName;
|
||||
}
|
||||
|
||||
public void setAppName(String appName) {
|
||||
this.appName = appName;
|
||||
}
|
||||
|
||||
public Properties getProperties() {
|
||||
return properties;
|
||||
}
|
||||
|
||||
public void setProperties(Properties properties) {
|
||||
this.properties = properties;
|
||||
}
|
||||
|
||||
public String getDescription() {
|
||||
return description;
|
||||
}
|
||||
|
||||
public void setDescription(String description) {
|
||||
this.description = description;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "RdTopicBasic{" +
|
||||
"clusterId=" + clusterId +
|
||||
", clusterName='" + clusterName + '\'' +
|
||||
", topicName='" + topicName + '\'' +
|
||||
", retentionTime=" + retentionTime +
|
||||
", appId='" + appId + '\'' +
|
||||
", appName='" + appName + '\'' +
|
||||
", properties=" + properties +
|
||||
", description='" + description + '\'' +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
@@ -1,103 +0,0 @@
|
||||
package com.xiaojukeji.kafka.manager.common.entity.ao;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author zengqiao
|
||||
* @date 20/7/8
|
||||
*/
|
||||
public class TopicDiskLocation {
|
||||
private Long clusterId;
|
||||
|
||||
private String topicName;
|
||||
|
||||
private Integer brokerId;
|
||||
|
||||
private String diskName;
|
||||
|
||||
private List<Integer> leaderPartitions;
|
||||
|
||||
private List<Integer> followerPartitions;
|
||||
|
||||
private Boolean isUnderReplicated;
|
||||
|
||||
private List<Integer> underReplicatedPartitions;
|
||||
|
||||
public Long getClusterId() {
|
||||
return clusterId;
|
||||
}
|
||||
|
||||
public void setClusterId(Long clusterId) {
|
||||
this.clusterId = clusterId;
|
||||
}
|
||||
|
||||
public String getTopicName() {
|
||||
return topicName;
|
||||
}
|
||||
|
||||
public void setTopicName(String topicName) {
|
||||
this.topicName = topicName;
|
||||
}
|
||||
|
||||
public Integer getBrokerId() {
|
||||
return brokerId;
|
||||
}
|
||||
|
||||
public void setBrokerId(Integer brokerId) {
|
||||
this.brokerId = brokerId;
|
||||
}
|
||||
|
||||
public String getDiskName() {
|
||||
return diskName;
|
||||
}
|
||||
|
||||
public void setDiskName(String diskName) {
|
||||
this.diskName = diskName;
|
||||
}
|
||||
|
||||
public List<Integer> getLeaderPartitions() {
|
||||
return leaderPartitions;
|
||||
}
|
||||
|
||||
public void setLeaderPartitions(List<Integer> leaderPartitions) {
|
||||
this.leaderPartitions = leaderPartitions;
|
||||
}
|
||||
|
||||
public List<Integer> getFollowerPartitions() {
|
||||
return followerPartitions;
|
||||
}
|
||||
|
||||
public void setFollowerPartitions(List<Integer> followerPartitions) {
|
||||
this.followerPartitions = followerPartitions;
|
||||
}
|
||||
|
||||
public Boolean getUnderReplicated() {
|
||||
return isUnderReplicated;
|
||||
}
|
||||
|
||||
public void setUnderReplicated(Boolean underReplicated) {
|
||||
isUnderReplicated = underReplicated;
|
||||
}
|
||||
|
||||
public List<Integer> getUnderReplicatedPartitions() {
|
||||
return underReplicatedPartitions;
|
||||
}
|
||||
|
||||
public void setUnderReplicatedPartitions(List<Integer> underReplicatedPartitions) {
|
||||
this.underReplicatedPartitions = underReplicatedPartitions;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "TopicDiskLocation{" +
|
||||
"clusterId=" + clusterId +
|
||||
", topicName='" + topicName + '\'' +
|
||||
", brokerId=" + brokerId +
|
||||
", diskName='" + diskName + '\'' +
|
||||
", leaderPartitions=" + leaderPartitions +
|
||||
", followerPartitions=" + followerPartitions +
|
||||
", isUnderReplicated=" + isUnderReplicated +
|
||||
", underReplicatedPartitions=" + underReplicatedPartitions +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
@@ -1,71 +0,0 @@
|
||||
package com.xiaojukeji.kafka.manager.common.entity.ao.account;
|
||||
|
||||
import com.xiaojukeji.kafka.manager.common.bizenum.AccountRoleEnum;
|
||||
|
||||
/**
|
||||
* 用户信息
|
||||
* @author zengqiao
|
||||
* @date 20/6/10
|
||||
*/
|
||||
public class Account {
|
||||
private String username;
|
||||
|
||||
private String chineseName;
|
||||
|
||||
private String department;
|
||||
|
||||
private AccountRoleEnum accountRoleEnum;
|
||||
|
||||
public Account(String username, String chineseName, String department, AccountRoleEnum accountRoleEnum) {
|
||||
this.username = username;
|
||||
this.chineseName = chineseName;
|
||||
this.department = department;
|
||||
this.accountRoleEnum = accountRoleEnum;
|
||||
}
|
||||
|
||||
public Account() {
|
||||
super();
|
||||
}
|
||||
|
||||
public String getUsername() {
|
||||
return username;
|
||||
}
|
||||
|
||||
public void setUsername(String username) {
|
||||
this.username = username;
|
||||
}
|
||||
|
||||
public String getChineseName() {
|
||||
return chineseName;
|
||||
}
|
||||
|
||||
public void setChineseName(String chineseName) {
|
||||
this.chineseName = chineseName;
|
||||
}
|
||||
|
||||
public String getDepartment() {
|
||||
return department;
|
||||
}
|
||||
|
||||
public void setDepartment(String department) {
|
||||
this.department = department;
|
||||
}
|
||||
|
||||
public AccountRoleEnum getAccountRoleEnum() {
|
||||
return accountRoleEnum;
|
||||
}
|
||||
|
||||
public void setAccountRoleEnum(AccountRoleEnum accountRoleEnum) {
|
||||
this.accountRoleEnum = accountRoleEnum;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Account{" +
|
||||
"username='" + username + '\'' +
|
||||
", chineseName='" + chineseName + '\'' +
|
||||
", department='" + department + '\'' +
|
||||
", accountRoleEnum=" + accountRoleEnum +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
@@ -1,114 +0,0 @@
|
||||
package com.xiaojukeji.kafka.manager.common.entity.ao.analysis;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author zengqiao
|
||||
* @date 19/12/29
|
||||
*/
|
||||
public class AnalysisBrokerDTO {
|
||||
private Long clusterId;
|
||||
|
||||
private Integer brokerId;
|
||||
|
||||
private Long baseTime;
|
||||
|
||||
private Double bytesIn;
|
||||
|
||||
private Double bytesOut;
|
||||
|
||||
private Double messagesIn;
|
||||
|
||||
private Double totalFetchRequests;
|
||||
|
||||
private Double totalProduceRequests;
|
||||
|
||||
List<AnalysisTopicDTO> topicAnalysisVOList;
|
||||
|
||||
public Long getClusterId() {
|
||||
return clusterId;
|
||||
}
|
||||
|
||||
public void setClusterId(Long clusterId) {
|
||||
this.clusterId = clusterId;
|
||||
}
|
||||
|
||||
public Integer getBrokerId() {
|
||||
return brokerId;
|
||||
}
|
||||
|
||||
public void setBrokerId(Integer brokerId) {
|
||||
this.brokerId = brokerId;
|
||||
}
|
||||
|
||||
public Long getBaseTime() {
|
||||
return baseTime;
|
||||
}
|
||||
|
||||
public void setBaseTime(Long baseTime) {
|
||||
this.baseTime = baseTime;
|
||||
}
|
||||
|
||||
public Double getBytesIn() {
|
||||
return bytesIn;
|
||||
}
|
||||
|
||||
public void setBytesIn(Double bytesIn) {
|
||||
this.bytesIn = bytesIn;
|
||||
}
|
||||
|
||||
public Double getBytesOut() {
|
||||
return bytesOut;
|
||||
}
|
||||
|
||||
public void setBytesOut(Double bytesOut) {
|
||||
this.bytesOut = bytesOut;
|
||||
}
|
||||
|
||||
public Double getMessagesIn() {
|
||||
return messagesIn;
|
||||
}
|
||||
|
||||
public void setMessagesIn(Double messagesIn) {
|
||||
this.messagesIn = messagesIn;
|
||||
}
|
||||
|
||||
public Double getTotalFetchRequests() {
|
||||
return totalFetchRequests;
|
||||
}
|
||||
|
||||
public void setTotalFetchRequests(Double totalFetchRequests) {
|
||||
this.totalFetchRequests = totalFetchRequests;
|
||||
}
|
||||
|
||||
public Double getTotalProduceRequests() {
|
||||
return totalProduceRequests;
|
||||
}
|
||||
|
||||
public void setTotalProduceRequests(Double totalProduceRequests) {
|
||||
this.totalProduceRequests = totalProduceRequests;
|
||||
}
|
||||
|
||||
public List<AnalysisTopicDTO> getTopicAnalysisVOList() {
|
||||
return topicAnalysisVOList;
|
||||
}
|
||||
|
||||
public void setTopicAnalysisVOList(List<AnalysisTopicDTO> topicAnalysisVOList) {
|
||||
this.topicAnalysisVOList = topicAnalysisVOList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "AnalysisBrokerDTO{" +
|
||||
"clusterId=" + clusterId +
|
||||
", brokerId=" + brokerId +
|
||||
", baseTime=" + baseTime +
|
||||
", bytesIn=" + bytesIn +
|
||||
", bytesOut=" + bytesOut +
|
||||
", messagesIn=" + messagesIn +
|
||||
", totalFetchRequests=" + totalFetchRequests +
|
||||
", totalProduceRequests=" + totalProduceRequests +
|
||||
", topicAnalysisVOList=" + topicAnalysisVOList +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
@@ -1,134 +0,0 @@
|
||||
package com.xiaojukeji.kafka.manager.common.entity.ao.analysis;
|
||||
|
||||
/**
|
||||
* @author zengqiao
|
||||
* @date 19/12/29
|
||||
*/
|
||||
public class AnalysisTopicDTO {
|
||||
private String topicName;
|
||||
|
||||
private Double bytesIn;
|
||||
|
||||
private Double bytesInRate;
|
||||
|
||||
private Double bytesOut;
|
||||
|
||||
private Double bytesOutRate;
|
||||
|
||||
private Double messagesIn;
|
||||
|
||||
private Double messagesInRate;
|
||||
|
||||
private Double totalFetchRequests;
|
||||
|
||||
private Double totalFetchRequestsRate;
|
||||
|
||||
private Double totalProduceRequests;
|
||||
|
||||
private Double totalProduceRequestsRate;
|
||||
|
||||
public String getTopicName() {
|
||||
return topicName;
|
||||
}
|
||||
|
||||
public void setTopicName(String topicName) {
|
||||
this.topicName = topicName;
|
||||
}
|
||||
|
||||
public Double getBytesIn() {
|
||||
return bytesIn;
|
||||
}
|
||||
|
||||
public void setBytesIn(Double bytesIn) {
|
||||
this.bytesIn = bytesIn;
|
||||
}
|
||||
|
||||
public Double getBytesInRate() {
|
||||
return bytesInRate;
|
||||
}
|
||||
|
||||
public void setBytesInRate(Double bytesInRate) {
|
||||
this.bytesInRate = bytesInRate;
|
||||
}
|
||||
|
||||
public Double getBytesOut() {
|
||||
return bytesOut;
|
||||
}
|
||||
|
||||
public void setBytesOut(Double bytesOut) {
|
||||
this.bytesOut = bytesOut;
|
||||
}
|
||||
|
||||
public Double getBytesOutRate() {
|
||||
return bytesOutRate;
|
||||
}
|
||||
|
||||
public void setBytesOutRate(Double bytesOutRate) {
|
||||
this.bytesOutRate = bytesOutRate;
|
||||
}
|
||||
|
||||
public Double getMessagesIn() {
|
||||
return messagesIn;
|
||||
}
|
||||
|
||||
public void setMessagesIn(Double messagesIn) {
|
||||
this.messagesIn = messagesIn;
|
||||
}
|
||||
|
||||
public Double getMessagesInRate() {
|
||||
return messagesInRate;
|
||||
}
|
||||
|
||||
public void setMessagesInRate(Double messagesInRate) {
|
||||
this.messagesInRate = messagesInRate;
|
||||
}
|
||||
|
||||
public Double getTotalFetchRequests() {
|
||||
return totalFetchRequests;
|
||||
}
|
||||
|
||||
public void setTotalFetchRequests(Double totalFetchRequests) {
|
||||
this.totalFetchRequests = totalFetchRequests;
|
||||
}
|
||||
|
||||
public Double getTotalFetchRequestsRate() {
|
||||
return totalFetchRequestsRate;
|
||||
}
|
||||
|
||||
public void setTotalFetchRequestsRate(Double totalFetchRequestsRate) {
|
||||
this.totalFetchRequestsRate = totalFetchRequestsRate;
|
||||
}
|
||||
|
||||
public Double getTotalProduceRequests() {
|
||||
return totalProduceRequests;
|
||||
}
|
||||
|
||||
public void setTotalProduceRequests(Double totalProduceRequests) {
|
||||
this.totalProduceRequests = totalProduceRequests;
|
||||
}
|
||||
|
||||
public Double getTotalProduceRequestsRate() {
|
||||
return totalProduceRequestsRate;
|
||||
}
|
||||
|
||||
public void setTotalProduceRequestsRate(Double totalProduceRequestsRate) {
|
||||
this.totalProduceRequestsRate = totalProduceRequestsRate;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "AnalysisTopicDTO{" +
|
||||
"topicName='" + topicName + '\'' +
|
||||
", bytesIn=" + bytesIn +
|
||||
", bytesInRate=" + bytesInRate +
|
||||
", bytesOut=" + bytesOut +
|
||||
", bytesOutRate=" + bytesOutRate +
|
||||
", messagesIn=" + messagesIn +
|
||||
", messagesInRate=" + messagesInRate +
|
||||
", totalFetchRequests=" + totalFetchRequests +
|
||||
", totalFetchRequestsRate=" + totalFetchRequestsRate +
|
||||
", totalProduceRequests=" + totalProduceRequests +
|
||||
", totalProduceRequestsRate=" + totalProduceRequestsRate +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
@@ -1,50 +0,0 @@
|
||||
package com.xiaojukeji.kafka.manager.common.entity.ao.api;
|
||||
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
|
||||
/**
|
||||
* @author zengqiao
|
||||
* @date 20/7/27
|
||||
*/
|
||||
public class ApiCount {
|
||||
private int apiLevel;
|
||||
|
||||
private Integer maxNum;
|
||||
|
||||
private AtomicInteger currentNum;
|
||||
|
||||
public ApiCount(int apiLevel, Integer maxNum, AtomicInteger currentNum) {
|
||||
this.apiLevel = apiLevel;
|
||||
this.maxNum = maxNum;
|
||||
this.currentNum = currentNum;
|
||||
}
|
||||
|
||||
public int getApiLevel() {
|
||||
return apiLevel;
|
||||
}
|
||||
|
||||
public Integer getMaxNum() {
|
||||
return maxNum;
|
||||
}
|
||||
|
||||
public AtomicInteger getCurrentNum() {
|
||||
return currentNum;
|
||||
}
|
||||
|
||||
public Boolean incAndCheckIsOverFlow() {
|
||||
return maxNum < currentNum.incrementAndGet();
|
||||
}
|
||||
|
||||
public int decPresentNum() {
|
||||
return currentNum.decrementAndGet();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "ApiCount{" +
|
||||
"apiLevel=" + apiLevel +
|
||||
", maxNum=" + maxNum +
|
||||
", currentNum=" + currentNum +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
@@ -1,37 +0,0 @@
|
||||
package com.xiaojukeji.kafka.manager.common.entity.ao.cluster;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author zengqiao
|
||||
* @date 20/7/14
|
||||
*/
|
||||
public class ClusterBrokerStatus {
|
||||
private List<Integer> brokerReplicaStatusList;
|
||||
|
||||
private List<Integer> brokerBytesInStatusList;
|
||||
|
||||
public List<Integer> getBrokerReplicaStatusList() {
|
||||
return brokerReplicaStatusList;
|
||||
}
|
||||
|
||||
public void setBrokerReplicaStatusList(List<Integer> brokerReplicaStatusList) {
|
||||
this.brokerReplicaStatusList = brokerReplicaStatusList;
|
||||
}
|
||||
|
||||
public List<Integer> getBrokerBytesInStatusList() {
|
||||
return brokerBytesInStatusList;
|
||||
}
|
||||
|
||||
public void setBrokerBytesInStatusList(List<Integer> brokerBytesInStatusList) {
|
||||
this.brokerBytesInStatusList = brokerBytesInStatusList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "ClusterBrokerStatus{" +
|
||||
"brokerReplicaStatusList=" + brokerReplicaStatusList +
|
||||
", brokerBytesInStatusList=" + brokerBytesInStatusList +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
@@ -1,123 +0,0 @@
|
||||
package com.xiaojukeji.kafka.manager.common.entity.ao.cluster;
|
||||
|
||||
/**
|
||||
* @author zengqiao
|
||||
* @date 20/4/1
|
||||
*/
|
||||
public class LogicalCluster {
|
||||
private Long logicalClusterId;
|
||||
|
||||
private String logicalClusterName;
|
||||
|
||||
private Integer mode;
|
||||
|
||||
private Integer topicNum;
|
||||
|
||||
private String clusterVersion;
|
||||
|
||||
private Long physicalClusterId;
|
||||
|
||||
private String bootstrapServers;
|
||||
|
||||
private String description;
|
||||
|
||||
private Long gmtCreate;
|
||||
|
||||
private Long gmtModify;
|
||||
|
||||
public Long getLogicalClusterId() {
|
||||
return logicalClusterId;
|
||||
}
|
||||
|
||||
public void setLogicalClusterId(Long logicalClusterId) {
|
||||
this.logicalClusterId = logicalClusterId;
|
||||
}
|
||||
|
||||
public String getLogicalClusterName() {
|
||||
return logicalClusterName;
|
||||
}
|
||||
|
||||
public void setLogicalClusterName(String logicalClusterName) {
|
||||
this.logicalClusterName = logicalClusterName;
|
||||
}
|
||||
|
||||
public Integer getMode() {
|
||||
return mode;
|
||||
}
|
||||
|
||||
public void setMode(Integer mode) {
|
||||
this.mode = mode;
|
||||
}
|
||||
|
||||
public Integer getTopicNum() {
|
||||
return topicNum;
|
||||
}
|
||||
|
||||
public void setTopicNum(Integer topicNum) {
|
||||
this.topicNum = topicNum;
|
||||
}
|
||||
|
||||
public String getClusterVersion() {
|
||||
return clusterVersion;
|
||||
}
|
||||
|
||||
public void setClusterVersion(String clusterVersion) {
|
||||
this.clusterVersion = clusterVersion;
|
||||
}
|
||||
|
||||
public Long getPhysicalClusterId() {
|
||||
return physicalClusterId;
|
||||
}
|
||||
|
||||
public void setPhysicalClusterId(Long physicalClusterId) {
|
||||
this.physicalClusterId = physicalClusterId;
|
||||
}
|
||||
|
||||
public String getBootstrapServers() {
|
||||
return bootstrapServers;
|
||||
}
|
||||
|
||||
public void setBootstrapServers(String bootstrapServers) {
|
||||
this.bootstrapServers = bootstrapServers;
|
||||
}
|
||||
|
||||
public Long getGmtCreate() {
|
||||
return gmtCreate;
|
||||
}
|
||||
|
||||
public void setGmtCreate(Long gmtCreate) {
|
||||
this.gmtCreate = gmtCreate;
|
||||
}
|
||||
|
||||
public Long getGmtModify() {
|
||||
return gmtModify;
|
||||
}
|
||||
|
||||
public void setGmtModify(Long gmtModify) {
|
||||
this.gmtModify = gmtModify;
|
||||
}
|
||||
|
||||
public String getDescription() {
|
||||
return description;
|
||||
}
|
||||
|
||||
public void setDescription(String description) {
|
||||
this.description = description;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "LogicalCluster{" +
|
||||
"logicalClusterId=" + logicalClusterId +
|
||||
", logicalClusterName='" + logicalClusterName + '\'' +
|
||||
", mode=" + mode +
|
||||
", topicNum=" + topicNum +
|
||||
", clusterVersion='" + clusterVersion + '\'' +
|
||||
", physicalClusterId=" + physicalClusterId +
|
||||
", bootstrapServers='" + bootstrapServers + '\'' +
|
||||
", description='" + description + '\'' +
|
||||
", gmtCreate=" + gmtCreate +
|
||||
", gmtModify=" + gmtModify +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
@@ -1,80 +0,0 @@
|
||||
package com.xiaojukeji.kafka.manager.common.entity.ao.cluster;
|
||||
|
||||
/**
|
||||
* @author zengqiao
|
||||
* @date 20/6/29
|
||||
*/
|
||||
public class LogicalClusterMetrics {
|
||||
|
||||
private Double totalProduceRequestsPerSec = 0.0;
|
||||
|
||||
private Double bytesInPerSec = 0.0;
|
||||
|
||||
private Double bytesOutPerSec = 0.0;
|
||||
|
||||
private Double bytesRejectedPerSec = 0.0;
|
||||
|
||||
private Double messagesInPerSec = 0.0;
|
||||
|
||||
private Long gmtCreate;
|
||||
|
||||
public Double getBytesInPerSec() {
|
||||
return bytesInPerSec;
|
||||
}
|
||||
|
||||
public void setBytesInPerSec(Double bytesInPerSec) {
|
||||
this.bytesInPerSec = bytesInPerSec;
|
||||
}
|
||||
|
||||
public Double getBytesOutPerSec() {
|
||||
return bytesOutPerSec;
|
||||
}
|
||||
|
||||
public void setBytesOutPerSec(Double bytesOutPerSec) {
|
||||
this.bytesOutPerSec = bytesOutPerSec;
|
||||
}
|
||||
|
||||
public Double getBytesRejectedPerSec() {
|
||||
return bytesRejectedPerSec;
|
||||
}
|
||||
|
||||
public void setBytesRejectedPerSec(Double bytesRejectedPerSec) {
|
||||
this.bytesRejectedPerSec = bytesRejectedPerSec;
|
||||
}
|
||||
|
||||
public Double getMessagesInPerSec() {
|
||||
return messagesInPerSec;
|
||||
}
|
||||
|
||||
public void setMessagesInPerSec(Double messagesInPerSec) {
|
||||
this.messagesInPerSec = messagesInPerSec;
|
||||
}
|
||||
|
||||
public Long getGmtCreate() {
|
||||
return gmtCreate;
|
||||
}
|
||||
|
||||
public void setGmtCreate(Long gmtCreate) {
|
||||
this.gmtCreate = gmtCreate;
|
||||
}
|
||||
|
||||
public Double getTotalProduceRequestsPerSec() {
|
||||
return totalProduceRequestsPerSec;
|
||||
}
|
||||
|
||||
public void setTotalProduceRequestsPerSec(Double totalProduceRequestsPerSec) {
|
||||
this.totalProduceRequestsPerSec = totalProduceRequestsPerSec;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "LogicalClusterMetrics{" +
|
||||
"totalProduceRequestsPerSec=" + totalProduceRequestsPerSec +
|
||||
", bytesInPerSec=" + bytesInPerSec +
|
||||
", bytesOutPerSec=" + bytesOutPerSec +
|
||||
", bytesRejectedPerSec=" + bytesRejectedPerSec +
|
||||
", messagesInPerSec=" + messagesInPerSec +
|
||||
", gmtCreate=" + gmtCreate +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
@@ -1,26 +0,0 @@
|
||||
package com.xiaojukeji.kafka.manager.common.entity.ao.config;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author zengqiao
|
||||
* @date 20/7/24
|
||||
*/
|
||||
public class CreateTopicConfig {
|
||||
private List<CreateTopicElemConfig> configList;
|
||||
|
||||
public List<CreateTopicElemConfig> getConfigList() {
|
||||
return configList;
|
||||
}
|
||||
|
||||
public void setConfigList(List<CreateTopicElemConfig> configList) {
|
||||
this.configList = configList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "CreateTopicConfig{" +
|
||||
"configList=" + configList +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
@@ -1,92 +0,0 @@
|
||||
package com.xiaojukeji.kafka.manager.common.entity.ao.config;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author zengqiao
|
||||
* @date 20/7/24
|
||||
*/
|
||||
public class CreateTopicElemConfig {
|
||||
private Long clusterId;
|
||||
|
||||
private List<Integer> brokerIdList;
|
||||
|
||||
private List<Long> regionIdList;
|
||||
|
||||
private Integer partitionNum;
|
||||
|
||||
private Integer replicaNum;
|
||||
|
||||
private Integer retentionTimeUnitHour;
|
||||
|
||||
private Long autoExecMaxPeakBytesInUnitB;
|
||||
|
||||
public Long getClusterId() {
|
||||
return clusterId;
|
||||
}
|
||||
|
||||
public void setClusterId(Long clusterId) {
|
||||
this.clusterId = clusterId;
|
||||
}
|
||||
|
||||
public List<Integer> getBrokerIdList() {
|
||||
return brokerIdList;
|
||||
}
|
||||
|
||||
public void setBrokerIdList(List<Integer> brokerIdList) {
|
||||
this.brokerIdList = brokerIdList;
|
||||
}
|
||||
|
||||
public List<Long> getRegionIdList() {
|
||||
return regionIdList;
|
||||
}
|
||||
|
||||
public void setRegionIdList(List<Long> regionIdList) {
|
||||
this.regionIdList = regionIdList;
|
||||
}
|
||||
|
||||
public Integer getReplicaNum() {
|
||||
return replicaNum;
|
||||
}
|
||||
|
||||
public void setReplicaNum(Integer replicaNum) {
|
||||
this.replicaNum = replicaNum;
|
||||
}
|
||||
|
||||
public Integer getRetentionTimeUnitHour() {
|
||||
return retentionTimeUnitHour;
|
||||
}
|
||||
|
||||
public void setRetentionTimeUnitHour(Integer retentionTimeUnitHour) {
|
||||
this.retentionTimeUnitHour = retentionTimeUnitHour;
|
||||
}
|
||||
|
||||
public Long getAutoExecMaxPeakBytesInUnitB() {
|
||||
return autoExecMaxPeakBytesInUnitB;
|
||||
}
|
||||
|
||||
public void setAutoExecMaxPeakBytesInUnitB(Long autoExecMaxPeakBytesInUnitB) {
|
||||
this.autoExecMaxPeakBytesInUnitB = autoExecMaxPeakBytesInUnitB;
|
||||
}
|
||||
|
||||
public Integer getPartitionNum() {
|
||||
return partitionNum;
|
||||
}
|
||||
|
||||
public void setPartitionNum(Integer partitionNum) {
|
||||
this.partitionNum = partitionNum;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "CreateTopicElemConfig{" +
|
||||
"clusterId=" + clusterId +
|
||||
", brokerIdList=" + brokerIdList +
|
||||
", regionIdList=" + regionIdList +
|
||||
", partitionNum=" + partitionNum +
|
||||
", replicaNum=" + replicaNum +
|
||||
", retentionTimeUnitHour=" + retentionTimeUnitHour +
|
||||
", autoExecMaxPeakBytesInUnitB=" + autoExecMaxPeakBytesInUnitB +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
package com.xiaojukeji.kafka.manager.common.entity.ao.config;
|
||||
|
||||
/**
|
||||
* 峰值均值流入流量配置
|
||||
* @author zengqiao
|
||||
* @date 20/6/9
|
||||
*/
|
||||
public class MaxAvgBytesInConfig {
|
||||
private Integer duration;
|
||||
|
||||
public Integer getDuration() {
|
||||
return duration;
|
||||
}
|
||||
|
||||
public void setDuration(Integer duration) {
|
||||
this.duration = duration;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "MaxAvgBytesInConfig{" +
|
||||
"duration=" + duration +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
@@ -1,57 +0,0 @@
|
||||
package com.xiaojukeji.kafka.manager.common.entity.ao.config;
|
||||
|
||||
/**
|
||||
* @author zengqiao
|
||||
* @date 20/9/7
|
||||
*/
|
||||
public class SinkTopicRequestTimeMetricsConfig {
|
||||
private Long clusterId;
|
||||
|
||||
private String topicName;
|
||||
|
||||
private Long startId;
|
||||
|
||||
private Long step;
|
||||
|
||||
public Long getClusterId() {
|
||||
return clusterId;
|
||||
}
|
||||
|
||||
public void setClusterId(Long clusterId) {
|
||||
this.clusterId = clusterId;
|
||||
}
|
||||
|
||||
public String getTopicName() {
|
||||
return topicName;
|
||||
}
|
||||
|
||||
public void setTopicName(String topicName) {
|
||||
this.topicName = topicName;
|
||||
}
|
||||
|
||||
public Long getStartId() {
|
||||
return startId;
|
||||
}
|
||||
|
||||
public void setStartId(Long startId) {
|
||||
this.startId = startId;
|
||||
}
|
||||
|
||||
public Long getStep() {
|
||||
return step;
|
||||
}
|
||||
|
||||
public void setStep(Long step) {
|
||||
this.step = step;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "SinkTopicRequestTimeMetricsConfig{" +
|
||||
"clusterId=" + clusterId +
|
||||
", topicName='" + topicName + '\'' +
|
||||
", startId=" + startId +
|
||||
", step=" + step +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
@@ -1,57 +0,0 @@
|
||||
package com.xiaojukeji.kafka.manager.common.entity.ao.config;
|
||||
|
||||
/**
|
||||
* @author zengqiao
|
||||
* @date 20/8/23
|
||||
*/
|
||||
public class TopicAnomalyFlowConfig {
|
||||
private Long minTopicBytesInUnitB;
|
||||
|
||||
private Double bytesInIncUnitB;
|
||||
|
||||
private Long minTopicProduceQps;
|
||||
|
||||
private Double produceQpsInc;
|
||||
|
||||
public Long getMinTopicBytesInUnitB() {
|
||||
return minTopicBytesInUnitB;
|
||||
}
|
||||
|
||||
public void setMinTopicBytesInUnitB(Long minTopicBytesInUnitB) {
|
||||
this.minTopicBytesInUnitB = minTopicBytesInUnitB;
|
||||
}
|
||||
|
||||
public Double getBytesInIncUnitB() {
|
||||
return bytesInIncUnitB;
|
||||
}
|
||||
|
||||
public void setBytesInIncUnitB(Double bytesInIncUnitB) {
|
||||
this.bytesInIncUnitB = bytesInIncUnitB;
|
||||
}
|
||||
|
||||
public Long getMinTopicProduceQps() {
|
||||
return minTopicProduceQps;
|
||||
}
|
||||
|
||||
public void setMinTopicProduceQps(Long minTopicProduceQps) {
|
||||
this.minTopicProduceQps = minTopicProduceQps;
|
||||
}
|
||||
|
||||
public Double getProduceQpsInc() {
|
||||
return produceQpsInc;
|
||||
}
|
||||
|
||||
public void setProduceQpsInc(Double produceQpsInc) {
|
||||
this.produceQpsInc = produceQpsInc;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "TopicAnomalyFlowConfig{" +
|
||||
"minTopicBytesInUnitB=" + minTopicBytesInUnitB +
|
||||
", bytesInIncUnitB=" + bytesInIncUnitB +
|
||||
", minTopicProduceQps=" + minTopicProduceQps +
|
||||
", produceQpsInc=" + produceQpsInc +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
@@ -1,44 +0,0 @@
|
||||
package com.xiaojukeji.kafka.manager.common.entity.ao.config;
|
||||
|
||||
import com.xiaojukeji.kafka.manager.common.utils.ValidateUtils;
|
||||
|
||||
/**
|
||||
* @author zengqiao
|
||||
* @date 20/8/31
|
||||
*/
|
||||
public class TopicNameConfig {
|
||||
private Long clusterId;
|
||||
|
||||
private String topicName;
|
||||
|
||||
public Long getClusterId() {
|
||||
return clusterId;
|
||||
}
|
||||
|
||||
public void setClusterId(Long clusterId) {
|
||||
this.clusterId = clusterId;
|
||||
}
|
||||
|
||||
public String getTopicName() {
|
||||
return topicName;
|
||||
}
|
||||
|
||||
public void setTopicName(String topicName) {
|
||||
this.topicName = topicName;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "TopicNameConfig{" +
|
||||
"clusterId=" + clusterId +
|
||||
", topicName='" + topicName + '\'' +
|
||||
'}';
|
||||
}
|
||||
|
||||
public boolean legal() {
|
||||
if (ValidateUtils.isNull(clusterId) || ValidateUtils.isBlank(topicName)) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -1,58 +0,0 @@
|
||||
package com.xiaojukeji.kafka.manager.common.entity.ao.config.expert;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author zengqiao
|
||||
* @date 20/8/23
|
||||
*/
|
||||
public class RegionTopicHotConfig {
|
||||
private Long minTopicBytesInUnitB;
|
||||
|
||||
private Integer maxDisPartitionNum;
|
||||
|
||||
private List<Long> ignoreClusterIdList;
|
||||
|
||||
public Long getMinTopicBytesInUnitB() {
|
||||
if (minTopicBytesInUnitB == null) {
|
||||
return 3 * 1024 * 1024L;
|
||||
}
|
||||
return minTopicBytesInUnitB;
|
||||
}
|
||||
|
||||
public void setMinTopicBytesInUnitB(Long minTopicBytesInUnitB) {
|
||||
this.minTopicBytesInUnitB = minTopicBytesInUnitB;
|
||||
}
|
||||
|
||||
public Integer getMaxDisPartitionNum() {
|
||||
if (maxDisPartitionNum == null) {
|
||||
return 3;
|
||||
}
|
||||
return maxDisPartitionNum;
|
||||
}
|
||||
|
||||
public void setMaxDisPartitionNum(Integer maxDisPartitionNum) {
|
||||
this.maxDisPartitionNum = maxDisPartitionNum;
|
||||
}
|
||||
|
||||
public List<Long> getIgnoreClusterIdList() {
|
||||
if (ignoreClusterIdList == null) {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
return ignoreClusterIdList;
|
||||
}
|
||||
|
||||
public void setIgnoreClusterIdList(List<Long> ignoreClusterIdList) {
|
||||
this.ignoreClusterIdList = ignoreClusterIdList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "RegionTopicHotConfig{" +
|
||||
"minTopicBytesInUnitB=" + minTopicBytesInUnitB +
|
||||
", maxDisPartitionNum=" + maxDisPartitionNum +
|
||||
", ignoreClusterIdList=" + ignoreClusterIdList +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
@@ -1,38 +0,0 @@
|
||||
package com.xiaojukeji.kafka.manager.common.entity.ao.config.expert;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author zengqiao
|
||||
* @date 20/9/17
|
||||
*/
|
||||
public class TopicExpiredConfig {
|
||||
private Integer minExpiredDay = 30;
|
||||
|
||||
private List<Long> ignoreClusterIdList = new ArrayList<>();
|
||||
|
||||
public Integer getMinExpiredDay() {
|
||||
return minExpiredDay;
|
||||
}
|
||||
|
||||
public void setMinExpiredDay(Integer minExpiredDay) {
|
||||
this.minExpiredDay = minExpiredDay;
|
||||
}
|
||||
|
||||
public List<Long> getIgnoreClusterIdList() {
|
||||
return ignoreClusterIdList;
|
||||
}
|
||||
|
||||
public void setIgnoreClusterIdList(List<Long> ignoreClusterIdList) {
|
||||
this.ignoreClusterIdList = ignoreClusterIdList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "TopicExpiredConfig{" +
|
||||
"minExpiredDay=" + minExpiredDay +
|
||||
", ignoreClusterIdList=" + ignoreClusterIdList +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
@@ -1,50 +0,0 @@
|
||||
package com.xiaojukeji.kafka.manager.common.entity.ao.config.expert;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 专家服务-Topic分区不足配置
|
||||
* @author zengqiao
|
||||
* @date 20/8/23
|
||||
*/
|
||||
public class TopicInsufficientPartitionConfig {
|
||||
private Long maxBytesInPerPartitionUnitB = 3 * 1024 * 1024L;
|
||||
|
||||
private Long minTopicBytesInUnitB = 3 * 1024 * 1024L;
|
||||
|
||||
private List<Long> ignoreClusterIdList = new ArrayList<>();
|
||||
|
||||
public Long getMaxBytesInPerPartitionUnitB() {
|
||||
return maxBytesInPerPartitionUnitB;
|
||||
}
|
||||
|
||||
public void setMaxBytesInPerPartitionUnitB(Long maxBytesInPerPartitionUnitB) {
|
||||
this.maxBytesInPerPartitionUnitB = maxBytesInPerPartitionUnitB;
|
||||
}
|
||||
|
||||
public Long getMinTopicBytesInUnitB() {
|
||||
return minTopicBytesInUnitB;
|
||||
}
|
||||
|
||||
public void setMinTopicBytesInUnitB(Long minTopicBytesInUnitB) {
|
||||
this.minTopicBytesInUnitB = minTopicBytesInUnitB;
|
||||
}
|
||||
|
||||
public List<Long> getIgnoreClusterIdList() {
|
||||
return ignoreClusterIdList;
|
||||
}
|
||||
|
||||
public void setIgnoreClusterIdList(List<Long> ignoreClusterIdList) {
|
||||
this.ignoreClusterIdList = ignoreClusterIdList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "TopicInsufficientPartitionConfig{" +
|
||||
"maxBytesInPerPartitionUnitB=" + maxBytesInPerPartitionUnitB +
|
||||
", minTopicBytesInUnitB=" + minTopicBytesInUnitB +
|
||||
", ignoreClusterIdList=" + ignoreClusterIdList +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
@@ -1,57 +0,0 @@
|
||||
package com.xiaojukeji.kafka.manager.common.entity.ao.consumer;
|
||||
|
||||
/**
|
||||
* @author zengqiao
|
||||
* @date 20/1/9
|
||||
*/
|
||||
public class ConsumeDetailDTO {
|
||||
private Integer partitionId;
|
||||
|
||||
private Long offset;
|
||||
|
||||
private Long consumeOffset;
|
||||
|
||||
private String consumerId;
|
||||
|
||||
public Integer getPartitionId() {
|
||||
return partitionId;
|
||||
}
|
||||
|
||||
public void setPartitionId(Integer partitionId) {
|
||||
this.partitionId = partitionId;
|
||||
}
|
||||
|
||||
public Long getOffset() {
|
||||
return offset;
|
||||
}
|
||||
|
||||
public void setOffset(Long offset) {
|
||||
this.offset = offset;
|
||||
}
|
||||
|
||||
public Long getConsumeOffset() {
|
||||
return consumeOffset;
|
||||
}
|
||||
|
||||
public void setConsumeOffset(Long consumeOffset) {
|
||||
this.consumeOffset = consumeOffset;
|
||||
}
|
||||
|
||||
public String getConsumerId() {
|
||||
return consumerId;
|
||||
}
|
||||
|
||||
public void setConsumerId(String consumerId) {
|
||||
this.consumerId = consumerId;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "ConsumeDetailDTO{" +
|
||||
"partitionId=" + partitionId +
|
||||
", offset=" + offset +
|
||||
", consumeOffset=" + consumeOffset +
|
||||
", consumerId='" + consumerId + '\'' +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
@@ -1,92 +0,0 @@
|
||||
package com.xiaojukeji.kafka.manager.common.entity.ao.consumer;
|
||||
|
||||
import com.xiaojukeji.kafka.manager.common.bizenum.OffsetLocationEnum;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* 消费组信息
|
||||
* @author zengqiao
|
||||
* @date 19/4/18
|
||||
*/
|
||||
public class ConsumerGroupDTO {
|
||||
private Long clusterId;
|
||||
|
||||
private String consumerGroup;
|
||||
|
||||
private List<String> appIdList;
|
||||
|
||||
private OffsetLocationEnum offsetStoreLocation;
|
||||
|
||||
public ConsumerGroupDTO(Long clusterId,
|
||||
String consumerGroup,
|
||||
List<String> appIdList,
|
||||
OffsetLocationEnum offsetStoreLocation) {
|
||||
this.clusterId = clusterId;
|
||||
this.consumerGroup = consumerGroup;
|
||||
this.appIdList = appIdList;
|
||||
this.offsetStoreLocation = offsetStoreLocation;
|
||||
}
|
||||
|
||||
public Long getClusterId() {
|
||||
return clusterId;
|
||||
}
|
||||
|
||||
public void setClusterId(Long clusterId) {
|
||||
this.clusterId = clusterId;
|
||||
}
|
||||
|
||||
public String getConsumerGroup() {
|
||||
return consumerGroup;
|
||||
}
|
||||
|
||||
public void setConsumerGroup(String consumerGroup) {
|
||||
this.consumerGroup = consumerGroup;
|
||||
}
|
||||
|
||||
public List<String> getAppIdList() {
|
||||
return appIdList;
|
||||
}
|
||||
|
||||
public void setAppIdList(List<String> appIdList) {
|
||||
this.appIdList = appIdList;
|
||||
}
|
||||
|
||||
public OffsetLocationEnum getOffsetStoreLocation() {
|
||||
return offsetStoreLocation;
|
||||
}
|
||||
|
||||
public void setOffsetStoreLocation(OffsetLocationEnum offsetStoreLocation) {
|
||||
this.offsetStoreLocation = offsetStoreLocation;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "ConsumerGroupDTO{" +
|
||||
"clusterId=" + clusterId +
|
||||
", consumerGroup='" + consumerGroup + '\'' +
|
||||
", appIdList=" + appIdList +
|
||||
", offsetStoreLocation=" + offsetStoreLocation +
|
||||
'}';
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (this == o) {
|
||||
return true;
|
||||
}
|
||||
if (o == null || getClass() != o.getClass()) {
|
||||
return false;
|
||||
}
|
||||
ConsumerGroupDTO that = (ConsumerGroupDTO) o;
|
||||
return clusterId.equals(that.clusterId)
|
||||
&& consumerGroup.equals(that.consumerGroup)
|
||||
&& offsetStoreLocation == that.offsetStoreLocation;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return Objects.hash(clusterId, consumerGroup, offsetStoreLocation);
|
||||
}
|
||||
}
|
||||
@@ -1,90 +0,0 @@
|
||||
package com.xiaojukeji.kafka.manager.common.entity.ao.expert;
|
||||
|
||||
/**
|
||||
* @author zengqiao
|
||||
* @date 20/3/30
|
||||
*/
|
||||
public class TopicAnomalyFlow {
|
||||
private Long clusterId;
|
||||
|
||||
private String clusterName;
|
||||
|
||||
private String topicName;
|
||||
|
||||
private Double bytesIn;
|
||||
|
||||
private Double bytesInIncr;
|
||||
|
||||
private Double iops;
|
||||
|
||||
private Double iopsIncr;
|
||||
|
||||
public Long getClusterId() {
|
||||
return clusterId;
|
||||
}
|
||||
|
||||
public void setClusterId(Long clusterId) {
|
||||
this.clusterId = clusterId;
|
||||
}
|
||||
|
||||
public String getClusterName() {
|
||||
return clusterName;
|
||||
}
|
||||
|
||||
public void setClusterName(String clusterName) {
|
||||
this.clusterName = clusterName;
|
||||
}
|
||||
|
||||
public String getTopicName() {
|
||||
return topicName;
|
||||
}
|
||||
|
||||
public void setTopicName(String topicName) {
|
||||
this.topicName = topicName;
|
||||
}
|
||||
|
||||
public Double getBytesIn() {
|
||||
return bytesIn;
|
||||
}
|
||||
|
||||
public void setBytesIn(Double bytesIn) {
|
||||
this.bytesIn = bytesIn;
|
||||
}
|
||||
|
||||
public Double getBytesInIncr() {
|
||||
return bytesInIncr;
|
||||
}
|
||||
|
||||
public void setBytesInIncr(Double bytesInIncr) {
|
||||
this.bytesInIncr = bytesInIncr;
|
||||
}
|
||||
|
||||
public Double getIops() {
|
||||
return iops;
|
||||
}
|
||||
|
||||
public void setIops(Double iops) {
|
||||
this.iops = iops;
|
||||
}
|
||||
|
||||
public Double getIopsIncr() {
|
||||
return iopsIncr;
|
||||
}
|
||||
|
||||
public void setIopsIncr(Double iopsIncr) {
|
||||
this.iopsIncr = iopsIncr;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "AnomalyFlowTopicDTO{" +
|
||||
"clusterId=" + clusterId +
|
||||
", clusterName='" + clusterName + '\'' +
|
||||
", topicName='" + topicName + '\'' +
|
||||
", bytesIn=" + bytesIn +
|
||||
", bytesInIncr=" + bytesInIncr +
|
||||
", iops=" + iops +
|
||||
", iopsIncr=" + iopsIncr +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
@@ -1,111 +0,0 @@
|
||||
package com.xiaojukeji.kafka.manager.common.entity.ao.expert;
|
||||
|
||||
import com.xiaojukeji.kafka.manager.common.entity.pojo.ClusterDO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author zengqiao
|
||||
* @date 20/3/30
|
||||
*/
|
||||
public class TopicInsufficientPartition {
|
||||
private ClusterDO clusterDO;
|
||||
|
||||
private String topicName;
|
||||
|
||||
private Integer presentPartitionNum;
|
||||
|
||||
private Integer suggestedPartitionNum;
|
||||
|
||||
private List<Double> maxAvgBytesInList;
|
||||
|
||||
private Double bytesInPerPartition;
|
||||
|
||||
private List<Integer> brokerIdList;
|
||||
|
||||
public TopicInsufficientPartition(
|
||||
ClusterDO clusterDO,
|
||||
String topicName,
|
||||
Integer presentPartitionNum,
|
||||
Integer suggestedPartitionNum,
|
||||
List<Double> maxAvgBytesInList,
|
||||
Double bytesInPerPartition,
|
||||
List<Integer> brokerIdList) {
|
||||
this.clusterDO = clusterDO;
|
||||
this.topicName = topicName;
|
||||
this.presentPartitionNum = presentPartitionNum;
|
||||
this.suggestedPartitionNum = suggestedPartitionNum;
|
||||
this.maxAvgBytesInList = maxAvgBytesInList;
|
||||
this.bytesInPerPartition = bytesInPerPartition;
|
||||
this.brokerIdList = brokerIdList;
|
||||
}
|
||||
|
||||
public ClusterDO getClusterDO() {
|
||||
return clusterDO;
|
||||
}
|
||||
|
||||
public void setClusterDO(ClusterDO clusterDO) {
|
||||
this.clusterDO = clusterDO;
|
||||
}
|
||||
|
||||
public String getTopicName() {
|
||||
return topicName;
|
||||
}
|
||||
|
||||
public void setTopicName(String topicName) {
|
||||
this.topicName = topicName;
|
||||
}
|
||||
|
||||
public Integer getPresentPartitionNum() {
|
||||
return presentPartitionNum;
|
||||
}
|
||||
|
||||
public void setPresentPartitionNum(Integer presentPartitionNum) {
|
||||
this.presentPartitionNum = presentPartitionNum;
|
||||
}
|
||||
|
||||
public Integer getSuggestedPartitionNum() {
|
||||
return suggestedPartitionNum;
|
||||
}
|
||||
|
||||
public void setSuggestedPartitionNum(Integer suggestedPartitionNum) {
|
||||
this.suggestedPartitionNum = suggestedPartitionNum;
|
||||
}
|
||||
|
||||
public List<Double> getMaxAvgBytesInList() {
|
||||
return maxAvgBytesInList;
|
||||
}
|
||||
|
||||
public void setMaxAvgBytesInList(List<Double> maxAvgBytesInList) {
|
||||
this.maxAvgBytesInList = maxAvgBytesInList;
|
||||
}
|
||||
|
||||
public Double getBytesInPerPartition() {
|
||||
return bytesInPerPartition;
|
||||
}
|
||||
|
||||
public void setBytesInPerPartition(Double bytesInPerPartition) {
|
||||
this.bytesInPerPartition = bytesInPerPartition;
|
||||
}
|
||||
|
||||
public List<Integer> getBrokerIdList() {
|
||||
return brokerIdList;
|
||||
}
|
||||
|
||||
public void setBrokerIdList(List<Integer> brokerIdList) {
|
||||
this.brokerIdList = brokerIdList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "TopicInsufficientPartition{" +
|
||||
"clusterDO=" + clusterDO +
|
||||
", topicName='" + topicName + '\'' +
|
||||
", presentPartitionNum=" + presentPartitionNum +
|
||||
", suggestedPartitionNum=" + suggestedPartitionNum +
|
||||
", maxAvgBytesInList=" + maxAvgBytesInList +
|
||||
", bytesInPerPartition=" + bytesInPerPartition +
|
||||
", brokerIdList=" + brokerIdList +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
@@ -1,70 +0,0 @@
|
||||
package com.xiaojukeji.kafka.manager.common.entity.ao.expert;
|
||||
|
||||
import com.xiaojukeji.kafka.manager.common.entity.pojo.ClusterDO;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* Region内热点Topic
|
||||
* @author zengqiao
|
||||
* @date 20/3/27
|
||||
*/
|
||||
public class TopicRegionHot {
|
||||
private ClusterDO clusterDO;
|
||||
|
||||
private String topicName;
|
||||
|
||||
private Long retentionTime;
|
||||
|
||||
private Map<Integer, Integer> brokerIdPartitionNumMap;
|
||||
|
||||
public TopicRegionHot(ClusterDO clusterDO, String topicName, Long retentionTime, Map<Integer, Integer>
|
||||
brokerIdPartitionNumMap) {
|
||||
this.clusterDO = clusterDO;
|
||||
this.topicName = topicName;
|
||||
this.retentionTime = retentionTime;
|
||||
this.brokerIdPartitionNumMap = brokerIdPartitionNumMap;
|
||||
}
|
||||
|
||||
public ClusterDO getClusterDO() {
|
||||
return clusterDO;
|
||||
}
|
||||
|
||||
public void setClusterDO(ClusterDO clusterDO) {
|
||||
this.clusterDO = clusterDO;
|
||||
}
|
||||
|
||||
public String getTopicName() {
|
||||
return topicName;
|
||||
}
|
||||
|
||||
public void setTopicName(String topicName) {
|
||||
this.topicName = topicName;
|
||||
}
|
||||
|
||||
public Long getRetentionTime() {
|
||||
return retentionTime;
|
||||
}
|
||||
|
||||
public void setRetentionTime(Long retentionTime) {
|
||||
this.retentionTime = retentionTime;
|
||||
}
|
||||
|
||||
public Map<Integer, Integer> getBrokerIdPartitionNumMap() {
|
||||
return brokerIdPartitionNumMap;
|
||||
}
|
||||
|
||||
public void setBrokerIdPartitionNumMap(Map<Integer, Integer> brokerIdPartitionNumMap) {
|
||||
this.brokerIdPartitionNumMap = brokerIdPartitionNumMap;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "ExpertRegionTopicHot{" +
|
||||
"clusterDO=" + clusterDO +
|
||||
", topicName='" + topicName + '\'' +
|
||||
", retentionTime=" + retentionTime +
|
||||
", brokerIdPartitionNumMap=" + brokerIdPartitionNumMap +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
@@ -1,30 +0,0 @@
|
||||
package com.xiaojukeji.kafka.manager.common.entity.ao.gateway;
|
||||
|
||||
/**
|
||||
* @author zengqiao
|
||||
* @date 20/7/29
|
||||
*/
|
||||
public class AppRateConfig extends BaseGatewayConfig {
|
||||
private Long appRateLimit;
|
||||
|
||||
public AppRateConfig(Long version, Long appRateLimit) {
|
||||
this.version = version;
|
||||
this.appRateLimit = appRateLimit;
|
||||
}
|
||||
|
||||
public Long getAppRateLimit() {
|
||||
return appRateLimit;
|
||||
}
|
||||
|
||||
public void setAppRateLimit(Long appRateLimit) {
|
||||
this.appRateLimit = appRateLimit;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "AppRateConfig{" +
|
||||
"appRateLimit=" + appRateLimit +
|
||||
", version=" + version +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
@@ -1,24 +0,0 @@
|
||||
package com.xiaojukeji.kafka.manager.common.entity.ao.gateway;
|
||||
|
||||
/**
|
||||
* @author zengqiao
|
||||
* @date 20/7/29
|
||||
*/
|
||||
public class BaseGatewayConfig {
|
||||
protected Long version;
|
||||
|
||||
public Long getVersion() {
|
||||
return version;
|
||||
}
|
||||
|
||||
public void setVersion(Long version) {
|
||||
this.version = version;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "GatewayConfig{" +
|
||||
"version=" + version +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
@@ -1,30 +0,0 @@
|
||||
package com.xiaojukeji.kafka.manager.common.entity.ao.gateway;
|
||||
|
||||
/**
|
||||
* @author zengqiao
|
||||
* @date 20/7/29
|
||||
*/
|
||||
public class IpRateConfig extends BaseGatewayConfig {
|
||||
private Long ipRateLimit;
|
||||
|
||||
public IpRateConfig(Long version, Long ipRateLimit) {
|
||||
this.version = version;
|
||||
this.ipRateLimit = ipRateLimit;
|
||||
}
|
||||
|
||||
public Long getIpRateLimit() {
|
||||
return ipRateLimit;
|
||||
}
|
||||
|
||||
public void setIpRateLimit(Long ipRateLimit) {
|
||||
this.ipRateLimit = ipRateLimit;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "IpRateConfig{" +
|
||||
"ipRateLimit=" + ipRateLimit +
|
||||
", version=" + version +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
@@ -1,33 +0,0 @@
|
||||
package com.xiaojukeji.kafka.manager.common.entity.ao.gateway;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author zengqiao
|
||||
* @date 20/7/29
|
||||
*/
|
||||
public class KafkaBootstrapServerConfig extends BaseGatewayConfig {
|
||||
private Map<Long, List<String>> clusterIdBootstrapServersMap;
|
||||
|
||||
public KafkaBootstrapServerConfig(Long version, Map<Long, List<String>> clusterIdBootstrapServersMap) {
|
||||
this.version = version;
|
||||
this.clusterIdBootstrapServersMap = clusterIdBootstrapServersMap;
|
||||
}
|
||||
|
||||
public Map<Long, List<String>> getClusterIdBootstrapServersMap() {
|
||||
return clusterIdBootstrapServersMap;
|
||||
}
|
||||
|
||||
public void setClusterIdBootstrapServersMap(Map<Long, List<String>> clusterIdBootstrapServersMap) {
|
||||
this.clusterIdBootstrapServersMap = clusterIdBootstrapServersMap;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "KafkaBootstrapServerConfig{" +
|
||||
"clusterIdBootstrapServersMap=" + clusterIdBootstrapServersMap +
|
||||
", version=" + version +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user