引用kafka documentation,Kafka消息生成器配置具有request.timeout.ms
和timeout.ms
属性。阅读这两个属性的描述,我无法清楚地区分它们。
任何人都可以使用小例子解释差异。
答案 0 :(得分:9)
request.timeout.ms
是客户端配置的超时。它表示客户端将等待这么多时间让服务器响应请求。
timeout.ms
是在Kafka群集中的领导者上配置的超时。这是服务器端的超时。例如,如果您将acks设置为all,则服务器将不会响应,直到其所有关注者都已将响应发送回领导者。领导者将等待timeout.ms
一段时间让所有粉丝回复。
因此客户端向服务器(领导者)发送请求。根据acks设置,服务器将等待或响应客户端。 timeout.ms
是领导者等待其关注者的时间量,而request.timeout.ms
是客户端等待服务器(领导者)的时间。
答案 1 :(得分:3)
它们都用于公共底层网络客户端,这意味着等待来自请求的响应的最长时间,尽管timeout.ms被标记为“已弃用'”。实际上,timeout.ms仅用于生产者端,并且可以为客户端(包括生产者和消费者)和服务器(用于复制线程)定义request.timeout.ms。
Kafka建议用户指定request.timeout.ms而不是timeout.ms