【问题标题】:Azure java function does not scale to handle heavy eventhub messages?Azure java 函数无法扩展以处理繁重的 eventthub 消息?
【发布时间】:2019-10-10 20:29:49
【问题描述】:

我们有一个重型 azure 函数,它使用 eventHub 触发器绑定从 eventHub1 读取数据,进行一些处理并写入另外 2 个 eventthubs(eventhub2 和 eventthub3,具体取决于转换逻辑)。

eventHub1(12 分区)在某一时刻有 2 亿条消息,但是该函数无法扩展以处理整个负载。由于 7 天的保留政策,它在 7 天内只能处理 40% 的负载,最终剩余的消息(1.2 亿条)在 hub 中死亡(未处理)。

6 天前就扩展问题与 MS 创建了支持票证。到目前为止,我们还没有收到他们任何有价值的回复。

想把它介绍给这里的 azure 专家,看看你们过去是否有任何建议或遇到过类似的问题。如果您需要有关扩展问题的更多详细信息,我将非常乐意提供。

 - Function is on consumption plan.
 - EventHub namespace is on standard tier.
 - All the hubs has 12 partitions each.
 - MS Document says function would max have n+1 instance, where n = #of partitions. 
However from live metrics I could see function running on 27 servers instances max.

【问题讨论】:

    标签: java function azure


    【解决方案1】:

    有几件事需要检查:

    1-这是一个负载测试,您是一次添加所有这些事件(但以块的形式)还是在几个小时/几天的工作后才收到?

    2-您是否达到了 TU 单位(吞吐量单位)?

    3-您是否启用了自动充气功能? (https://docs.microsoft.com/en-us/azure/event-hubs/event-hubs-auto-inflate)

    4-您是否考虑过使用专用集群?

    【讨论】:

    • 感谢您的回复。 1. 这是批量加载。我们有 12 个分区和 10 个 TU。 3. 是的,我们确实启用了自动充气。 4.我们没有启用使用专用集群。我们认为我们可以通过标准层实现它。
    • 2号呢?
    • 在处理负载时没有看到 TU 限制已达到。因为我们开启了自动充气功能。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-01
    • 2015-03-07
    • 1970-01-01
    • 2019-09-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多