问题1:
kafka开启事务之后,消费者消费同一个partition的时候,offset在事务前后不是连续的,相差2,数据没丢,只是偏移量下移了。
解析:这种情况是正常的,kafka的一次transaction commit或者abort会打一个事务marker进去,这个marker会占用一个offset。
producer类参数:
11、max.in.flight.requests.per.connection:限制客户端在单个连接上能够发送的未响应请求的个数。设置为1:可以严格保证重试时数据有序,因为只有1个连接,重试前其他不给写入,在响应请求之前client不能在向broker发送请求。默认是5。
10、enable.idempotence:幂等性,只支持单分区的幂等操作,而且重试>0,仅在重试重发该消息保证幂等