Error
| Code
| 重试
| 描述
|
NoError
| 0
|
| 没有错误,执行成功!
|
Unknown
| -1
|
| 未知的server error
|
OffsetOutRange
| 1
|
| 请求的offset值超出了server端维护的对应topic/partition的offset值(可以大于也可以小于)
|
InvalidMessage/CorruptMessage
| 2
| YES
| 消息内容不能通过CRC校验
|
UnknownTopicOrPartition
| 3
| YES
| 请求的topic或partition不再发往的broker上
|
InvalidMessageSize
| 4
|
| 消息的大小为负值
|
LeaderNotAvailable
| 5
| YES
| 请求发生在leader选举过程中时抛出这个异常,此时请求的partition没有leader无法读写
|
NotLeaderForPartition
| 6
| YES
| 在客户端尝试向不是leader的replica写入信息时抛出,意味着客户端的元数据信息过期了
|
RequestTimedOut
| 7
| YES
| request超过了用户指定的时间,一般是值socket超时
|
BrokerNotAvailable
| 8
|
| 这个错误不是client遇到的,往往发生在工具类的请求中
|
ReplicaNotAvailable
| 9
|
| broker上没有期望的replica(可以被安全的忽视)
|
MessageSizeTooLarge
| 10
|
| server有一个最大消息的配置,当client向server端写入超过配置大小的message时抛出
|
StaleControllerEpochCode
| 11
|
| 在broker和broker通信时发生的内部错误
|
OffsetMetadataTooLargeCode
| 12
|
| 如果指定了一个大于配置的offset metadata大小的string
|
GroupLoadInProgressCode
| 14
| YES
| 当topic partition的leader发生变化后,新的leader在load offsets时,offset fetch request请求时抛出,或者在group membership(例如heartbeat)的response中返回当coordinator在load group metadata时
|
GroupCoordinatorNotAvailableCode
| 15
| YES
| offsets topic还没创建或者group coordinator没有active
|
NotCoordinatorForGroupCode
| 16
| YES
| offset fetch或commit request的请求发往一个不是coordinator的节点
|
InvalidTopicCode
| 17
|
| 访问一个不可用的topic或者尝试对内部topic(__consumer_offset)进行写入操作时
|
RecordListTooLargeCode
| 18
|
| 如果produce的message batch超过了配置的segment size
|
NotEnoughReplicasCode
| 19
| YES
| 处于in-sync的replicas数量小于配置的produce要求的最小replicas和requiredAcks=-1
|
NotEnoughReplicasAfterAppendCode
| 20
| YES
| 当message被写入到log后,但是in-sync的replicas数小于需要的
|
InvalidRequiredAcksCode
| 21
|
| 请求的requiredAcks是不可获得的
|
IllegalGenerationCode
| 22
|
| server端的generation id和request中的generation id不一致
|
InconsistentGroupProtocolCode
| 23
|
| 当前group能够接受的protocol type中不包含join group时给出的protocol type
|
InvalidGroupIdCode
| 24
|
| 当join group时groupId为空或者null
|
UnknownMemberIdCode
| 25
|
| 当前generation里group中不包含请求的memberId
|
InvalidSessionTimeoutCode
| 26
|
| join group时超出了配置的request session timeout
|
RebalanceInProgressCode
| 27
|
| 当请求发起时coodinator正在对group进行rebalance,此时client要重新join group
|
InvalidCommitOffsetSizeCode
| 28
|
| 当offset commit超过metadata的最大限制被拒绝时
|
TopicAuthorizationFailedCode
| 29
|
| client没有访问请求的topic的权限时
|
GroupAuthorizationFailedCode
| 30
|
|
|
ClusterAuthorizationFailedCode
| 31
|
|
|
kafka实现了基于tcp的一种通信协议,只要符合通信协议的规范,即可与kafka server进行通信,因而kafka client是跨语言的