我正在使用来自 Kafka 的事件并将它们直接写入 Java 应用程序中 GCS 的存储桶中。每个事件都写在路径
bucketName/categoryId(random UUID)/eventId(random UUID)
中,其中每个类别最多包含 500 个事件,并且它们在时间上或多或少地彼此接近。我用来插入事件的方法是:
storage.create(blobinfo, compressedData, doesNotExist());
我得到的请求率为 6 个事件/秒,而 文档 表示 GCS 可以处理大约 1000 个事件/秒。这个速率不足以消耗我的事件流,因为生产者每秒创建大约 100 个事件。
有什么办法可以进一步加快这个用例的速度吗?
首先,请确保处理事件的速率实际上是由 GCS 控制的,而不是由计算基础设施的其余部分控制的。尝试忽略对 GCS 的写入,看看性能如何。您没有说明您是如何进行基准测试的,因此总体来说很难接受您所观察到的内容。
之后(除了您所显示的内容之外,看不到任何更多详细信息),您唯一可以合理做的就是将您的计算移近您的数据。这意味着将 GCS 存储桶的区域更改为更接近您的计算,反之亦然。每次写入至少会导致存储桶进行 1 次完整的往返,并且您需要最小化其中所覆盖的距离。