// The level of acknowledgement reliability needed from the broker (defaults
// to WaitForLocal). Equivalent to the `request.required.acks` setting of the JVM producer.
// 等同于jvm kafka中的`request.required.acks`
RequiredAcks RequiredAcks
type RequiredAcks int16
const (
// 第一个模式,NoResponse doesn't send any response, the TCP ACK isall you get.
NoResponse RequiredAcks = 0
//第二个模式, WaitForLocal waits for only the local commit to succeed before responding.
WaitForLocal RequiredAcks = 1
// 第三个模式,WaitForAll waits forallin-sync replicas to commit before responding.
// The minimum number ofin-sync replicas is configured on the broker via
// the `min.insync.replicas` configuration key.
WaitForAll RequiredAcks = -1
)
如果RequiredAcks设置为0,在这种情况下,服务器是否收到请求是没法保证的,并且参数retries(重发)也不会生效(因为客户端无法获得失败信息)。此时提供的是At most once的语义。
如果RequiredAcks大于0,producer在没有收到应答的情况下,会进行重发,此时提供的是At least once的语义。