Kafka实时消息可视化展示平台

   日期:2024-12-26    作者:jnqw888 移动:http://oml01z.riyuangf.com/mobile/quote/49261.html

背景

公司每上线一次打点需求,均需要数据组看下数据,这样效率特别低,数组组在被占用的时间里面,只能乖乖的配合打点测试,监控日志服务器的输出或者卡夫卡消息,而日志服务器和卡夫卡的机器是数据组的,涉及到权限,没法给其他部门或者产品用,因此急需一个kafka可视化界面来测试打点消息。

Kafka实时消息可视化展示平台

这个可视化界面应该包含

1、选择所需要的 topic

2、订阅自己关注的关键字 比如新的版本号等

3、要能实时的展示

基于这几点需求,可以考虑使用 Springboot + websocket 来实现

以下是实现思路,还不够完善,但是已经可以用来满足基本的需求。

代码会有下载链接,先说下思路

1、用 ajax 请求把订阅的信息的一些前台信息传给后台

2、后台启动消费线程,消费到消息通过websocket实时传给前台

3、后台需要设置一个线程,不要过多的浪费资源

4、需要监听哪些topic,怎么过滤

5、一段时间后关闭线程

一些难点

1、websocket 无法注入其他bean,提示null

解决方法:把websocket 类里面的context上下文设置为静态变量,并给出赋值方法,然后在启动类里面设置下

  // WebSocketServer 

// KafkaWebViewApplication 的 main 方法 

2、当无客户端连接的时候,关闭卡夫卡的监听,可以使用事件监听来解耦这些逻辑,有个小细节,最好不要一达到0就去关闭监听,有时候只是用户刷新了页面而已,所以停留五秒钟

 // WebSocketServer 的 onclose 方法

 // 使用 spring 的事件 来实现解耦

 3、消费者监听类

项目源代码

https://download.csdn.net/download/iloveyou_xuxu/10151097

 

遇到的问题

使用这个项目打包的时候会出现上述报错问题,因为spring boot内带tomcat,tomcat中的websocket会有冲突出现问题,因此跳过test编译打包

修改配置文件,然后打包的时候 加上  -DskipTests 即可

 mvn package  -DskipTests

运行界面截图


特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


举报收藏 0评论 0
0相关评论
相关最新动态
推荐最新动态
点击排行
{
网站首页  |  关于我们  |  联系方式  |  使用协议  |  隐私政策  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号