目前实现了基于offset分散的cpu尖刺解决方案,但是改方案需要业务统一语义变更。比如基于ip的5min统计,我通过hash将不同ip哈希得到不同offset,使用滚动5min窗口+hash到的offset分窗,效果OK。
但如果部分业务不希望窗口上加offset,就需要如上最初想的这个方案了。

yidan zhao <[email protected]> 于2021年8月31日周二 下午3:19写道:

> 不过目前我覆盖实现过很多flink的api,都很难受,因为各种要么private,要么没有get/set,导致只能覆盖实现。没办法继承调整部分实现。
>
> 刚刚看了下,这个思路实现的话,目前需要自定义个 window 类,不使用
> TimeWindow,需要在window中记录下触发时间,否则trigger的onEventTime方法回调中没办法确认是否当前元素的触发时机。
>
> 或者triggerContext提供currentKey,但我看了TriggerContext中有key,但是没提供getCurrentKey方法,导致。。。
>
> yidan zhao <[email protected]> 于2021年8月31日周二 下午3:16写道:
>
>> cpu尖刺平滑呀。
>>
>> Shuo Cheng <[email protected]> 于2021年8月31日周二 下午3:14写道:
>>
>>> 这样做是要达到设么目的呢? 目前的触发机制以及 early/late fire 满足不了需求么?
>>>
>>> On 8/31/21, yidan zhao <[email protected]> wrote:
>>> > 如题,我目前计划自定义event time trigger实现分散触发。
>>> > 比如0-5的窗口分散到6-11分触发, 从6开始是因为本身有个1min的乱序处理。
>>> > 同时配合将allowedlateness设置为5min,这样避免窗口状态在触发之前被clean。
>>> >
>>> > 不知道想法是否OK呢?
>>> >
>>>
>>

回复