实时流碰上高并发?
这是之前在处理一个实时流数据上碰到的。
之前背过很多,类似的关于高并发问题的一些官样文章。初读起来,总感觉索然无味。好像和幼儿园里把大象放进冰箱里的故事一样。
在业务中碰到的情况很特别。
同一个用户,会在同一个时间点有多条订单,即使把时间精确到 00:00:00,依然发现无法区分。前辈提醒后,才发现这其实是一种高并发的情况。
在Flink实时流里,通常碰到高并发的情况下,会进行一次打乱操作。在SQL任务中,我忘记进行了这种操作,后来发现其实是有这样的key by 参数。
大约可以这样处理。
在处理的时候,通过key by 的操作,会将并发数据存储同一个kafka topic上的逻辑分区。也就是虽然之前是并发的,但在key by操作之后,实现了在逻辑存储上的先后,也就让并发数据在被加工的时候有了一个先后。
虽然其实,处理过程没有八股中纷繁复杂的招式,但是其实体会这个过程确实是很美妙,有一种身处其中的快感。