我需要配置Kafka never 来删除日志。看看他们的文档,我看到两种控制它的参数:
"日志清理器",在http://kafka.apache.org/documentation.html#compaction中描述。似乎设置log.cleaner.enable = false
会阻止清理程序删除或压缩日志。
&#34;日志保留&#34;机制,在log.retention.<time scales>
log.retention.ms = -1
下描述。似乎设置enum class FEATURE
{
F1,
F2,
F3,
F4
};
typedef struct feature_config {
std::map<FEATURE, std :: vector<int> > f_conf;
} Config;
typedef struct my_key{
const Config key_f_config = {
.f_conf = {
{FEATURE::F1,{20,25,30,35,40,45,50,55}},
{FEATURE::F2,{20,30,40,50,60,70,80,90,120}},
{FEATURE::F3,{0,25,50,75,100}},
{FEATURE::F4,{10,20}}
}
};
vector<int> key_data;
} KEY;
表示无限保留。
我的问题是:
这两种机制之间的关系是什么,这些只有两种,上述设置是否必要且足以防止日志被删除?
答案 0 :(得分:5)
不确定您使用的是哪个版本。对我来说,我用这个:
log.retention.hours=2147483647
这大约是245,000年。我相信我在某个时候尝试了-1
,但是使用了最大值。也许log.retention.ms
接受不同的值,但无论如何 - 第二个配置选项应该足够了。我的猜测是没有必要选择;要么就足够了。当然,第二个就足够了。
答案 1 :(得分:0)
如this回答中所述,您可以为log.retention.hours
和log.retention.bytes
设置-1。