2.3. 日志观察结果
根据观察以上日志得出以下结果:
- 一共初始化两次事务id,从命名上看
- 主线程生产者的:
tx-kafka-0
- 消费者线程的:
tx-kafka-spring-kafka-evo-consumer-004.TRANSACTION-ONE-TOPIC-1.0
- 主线程生产者的:
- Kafka服务端产生的日志,出现了一个关键类:
TransactionCoordinator
,可以用于继续断点探索
3. 抓包分析
wireshark 捕获条件:kafka and kafka.api_key and !(kafka.api_key == 1) and !(kafka.api_key == 3)
- kafka协议
- 存在
api_key
字段 api_key
的值不是1(Fetch请求)api_key
的值不是3(Metadata请求)
3.1. 抓包结果概述
3.1.1. 生产者客户端
- 生产者客户端:Client ID:
producer-tx-kafka-0
- 确定kafka服务支持的api版本
- 查找事务协调器:
TransactionCoordinator
负责分配 PID(生产者id) 和管理事务 - 找到事务协调器后,生产者向事务协调器讨要生产者id
- InitProducerId v0
- 事务id:
tx-kafka-0
- 发送事务消息前,告诉事务协调器,事务涉及到哪些业务主题和分区,允许不同主题不同分区在同一个事务会话中发送,并且统一提交或回滚。
- 发送业务主题消息,可以在同一个事务会话中,多次调用此api发送不同主题分区的消息
- 生产者提交事务,此时对于客户端是事务操作的最后一步,但是对服务端来说,这是提交事务的第一阶段,只是准备提交阶段。
- 事务提交的第二阶段,协调器收到事务提交事件后,马上给所有涉及到的业务主题分区的 leader 节点发送此请求,要求它们写入控制消息(
ControlBatch
)用以标记事务结束。当所有业务主题分区成功标记完成后,才会正式更新事务日志状态为已提交,但凡一个标记失败,都将事务内所有提交回滚。
3.1.2. 消费者组客户端
- 消费者客户端:client ID:
producer-tx-kafka-spring-kafka-evo-consumer-004.TRANSACTION-ONE-TOPIC-1.1
- 确定kafka服务支持的api版本
- 因为消费者也开启了事务,需要根据消费者id以及所消费主题和分区,注册一个消费者专属事务id并且讨要一个最新epoch的生产者id。
- InitProducerId v0
- 事务id:
tx-kafka-spring-kafka-evo-consumer-004.TRANSACTION-ONE-TOPIC-1.1
,注意消费者注册的事务id是固定由消费者id主题分区拼接成的,没有随机后缀编号,因为消费者事务需要保证幂等性,保证同一时间只有一个消费者能在消费期间发送事务消息。
- 事务id:
- InitProducerId v0
- 添加消费者偏移量到事务日志,事务协调器会根据
Consumer Group
推导该消费者在主题__consumer_offsets
中的分区,并将该分区保存到主题__transaction_state
,实现消费者与新建事务关联(注意此事务跟上面1.生产者客户端提到的tx-kafka-0
事务没有关系,请不要混淆)。 - 查找消费者组协调器:同样的请求,和查找事务协调器的区别是参数
Corrdinator Type
不一样,1
代表事务协调器,0
代表消费者组协调器。 - 提交事务消费者消费偏移量,消费者组协调器会将提交的 消费位移量 offsets 存储到主题
__consumer_offsets
中。 - 生产者提交事务第一阶段
- 事务提交第二阶段,完成事务标记
3.2. 抓包结果详情
请求
Transmission Control Protocol, Src Port: 64286, Dst Port: 9092, Seq: 1, Ack: 1, Len: 59
Kafka (ApiVersions v3 Request)
Length: 55
API Key: ApiVersions (18)
API Version: 3
Correlation ID: 0
Client ID: producer-tx-kafka-0
Tagged fields
Client Software Name: apache-kafka-java
Client Software Version: 3.1.2
Tagged fields
响应
Transmission Control Protocol, Src Port: 9092, Dst Port: 64286, Seq: 1, Ack: 60, Len: 14
Kafka (ApiVersions v3 Response)
Length: 10
Correlation ID: 0
[Request Frame: 268929]
[API Key: ApiVersions (18)]
[API Version: 3]
Error: Unsupported version (35)
[Malformed Packet: Kafka]
[Expert Info (Error/Malformed): Malformed Packet (Exception occurred)]
[Malformed Packet (Exception occurred)]
[Severity level: Error]
[Group: Malformed]
请求
Transmission Control Protocol, Src Port: 64286, Dst Port: 9092, Seq: 60, Ack: 15, Len: 33
Kafka (ApiVersions v0 Request)
Length: 29
API Key: ApiVersions (18)
API Version: 0
Correlation ID: 1
Client ID: producer-tx-kafka-0
响应
Transmission Control Protocol, Src Port: 9092, Dst Port: 64286, Seq: 15, Ack: 93, Len: 272
Kafka (ApiVersions v0 Response)
Length: 268
Correlation ID: 1
[Request Frame: 268935]
[API Key: ApiVersions (18)]
[API Version: 0]
Error: No Error (0)
API Version Produce (v0-5)
API Version Fetch (v0-7)
API Version Offsets (v0-2)
API Version Metadata (v0-5)
API Version LeaderAndIsr (v0-1)
API Version StopReplica (v0)
API Version UpdateMetadata (v0-4)
API Version ControlledShutdown (v0-1)
API Version OffsetCommit (v0-3)
API Version OffsetFetch (v0-3)
API Version FindCoordinator (v0-1)
API Version JoinGroup (v0-2)
API Version Heartbeat (v0-1)
API Version LeaveGroup (v0-1)
API Version SyncGroup (v0-1)
API Version DescribeGroups (v0-1)
API Version ListGroups (v0-1)
API Version SaslHandshake (v0-1)
API Version ApiVersions (v0-1)
API Version CreateTopics (v0-2)
API Version DeleteTopics (v0-1)
API Version DeleteRecords (v0)
API Version InitProducerId (v0)
API Version OffsetForLeaderEpoch (v0)
API Version AddPartitionsToTxn (v0)
API Version AddOffsetsToTxn (v0)
API Version EndTxn (v0)
API Version WriteTxnMarkers (v0)
API Version TxnOffsetCommit (v0)
API Version DescribeAcls (v0)
API Version CreateAcls (v0)
API Version DeleteAcls (v0)
API Version DescribeConfigs (v0-1)
API Version AlterConfigs (v0)
API Version AlterReplicaLogDirs (v0)
API Version DescribeLogDirs (v0)
API Version SaslAuthenticate (v0)
API Version CreatePartitions (v0)
API Version CreateDelegationToken (v0)
API Version RenewDelegationToken (v0)
API Version ExpireDelegationToken (v0)
API Version DescribeDelegationToken (v0)
API Version DeleteGroups (v0)
3.2.3. Kafka FindCoordinator v1
首次请求(失败)
Transmission Control Protocol, Src Port: 64286, Dst Port: 9092, Seq: 131, Ack: 287, Len: 46
Kafka (FindCoordinator v1 Request)
Length: 42
API Key: FindCoordinator (10)
API Version: 1
Correlation ID: 3
Client ID: producer-tx-kafka-0
Coordinator Key: tx-kafka-0
Coordinator Type: Transaction (1)
响应(失败)
Transmission Control Protocol, Src Port: 9092, Dst Port: 64286, Seq: 359, Ack: 177, Len: 26
Kafka (FindCoordinator v1 Response)
Length: 22
Correlation ID: 3
[Request Frame: 268943]
[API Key: FindCoordinator (10)]
[API Version: 1]
Throttle time: 0
Error: The Coordinator is not Available (15)
Error Message: [ Null ]
Coordinator (none)
Node ID: -1
Host:
Port: -1
重复尝试请求(直到成功):
Frame 275297: 90 bytes on wire (720 bits), 90 bytes captured (720 bits) on interface \Device\NPF_Loopback, id 0
Null/Loopback
Internet Protocol Version 4, Src: 192.168.136.1, Dst: 192.168.136.1
Transmission Control Protocol, Src Port: 64287, Dst Port: 9092, Seq: 1887, Ack: 1301, Len: 46
Kafka (FindCoordinator v1 Request)
Length: 42
API Key: FindCoordinator (10)
API Version: 1
Correlation ID: 45
Client ID: producer-tx-kafka-0
Coordinator Key: tx-kafka-0
Coordinator Type: Transaction (1)
重复尝试响应(直到成功)
Frame 275317: 82 bytes on wire (656 bits), 82 bytes captured (656 bits) on interface \Device\NPF_Loopback, id 0
Null/Loopback
Internet Protocol Version 4, Src: 192.168.136.1, Dst: 192.168.136.1
Transmission Control Protocol, Src Port: 9092, Dst Port: 64287, Seq: 1301, Ack: 1933, Len: 38
Kafka (FindCoordinator v1 Response)
Length: 34
Correlation ID: 45
[Request Frame: 275297]
[API Key: FindCoordinator (10)]
[API Version: 1]
Throttle time: 0
Error: No Error (0)
Error Message: [ Null ]
Coordinator (node 0: KIT-DP-A0010:9092)
Node ID: 0
Host: KIT-DP-A0010
Port: 9092
3.2.4. Kafka InitProducerId v0
请求
Transmission Control Protocol, Src Port: 64287, Dst Port: 9092, Seq: 1933, Ack: 1339, Len: 49
Kafka (InitProducerId v0 Request)
Length: 45
API Key: InitProducerId (22)
API Version: 0
Correlation ID: 46
Client ID: producer-tx-kafka-0
Transactional ID: tx-kafka-0
Transaction Timeout: 60000
响应
Transmission Control Protocol, Src Port: 9092, Dst Port: 64287, Seq: 1339, Ack: 1982, Len: 24
Kafka (InitProducerId v0 Response)
Length: 20
Correlation ID: 46
[Request Frame: 275349]
[API Key: InitProducerId (22)]
[API Version: 0]
Throttle time: 0
Error: No Error (0)
Producer ID: 3000
Producer Epoch: 0
3.2.5. Kafka AddPartitionsToTxn v0
请求
Transmission Control Protocol, Src Port: 64287, Dst Port: 9092, Seq: 2045, Ack: 1527, Len: 92
Kafka (AddPartitionsToTxn v0 Request)
Length: 88
API Key: AddPartitionsToTxn (24)
API Version: 0
Correlation ID: 48
Client ID: producer-tx-kafka-0
Transactional ID: tx-kafka-0
Producer ID: 3000
Producer Epoch: 0
Topics
Topic (Topic=TRANSACTION-ONE-TOPIC-1)
Topic Name: TRANSACTION-ONE-TOPIC-1
Partitions
Partition ID: 1
响应
Transmission Control Protocol, Src Port: 9092, Dst Port: 64287, Seq: 1527, Ack: 2137, Len: 51
Kafka (AddPartitionsToTxn v0 Response)
Length: 47
Correlation ID: 48
[Request Frame: 276329]
[API Key: AddPartitionsToTxn (24)]
[API Version: 0]
Throttle time: 0
Topics
Topic (Topic=TRANSACTION-ONE-TOPIC-1)
Topic Name: TRANSACTION-ONE-TOPIC-1
Partitions
Partition (ID=1)
请求
Transmission Control Protocol, Src Port: 64287, Dst Port: 9092, Seq: 2137, Ack: 1578, Len: 219
Kafka (Produce v5 Request)
Length: 215
API Key: Produce (0)
API Version: 5
Correlation ID: 49
Client ID: producer-tx-kafka-0
Transactional ID: tx-kafka-0
Required Acks: Full ISR (-1)
Timeout: 30000
Topic (Name=TRANSACTION-ONE-TOPIC-1)
Topic Name: TRANSACTION-ONE-TOPIC-1
Partition (ID=1)
Partition ID: 1
Message Set
Record Batch
Offset: 0
Message Size: 115
Leader Epoch: -1
Magic Byte: 2
CRC32: 0xf59489ba
.... .... .... .000 = Compression Codec: None (0)
.... .... .... 0... = Timestamp Type: CreateTime (0)
.... .... ...1 .... = Transactional: Transactional (1)
.... .... ..0. .... = Control Batch: Data batch (0)
Last Offset Delta: 0
First Timestamp: Jan 1, 1970 00:06:30.2034383387 UTC
Last Timestamp: Jan 1, 1970 00:06:30.2034383387 UTC
Producer ID: 3000
Producer Epoch: 0
Base Sequence: 0
Size: 1
Record
Record Attributes (reserved): 0
Timestamp: Feb 22, 2023 13:13:48.827000000 UTC
Offset: 0
Key: <NULL>
Value: "这是发送kafka消息体"
Headers
Header (Key: spring.message.value.type)
Header Key: spring.message.value.type
Header Value: "java.lang.String"
响应
Transmission Control Protocol, Src Port: 9092, Dst Port: 64287, Seq: 1578, Ack: 2356, Len: 75
Kafka (Produce v5 Response)
Length: 71
Correlation ID: 49
[Request Frame: 276423]
[API Key: Produce (0)]
[API Version: 5]
Topic
Topic Name: TRANSACTION-ONE-TOPIC-1
Partition (ID=1, Offset=0)
Partition ID: 1
Error: No Error (0)
Offset: 0
Time: -1 (latest)
Log Start Offset: 0
Throttle time: 0
请求
Transmission Control Protocol, Src Port: 64287, Dst Port: 9092, Seq: 2356, Ack: 1653, Len: 56
Kafka (EndTxn v0 Request)
Length: 52
API Key: EndTxn (26)
API Version: 0
Correlation ID: 50
Client ID: producer-tx-kafka-0
Transactional ID: tx-kafka-0
Producer ID: 3000
Producer Epoch: 0
Transaction Result: COMMIT (1)
响应
Transmission Control Protocol, Src Port: 9092, Dst Port: 64287, Seq: 1653, Ack: 2412, Len: 14
Kafka (EndTxn v0 Response)
Length: 10
Correlation ID: 50
[Request Frame: 276557]
[API Key: EndTxn (26)]
[API Version: 0]
Throttle time: 0
Error: No Error (0)
3.2.8. Kafka WriteTxnMarkers v0
请求
Transmission Control Protocol, Src Port: 64293, Dst Port: 9092, Seq: 1, Ack: 1, Len: 96
Kafka (WriteTxnMarkers v0 Request)
Length: 92
API Key: WriteTxnMarkers (27)
API Version: 0
Correlation ID: 0
Client ID: broker-0-txn-marker-sender
Markers
Marker (Producer=3000)
Producer ID: 3000
Producer Epoch: 0
Transaction Result: COMMIT (1)
Topics
Topic (Topic=TRANSACTION-ONE-TOPIC-1)
Topic Name: TRANSACTION-ONE-TOPIC-1
Partitions
Partition ID: 1
Coordinator Epoch: 0
响应
Transmission Control Protocol, Src Port: 9092, Dst Port: 64293, Seq: 1, Ack: 97, Len: 59
Kafka (WriteTxnMarkers v0 Response)
Length: 55
Correlation ID: 0
[Request Frame: 276640]
[API Key: WriteTxnMarkers (27)]
[API Version: 0]
Throttle time: 1
Markers
[Expert Info (Warning/Malformed): Dissected message does not end at the pdu length offset]
[Dissected message does not end at the pdu length offset]
[Severity level: Warning]
[Group: Malformed]
请求
Transmission Control Protocol, Src Port: 64297, Dst Port: 9092, Seq: 1, Ack: 1, Len: 113
Kafka (ApiVersions v3 Request)
Length: 109
API Key: ApiVersions (18)
API Version: 3
Correlation ID: 4
Client ID: producer-tx-kafka-spring-kafka-evo-consumer-004.TRANSACTION-ONE-TOPIC-1.1
Tagged fields
Client Software Name: apache-kafka-java
Client Software Version: 3.1.2
Tagged fields
响应
Transmission Control Protocol, Src Port: 9092, Dst Port: 64297, Seq: 1, Ack: 114, Len: 14
Kafka (ApiVersions v3 Response)
Length: 10
Correlation ID: 4
[Request Frame: 276835]
[API Key: ApiVersions (18)]
[API Version: 3]
Error: Unsupported version (35)
[Malformed Packet: Kafka]
[Expert Info (Error/Malformed): Malformed Packet (Exception occurred)]
[Malformed Packet (Exception occurred)]
[Severity level: Error]
[Group: Malformed]
请求
Transmission Control Protocol, Src Port: 64297, Dst Port: 9092, Seq: 114, Ack: 15, Len: 87
Kafka (ApiVersions v0 Request)
Length: 83
API Key: ApiVersions (18)
API Version: 0
Correlation ID: 5
Client ID: producer-tx-kafka-spring-kafka-evo-consumer-004.TRANSACTION-ONE-TOPIC-1.1
响应
Transmission Control Protocol, Src Port: 9092, Dst Port: 64297, Seq: 15, Ack: 201, Len: 272
Kafka (ApiVersions v0 Response)
Length: 268
Correlation ID: 5
[Request Frame: 276841]
[API Key: ApiVersions (18)]
[API Version: 0]
Error: No Error (0)
API Version Produce (v0-5)
API Version Fetch (v0-7)
API Version Offsets (v0-2)
API Version Metadata (v0-5)
API Version LeaderAndIsr (v0-1)
API Version StopReplica (v0)
API Version UpdateMetadata (v0-4)
API Version ControlledShutdown (v0-1)
API Version OffsetCommit (v0-3)
API Version OffsetFetch (v0-3)
API Version FindCoordinator (v0-1)
API Version JoinGroup (v0-2)
API Version Heartbeat (v0-1)
API Version LeaveGroup (v0-1)
API Version SyncGroup (v0-1)
API Version DescribeGroups (v0-1)
API Version ListGroups (v0-1)
API Version SaslHandshake (v0-1)
API Version ApiVersions (v0-1)
API Version CreateTopics (v0-2)
API Version DeleteTopics (v0-1)
API Version DeleteRecords (v0)
API Version InitProducerId (v0)
API Version OffsetForLeaderEpoch (v0)
API Version AddPartitionsToTxn (v0)
API Version AddOffsetsToTxn (v0)
API Version EndTxn (v0)
API Version WriteTxnMarkers (v0)
API Version TxnOffsetCommit (v0)
API Version DescribeAcls (v0)
API Version CreateAcls (v0)
API Version DeleteAcls (v0)
API Version DescribeConfigs (v0-1)
API Version AlterConfigs (v0)
API Version AlterReplicaLogDirs (v0)
API Version DescribeLogDirs (v0)
API Version SaslAuthenticate (v0)
API Version CreatePartitions (v0)
API Version CreateDelegationToken (v0)
API Version RenewDelegationToken (v0)
API Version ExpireDelegationToken (v0)
API Version DescribeDelegationToken (v0)
API Version DeleteGroups (v0)
3.2.11. Kafka InitProducerId v0
请求
Transmission Control Protocol, Src Port: 64297, Dst Port: 9092, Seq: 201, Ack: 287, Len: 157
Kafka (InitProducerId v0 Request)
Length: 153
API Key: InitProducerId (22)
API Version: 0
Correlation ID: 6
Client ID: producer-tx-kafka-spring-kafka-evo-consumer-004.TRANSACTION-ONE-TOPIC-1.1
Transactional ID: tx-kafka-spring-kafka-evo-consumer-004.TRANSACTION-ONE-TOPIC-1.1
Transaction Timeout: 60000
响应
Transmission Control Protocol, Src Port: 9092, Dst Port: 64297, Seq: 287, Ack: 358, Len: 24
Kafka (InitProducerId v0 Response)
Length: 20
Correlation ID: 6
[Request Frame: 276862]
[API Key: InitProducerId (22)]
[API Version: 0]
Throttle time: 0
Error: No Error (0)
Producer ID: 3001
Producer Epoch: 0
3.2.12. Kafka AddOffsetsToTxn v0
请求
Transmission Control Protocol, Src Port: 64297, Dst Port: 9092, Seq: 358, Ack: 311, Len: 194
Kafka (AddOffsetsToTxn v0 Request)
Length: 190
API Key: AddOffsetsToTxn (25)
API Version: 0
Correlation ID: 7
Client ID: producer-tx-kafka-spring-kafka-evo-consumer-004.TRANSACTION-ONE-TOPIC-1.1
Transactional ID: tx-kafka-spring-kafka-evo-consumer-004.TRANSACTION-ONE-TOPIC-1.1
Producer ID: 3001
Producer Epoch: 0
Consumer Group: spring-kafka-evo-consumer-004
响应
Transmission Control Protocol, Src Port: 9092, Dst Port: 64297, Seq: 311, Ack: 552, Len: 14
Kafka (AddOffsetsToTxn v0 Response)
Length: 10
Correlation ID: 7
[Request Frame: 276941]
[API Key: AddOffsetsToTxn (25)]
[API Version: 0]
Throttle time: 0
Error: No Error (0)
3.2.13. Kafka FindCoordinator v1
请求
Transmission Control Protocol, Src Port: 64297, Dst Port: 9092, Seq: 552, Ack: 325, Len: 119
Kafka (FindCoordinator v1 Request)
Length: 115
API Key: FindCoordinator (10)
API Version: 1
Correlation ID: 8
Client ID: producer-tx-kafka-spring-kafka-evo-consumer-004.TRANSACTION-ONE-TOPIC-1.1
Coordinator Key: spring-kafka-evo-consumer-004
Coordinator Type: Group (0)
响应
Transmission Control Protocol, Src Port: 9092, Dst Port: 64297, Seq: 325, Ack: 671, Len: 38
Kafka (FindCoordinator v1 Response)
Length: 34
Correlation ID: 8
[Request Frame: 276975]
[API Key: FindCoordinator (10)]
[API Version: 1]
Throttle time: 0
Error: No Error (0)
Error Message: [ Null ]
Coordinator (node 0: KIT-DP-A0010:9092)
Node ID: 0
Host: KIT-DP-A0010
Port: 9092
3.2.14. Kafka TxnOffsetCommit v0
请求
Transmission Control Protocol, Src Port: 64297, Dst Port: 9092, Seq: 671, Ack: 363, Len: 241
Kafka (TxnOffsetCommit v0 Request)
Length: 237
API Key: TxnOffsetCommit (28)
API Version: 0
Correlation ID: 9
Client ID: producer-tx-kafka-spring-kafka-evo-consumer-004.TRANSACTION-ONE-TOPIC-1.1
Transactional ID: tx-kafka-spring-kafka-evo-consumer-004.TRANSACTION-ONE-TOPIC-1.1
Consumer Group: spring-kafka-evo-consumer-004
Producer ID: 3001
Producer Epoch: 0
Topics
Topic (Topic=TRANSACTION-ONE-TOPIC-1)
Topic Name: TRANSACTION-ONE-TOPIC-1
Partitions
Partition (ID=1, Offset=1)
Partition ID: 1
Offset: 1
Metadata:
响应
Transmission Control Protocol, Src Port: 9092, Dst Port: 64297, Seq: 363, Ack: 912, Len: 51
Kafka (TxnOffsetCommit v0 Response)
Length: 47
Correlation ID: 9
[Request Frame: 277013]
[API Key: TxnOffsetCommit (28)]
[API Version: 0]
Throttle time: 0
Topics
Topic (Topic=TRANSACTION-ONE-TOPIC-1)
Topic Name: TRANSACTION-ONE-TOPIC-1
Partitions
Partition (ID=1)
Partition ID: 1
Error: No Error (0)
请求
Transmission Control Protocol, Src Port: 64297, Dst Port: 9092, Seq: 912, Ack: 414, Len: 164
Kafka (EndTxn v0 Request)
Length: 160
API Key: EndTxn (26)
API Version: 0
Correlation ID: 10
Client ID: producer-tx-kafka-spring-kafka-evo-consumer-004.TRANSACTION-ONE-TOPIC-1.1
Transactional ID: tx-kafka-spring-kafka-evo-consumer-004.TRANSACTION-ONE-TOPIC-1.1
Producer ID: 3001
Producer Epoch: 0
Transaction Result: COMMIT (1)
响应
Transmission Control Protocol, Src Port: 9092, Dst Port: 64297, Seq: 414, Ack: 1076, Len: 14
Kafka (EndTxn v0 Response)
Length: 10
Correlation ID: 10
[Request Frame: 277141]
[API Key: EndTxn (26)]
[API Version: 0]
Throttle time: 0
Error: No Error (0)
3.2.16. Kafka WriteTxnMarkers v0
请求
Transmission Control Protocol, Src Port: 64293, Dst Port: 9092, Seq: 97, Ack: 60, Len: 91
Kafka (WriteTxnMarkers v0 Request)
Length: 87
API Key: WriteTxnMarkers (27)
API Version: 0
Correlation ID: 1
Client ID: broker-0-txn-marker-sender
Markers
Marker (Producer=3001)
Producer ID: 3001
Producer Epoch: 0
Transaction Result: COMMIT (1)
Topics
Topic (Topic=__consumer_offsets)
Topic Name: __consumer_offsets
Partitions
Partition ID: 15
Coordinator Epoch: 0
响应
Transmission Control Protocol, Src Port: 9092, Dst Port: 64293, Seq: 60, Ack: 188, Len: 54
Kafka (WriteTxnMarkers v0 Response)
Length: 50
Correlation ID: 1
[Request Frame: 277151]
[API Key: WriteTxnMarkers (27)]
[API Version: 0]
Throttle time: 1
Markers
[Expert Info (Warning/Malformed): Dissected message does not end at the pdu length offset]
[Dissected message does not end at the pdu length offset]
[Severity level: Warning]
[Group: Malformed]