-
Notifications
You must be signed in to change notification settings - Fork 129
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
dushixiang
committed
Apr 12, 2021
1 parent
3b0819f
commit 6a65a69
Showing
26 changed files
with
243 additions
and
30 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1,74 @@ | ||
# kafka map | ||
|
||
给编程插上翅膀,给kafka安装上导航。 | ||
|
||
## 快速了解 | ||
|
||
`kafka map`是使用`Java8`和`React`给`Apache Kafka`开发的一款web ui工具。 | ||
通过这款工具可以很方便直观的查看Broker、 topics、 partitions、consumers等信息,以及查看Topic中的消息。 | ||
|
||
目前支持的功能有: | ||
|
||
- 多集群管理 | ||
- topic监控 —— 查看分区数量、副本数量、存储大小、offset | ||
- topic管理 —— 创建、删除、扩容 | ||
- broker查看 —— Partitions as Leader、 Partitions as Follower | ||
- consumer管理(查看、删除) | ||
- 重置offset | ||
- 消费消息 —— 支持String和json方式展示 | ||
|
||
## 截图 | ||
|
||
[截图](docs/screenshot.md) | ||
|
||
## 协议与条款 | ||
|
||
如您需要在企业网络中使用 `kafka-map` ,建议先征求 IT 管理员的同意。下载、使用或分发 `kafka-map` 前,您必须同意 [协议](./LICENSE) 条款与限制。本项目不提供任何担保,亦不承担任何责任。 | ||
|
||
## 依赖环境 | ||
|
||
- Java8 或更高版本 | ||
- Apache Kafka 1.1.0 或更高版本 | ||
|
||
|
||
## 快速安装 | ||
|
||
下载安装包并解压到你喜欢的目录 | ||
|
||
### 前台运行 | ||
进入kafka-map文件夹执行 | ||
```shell | ||
java -jar kafka-map.jar | ||
``` | ||
|
||
### 系统服务方式运行 | ||
|
||
在 `/etc/systemd/system/` 下创建 `kafka-map.service` 并写入以下内容 | ||
|
||
> 根据自身实际情况修改 WorkingDirectory 和 ExecStart下面的程序所在目录及java | ||
```shell | ||
[Unit] | ||
Description=kafka map service | ||
After=network.target | ||
|
||
[Service] | ||
WorkingDirectory=/usr/local/kafka-map | ||
ExecStart=/usr/bin/java -jar /usr/local/kafka-map/kafka-map.jar | ||
Restart=on-failure | ||
|
||
[Install] | ||
WantedBy=multi-user.target | ||
``` | ||
|
||
重载系统服务&&设置开机启动&&启动服务&&查看状态 | ||
|
||
```shell | ||
systemctl daemon-reload | ||
systemctl enable kafka-map | ||
systemctl start kafka-map | ||
systemctl status kafka-map | ||
``` | ||
|
||
### 使用 | ||
|
||
接下来使用浏览器打开服务器的 `8080` 端口即可访问。 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
cd web && npm run build | ||
mv build ../src/main/resources/static | ||
source ~/.bash_profile | ||
cd .. && mvn clean package -Dmaven.test.skip=true | ||
rm -rf src/main/resources/static |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
|
||
### 集群管理 | ||
|
||
![集群管理](../screenshot/cluster.png) | ||
|
||
### 主题管理 | ||
|
||
![主题管理](../screenshot/topic.png) | ||
|
||
### 消费组 | ||
|
||
![主题管理](../screenshot/consumer.png) | ||
|
||
### topic详情——分区 | ||
|
||
![topic详情——分区](../screenshot/topic-info-partition.png) | ||
|
||
### topic详情——消费组 | ||
|
||
![topic详情——消费组](../screenshot/topic-info-consumer.png) | ||
|
||
### topic详情——消费组重置offset | ||
|
||
![topic详情——消费组重置offset](../screenshot/topic-info-consumer-reset-offset.png) | ||
|
||
### 消费消息 | ||
|
||
![消费消息](../screenshot/topic-data.png) |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
35 changes: 35 additions & 0 deletions
35
src/main/java/cn/typesafe/km/controller/handle/GlobalExceptionHandler.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
package cn.typesafe.km.controller.handle; | ||
|
||
import org.apache.kafka.common.errors.TopicExistsException; | ||
import org.springframework.http.HttpStatus; | ||
import org.springframework.web.bind.annotation.ControllerAdvice; | ||
import org.springframework.web.bind.annotation.ExceptionHandler; | ||
import org.springframework.web.bind.annotation.ResponseBody; | ||
import org.springframework.web.bind.annotation.ResponseStatus; | ||
|
||
import java.util.HashMap; | ||
import java.util.Map; | ||
|
||
@ControllerAdvice | ||
public class GlobalExceptionHandler { | ||
|
||
@ResponseStatus(value = HttpStatus.BAD_REQUEST) | ||
@ResponseBody | ||
@ExceptionHandler(value = TopicExistsException.class) | ||
public Map<String, Object> exceptionHandler(TopicExistsException e) { | ||
String message = e.getMessage(); | ||
Map<String, Object> data = new HashMap<>(); | ||
data.put("message", message); | ||
return data; | ||
} | ||
|
||
@ResponseStatus(value = HttpStatus.BAD_REQUEST) | ||
@ResponseBody | ||
@ExceptionHandler(value = IllegalArgumentException.class) | ||
public Map<String, Object> illegalArgumentException(IllegalArgumentException e) { | ||
String message = e.getMessage(); | ||
Map<String, Object> data = new HashMap<>(); | ||
data.put("message", message); | ||
return data; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
package cn.typesafe.km.util; | ||
|
||
import java.io.IOException; | ||
import java.net.InetAddress; | ||
import java.net.InetSocketAddress; | ||
import java.net.Socket; | ||
|
||
public class Networks { | ||
|
||
public static boolean isHostReachable(String host) { | ||
try { | ||
return InetAddress.getByName(host).isReachable(1000); | ||
} catch (IOException ignored) { | ||
|
||
} | ||
return false; | ||
} | ||
|
||
public static boolean isHostConnected(String host, int port) { | ||
try (Socket socket = new Socket()) { | ||
socket.connect(new InetSocketAddress(host, port), 3000); | ||
InetAddress localAddress = socket.getLocalAddress(); | ||
String hostName = localAddress.getHostName(); | ||
return true; | ||
} catch (Exception e) { | ||
return false; | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -5,4 +5,6 @@ spring: | |
jpa: | ||
hibernate: | ||
ddl-auto: update | ||
show-sql: true | ||
show-sql: true | ||
server: | ||
port: 8080 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.