Top Banner
Apache Kafka 0.11 Exactly Once Semantics / @laclefyoshi / [email protected]
25

Apache Kafka 0.11 の Exactly Once Semantics

Jan 28, 2018

Download

Technology

Yoshiyasu SAEKI
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Apache Kafka 0.11 の Exactly Once Semantics

Apache Kafka 0.11 Exactly Once Semantics

/ @laclefyoshi / [email protected]

Page 2: Apache Kafka 0.11 の Exactly Once Semantics

• • Kafka

• Exactly Once :

2

Page 3: Apache Kafka 0.11 の Exactly Once Semantics

• 2011/04

• 2015/09

• • Druid (KDP, 2015)

• RDB NoSQL ( , 2016; : HBase )

• ESP8266 Wi-Fi IoT (KDP, 2016)

• • (WebDB Forum 2014)

• Spark Streaming (Spark Meetup December; 2015)

• Kafka AWS Kinesis (Apache Kafka Meetup Japan #1; 2016)

• (FutureOfData; 2016)

• Queryable State for Kafka Streams (Apache Kafka Meetup Japan #2; 2016)

• Apache Spark ( Geek Night #11; 2016)

• (BigData-JAWS #6; 2017)

3

Page 4: Apache Kafka 0.11 の Exactly Once Semantics

Kafka

Page 5: Apache Kafka 0.11 の Exactly Once Semantics

Kafka

5

Page 6: Apache Kafka 0.11 の Exactly Once Semantics

Kafka

ACK

ACK

6

Page 7: Apache Kafka 0.11 の Exactly Once Semantics

Kafka

Broker

7

Page 8: Apache Kafka 0.11 の Exactly Once Semantics

Kafka

8

Page 9: Apache Kafka 0.11 の Exactly Once Semantics

Kafka

At Least Once At Most Once

9

Page 10: Apache Kafka 0.11 の Exactly Once Semantics

Kafka

At Least Once At Most Once

Exactly Once

9

Page 11: Apache Kafka 0.11 の Exactly Once Semantics

Exactly Once :

Page 12: Apache Kafka 0.11 の Exactly Once Semantics

Kafka 0.11.0.0

• 2017/06/28

• KIP-129 → KAFKA-4923: Add Exactly-Once Semantics to Streams • https://issues.apache.org/jira/browse/KAFKA-4923

• Confluent Blog: Exactly-once Semantics are Possible: Here’s How Kafka Does it • https://www.confluent.io/blog/exactly-once-semantics-are-possible-

heres-how-apache-kafka-does-it/ • “In the following posts in this series, we will go into more details …”

• Exactly Once Delivery and Transactional Messaging in Kafka • https://docs.google.com/document/d/

11Jqy_GjUGtdXJK94XGsEIK7CP1SnQGdp2eF0wSw9ra8/ • KIP-98 → KAFKA-5059: Implement Transactional Coordinator

11

Page 13: Apache Kafka 0.11 の Exactly Once Semantics
Page 14: Apache Kafka 0.11 の Exactly Once Semantics

Kafka

13

Page 15: Apache Kafka 0.11 の Exactly Once Semantics

Kafka : Exactly Once

14

Page 16: Apache Kafka 0.11 の Exactly Once Semantics

Producer Exactly Once

15

Page 17: Apache Kafka 0.11 の Exactly Once Semantics

Producer Exactly Once

1. 2. 3. x N 4. →

16

Page 18: Apache Kafka 0.11 の Exactly Once Semantics

Producer Exactly Once

1. 2. 3. x N 4.

→ 1

17

Page 19: Apache Kafka 0.11 の Exactly Once Semantics

Producer Exactly Once

5.Broker Commit Marker

COMMITTED ABORTED ↓ ↓

18

Page 20: Apache Kafka 0.11 の Exactly Once Semantics

Consumer Exactly Once

19

Page 21: Apache Kafka 0.11 の Exactly Once Semantics

Consumer Exactly Once

6.

READ_COMMITTED↓

READ_UNCOMMITTED

20

Page 22: Apache Kafka 0.11 の Exactly Once Semantics

Consumer Exactly Once

7. 8.

- COMMITTED

- ABORTED Transaction List

21

Page 23: Apache Kafka 0.11 の Exactly Once Semantics

• Kafka API RecordBatch

• Kafka < 0.11 Message MessageSet

API

• Kafka 0.11 MessageSet/Message RecordBatch/Record

• Producer Broker Consumer

ID PID Producer ID

22

Page 24: Apache Kafka 0.11 の Exactly Once Semantics

Exactly Once

• : Exactly Once

• Producer

• Broker

• Commit Marker

• Consumer

→ OSS

Page 25: Apache Kafka 0.11 の Exactly Once Semantics

• Exactly Once • Producer Broker

• Consumer

• 3%

• • Confluent

• OSS

Kafka

• Exactly Once

24