...
1// Introduced for KIP-630, FetchSnapshotRequest is a part of the inter-Kafka
2// raft protocol to remove the dependency on Zookeeper.
3FetchSnapshotRequest => key 59, max version 0, flexible v0+
4 // The ClusterID if known, this is used to validate metadata fetches prior to
5 // broker registration.
6 ClusterID: nullable-string // tag 0
7 // The broker ID of the follower.
8 ReplicaID: int32(-1)
9 // The maximum bytes to fetch from all of the snapshots.
10 MaxBytes: int32(0x7fffffff)
11 // The topics to fetch.
12 Topics: [=>]
13 // The name of the topic to fetch.
14 Topic: string
15 // The partitions to fetch.
16 Partitions: [=>]
17 // The partition to fetch.
18 Partition: int32
19 // The current leader epoch of the partition, or -1 for an unknown leader epoch.
20 CurrentLeaderEpoch: int32
21 // The snapshot end offset and epoch to fetch.
22 SnapshotID: =>
23 EndOffset: int64
24 Epoch: int32
25 // The byte position within the snapshot to start fetching from.
26 Position: int64
27
28// FetchSnapshotResponse is a response for a FetchSnapshotRequest.
29FetchSnapshotResponse =>
30 ThrottleMillis
31 // The top level response error code.
32 ErrorCode: int16
33 // The topics to fetch.
34 Topics: [=>]
35 // The name of the topic to fetch.
36 Topic: string
37 // The partitions to fetch.
38 Partitions: [=>]
39 // The partition.
40 Partition: int32
41 // An error code, or 0 if there was no fetch error.
42 ErrorCode: int16
43 // The snapshot end offset and epoch to fetch.
44 SnapshotID: =>
45 EndOffset: int64
46 Epoch: int32
47 // The ID of the current leader (or -1 if unknown) and the latest known
48 // leader epoch.
49 CurrentLeader: => // tag 0
50 LeaderID: int32
51 LeaderEpoch: int32
52 // The total size of the snapshot.
53 Size: int64
54 // The starting byte position within the snapshot included in the Bytes
55 // field.
56 Position: int64
57 // Snapshot data.
58 Bytes: bytes
View as plain text