sarama是golang对kafka操作的封装,在使用过程中主要遇到如下的问题,总结如下:
kafka的error的处理
kakfa的error处理是通过一个 chan <-error 如果不处理error当发生error的时候会造成协程阻塞,导致协程夯住
这里建议放在另一个协程处理,防止处理error影响了message的处理
1 | go func() { |
sarma-cluster的作用
这个包最大的用处是autocommit offset
封装按照timestamp和condition消费制定offset的数据
首先,根据key找到partiton,根据timestamp找到offset,然后过滤condition。
1 | // PartitionClientConnector 封装kafka的client |