apache-kafka - 为什么 kafka 流状态目录位于 /tmp/kafka-streams 中?
问题描述
我不确定它是否已经回答。由于我没有得到正确的解释,所以在这里发布我的问题。
为什么kafka流state.dir
存储在下/tmp/kafka-streams
?
我知道我可以通过在流代码中提供状态目录配置来更改路径,如下所示
StreamsConfig.STATE_DIR_CONFIG,"/var/abc-Streams"
但是更改目录会有什么影响吗?
或者
我可以在应用程序目录中而不是在/tmp
.
根据融合文档,对于:
Stateful
操作:
automatically creates and manages such state stores when you are calling stateful operators such as count() or aggregate(), or when you are windowing a stream
但没有具体说明它的存储位置。
有什么想法吗?
解决方案
为什么 kafka 流 state.dir 存储在 /tmp/kafka-streams 下?
有几个原因。
- 通常
/tmp
目录有一个默认的写权限。因此,作为初学者,您不必为写权限而苦苦挣扎。 /tmp
目录是短暂的目录。每次系统重新启动时,它都会被清除,因此如果您忘记删除state.dir
. 缺点是,您会丢失之前运行的状态,因此您需要从头开始重建状态。
如果要重用 中存储的状态state.dir
,则应将其存储在除/tmp
.
所有状态存储都存储在中指定的位置state.dir
。如果未指定,则为/tmp/kafka-streams/<app-id>
目录。
推荐阅读
- php - Laravel - 多对多多态关系 - 获取、更新、删除附加字段
- list - Ansible 与 dict 的合并列表
- python - 如何运行协程并从同步函数中已经运行的`asyncio``loop`获取结果?
- newrelic - 如何监控云中的 .NET (Core) 应用程序?
- oracle - ORACLE 11G中如何导出空表?
- html - 如何使用引导程序实现 100% 宽度
- android - 如何在相机打开和图像捕获之前使用 camera2 API 或 CameraX 库捕获/获取相机白平衡值
- java - Spring java config调用带有私有构造函数的单例类的公共非静态方法
- angular - 是否可以从另一个服务/组件调用 ConfirmationService?
- google-apps-script - 由于缺少明确的范围,无法发布 Google 日历插件 - 但为什么呢?