Hangzhi233
V2EX  ›  问与答

Flink 如何使用在 feeds 流里?

  •  
  •   Hangzhi233 · Dec 16, 2020 · 617 views
    This topic created in 1987 days ago, the information mentioned may be changed or developed.
    目前使用 redis 回收用户数据,分钟级别刷新到 DB,再新调用内容会从 Redis 里去查。
    内容量变大,redis 会有一些问题,所以想利用 Flink 流式计算来承担一部分 feeds 流更新的功能,比如说点赞计数。
    所以想问 Flink 适合这个场景吗? 以及 Flink 怎么在这个场景里用起来,能承担哪一部分的功能?

    场景:
    下游应用 --- redis ----- db
    问题:
    高峰 api 请求失败率高。
    在 feeds 更新的时候,接受数据-redis 处理-返回成功,这个过程是同步的,也没有消息队列。在流量高峰的时候,如果下游收到了 fail,可能是 redis 没收到,也可能只是算比较慢迟到了。看到 Flink 可以异步 I/O,如果数据到了先返回成功,处理可以排队,这样会不会提高请求的成功率。这个流量的大小不稳定,如果有活动会有很大增长,如果扩机器的话平时用不到,会浪费。
    状态数据的管理
    Redis 里收到的数据会每分钟更新一次 DB,但是只更新最近一分钟的内容。redis 是 kv 结构,除了上报内容之外,还维护了一个数组来记录内容到达时间之类的状态。这样需要双写,看 Flink 有针对状态数据的处理,所以想或许这里可以用。
    No Comments Yet
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5322 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 07:36 · PVG 15:36 · LAX 00:36 · JFK 03:36
    ♥ Do have faith in what you're doing.