Kafka源码调试(三):发送事务消息时的Kafka请求抓包分析

2.3. 日志观察结果

根据观察以上日志得出以下结果:

  1. 一共初始化两次事务id,从命名上看
    1. 主线程生产者的:tx-kafka-0
    2. 消费者线程的:tx-kafka-spring-kafka-evo-consumer-004.TRANSACTION-ONE-TOPIC-1.0
  2. 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. 生产者客户端

  1. 生产者客户端:Client ID: producer-tx-kafka-0
    1. 确定kafka服务支持的api版本
      1. ApiVersions v3
      2. ApiVersions v0
    2. 查找事务协调器:TransactionCoordinator 负责分配 PID(生产者id) 和管理事务
      1. FindCoordinator v1
    3. 找到事务协调器后,生产者向事务协调器讨要生产者id
      1. InitProducerId v0
      2. 事务id:tx-kafka-0
    4. 发送事务消息前,告诉事务协调器,事务涉及到哪些业务主题和分区,允许不同主题不同分区在同一个事务会话中发送,并且统一提交或回滚。
      1. AddPartitionsToTxn v0
    5. 发送业务主题消息,可以在同一个事务会话中,多次调用此api发送不同主题分区的消息
      1. Produce v5
    6. 生产者提交事务,此时对于客户端是事务操作的最后一步,但是对服务端来说,这是提交事务的第一阶段,只是准备提交阶段。
      1. EndTxn v0
    7. 事务提交的第二阶段,协调器收到事务提交事件后,马上给所有涉及到的业务主题分区的 leader 节点发送此请求,要求它们写入控制消息(ControlBatch)用以标记事务结束。当所有业务主题分区成功标记完成后,才会正式更新事务日志状态为已提交,但凡一个标记失败,都将事务内所有提交回滚。
      1. WriteTxnMarkers v0

3.1.2. 消费者组客户端

  1. 消费者客户端:client ID: producer-tx-kafka-spring-kafka-evo-consumer-004.TRANSACTION-ONE-TOPIC-1.1
    1. 确定kafka服务支持的api版本
      1. ApiVersions v3
      2. ApiVersions v0
    2. 因为消费者也开启了事务,需要根据消费者id以及所消费主题和分区,注册一个消费者专属事务id并且讨要一个最新epoch的生产者id。
      1. InitProducerId v0
        1. 事务id:tx-kafka-spring-kafka-evo-consumer-004.TRANSACTION-ONE-TOPIC-1.1,注意消费者注册的事务id是固定由消费者id主题分区拼接成的,没有随机后缀编号,因为消费者事务需要保证幂等性,保证同一时间只有一个消费者能在消费期间发送事务消息。
    3. 添加消费者偏移量到事务日志,事务协调器会根据 Consumer Group 推导该消费者在主题 __consumer_offsets 中的分区,并将该分区保存到主题 __transaction_state,实现消费者与新建事务关联(注意此事务跟上面1.生产者客户端提到的tx-kafka-0事务没有关系,请不要混淆)。
      1. AddOffsetsToTxn v0
    4. 查找消费者组协调器:同样的请求,和查找事务协调器的区别是参数 Corrdinator Type 不一样,1代表事务协调器,0代表消费者组协调器。
      1. FindCoordinator v1
    5. 提交事务消费者消费偏移量,消费者组协调器会将提交的 消费位移量 offsets 存储到主题 __consumer_offsets中。
      1. TxnOffsetCommit v0
    6. 生产者提交事务第一阶段
      1. EndTxn v0
    7. 事务提交第二阶段,完成事务标记
      1. WriteTxnMarkers v0

3.2. 抓包结果详情

3.2.1. Kafka ApiVersions v3

请求

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]

3.2.2. Kafka ApiVersions v0

请求

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)

3.2.6. Kafka Produce v5

请求

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

3.2.7. Kafka EndTxn v0

请求

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]

3.2.9. Kafka ApiVersions v3

请求

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]

3.2.10. Kafka ApiVersions v0

请求

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)

3.2.15. Kafka EndTxn v0

请求

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]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值