应用主要是分析kafka中的日志数据,统计各个接口的tps/qps。实现方式是根据日志中记载的时间戳已接口名为key统计1s中日志中该key(接口)的日志条数,现在由于某些key的日志数据较多,导致keyby之后这些key分配不均匀,数据产生倾斜。进而导致了数据反压问题。
本想着两次聚合,先把每个key加个特定的随机标识,可是因为是要开窗统计1s内的特定key的日志数量,第一次聚合的数据就是打散后的key的1s内的数据了,后面去掉随机标识再聚合的话,数据就不准确了。想请教各位有什么好的办法解决这个问题。
将日志数据转换为Tuple4<String,String,Integer,Integer>
其中4个元素分别为接口名,每条日志中的时间戳,1(一条该接口日志为请求一次),每次请求的响应时间。