Π
ΠΠ΄Π΅ΡΡ Π΅Π΄ΠΈΠ½ΠΈΡΠ΅ΠΉ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°Π·Π΄Π΅Π» (partition). Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠΎΠΏΠΈΠΊΠ° ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·Π΄Π΅Π»ΠΎΠ². Π ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ Π΅ΡΡΡ Π»ΠΈΠ΄Π΅Ρ Ρ ΡΠΎΠ»Π»ΠΎΠ²Π΅ΡΠ°ΠΌΠΈ ΠΈΠ»ΠΈ Π±Π΅Π· Π½ΠΈΡ
. ΠΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΡΠΎΠΏΠΈΠΊΠ° ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ°Π·Π΄Π΅Π»ΠΎΠ² ΠΈ ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½Ρ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ. ΠΠ±ΡΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 3, ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΡΡΠΈ ΡΠ΅ΠΏΠ»ΠΈΠΊΠΈ: ΠΎΠ΄ΠΈΠ½ Π»ΠΈΠ΄Π΅Ρ ΠΈ Π΄Π²Π° ΡΠΎΠ»Π»ΠΎΠ²Π΅ΡΠ°.
Π ΠΈΡ. 1. Π§Π΅ΡΡΡΠ΅ ΡΠ°Π·Π΄Π΅Π»Π° ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠ΅ΠΌΡ Π±ΡΠΎΠΊΠ΅ΡΠ°ΠΌΠΈ
ΠΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ Π½Π° ΡΡΠ΅Π½ΠΈΠ΅ ΠΈ Π·Π°ΠΏΠΈΡΡ ΠΏΠΎΡΡΡΠΏΠ°ΡΡ Π»ΠΈΠ΄Π΅ΡΡ. Π€ΠΎΠ»Π»ΠΎΠ²Π΅ΡΡ ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΡΡΠ»Π°ΡΡ Π»ΠΈΠ΄Π΅ΡΡ Π·Π°ΠΏΡΠΎΡΡ Π½Π° ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ. ΠΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ ΡΠΎΠ»Π»ΠΎΠ²Π΅ΡΠ°ΠΌ, ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΠΈΠ·Π±ΡΡΠΎΡΠ½ΠΎΡΡΠΈ ΠΈ ΠΎΡΠΊΠ°Π·ΠΎΡΡΡΠΎΠΉΡΠΈΠ²ΠΎΡΡΠΈ.
Π‘Π±ΠΎΠΉ ΡΠ°Π·Π΄Π΅Π»Π°
ΠΠΎΠ³Π΄Π° ΠΎΡΠ²Π°Π»ΠΈΠ²Π°Π΅ΡΡΡ Π±ΡΠΎΠΊΠ΅Ρ, ΡΠ°ΡΡΠΎ Π²ΡΡ ΠΎΠ΄ΡΡ ΠΈΠ· ΡΡΡΠΎΡ Π»ΠΈΠ΄Π΅ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠ°Π·Π΄Π΅Π»ΠΎΠ². Π ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ· Π½ΠΈΡ Π»ΠΈΠ΄Π΅ΡΠΎΠΌ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΡΠΎΠ»Π»ΠΎΠ²Π΅Ρ Ρ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΡΠ·Π»Π°. ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΡΡΠΎ Π½Π΅ Π²ΡΠ΅Π³Π΄Π° ΡΠ°ΠΊ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π²Π»ΠΈΡΠ΅Ρ Π΅ΡΠ΅ ΡΠ°ΠΊΡΠΎΡ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ: Π΅ΡΡΡ Π»ΠΈ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠΎΠ»Π»ΠΎΠ²Π΅ΡΡ, Π° Π΅ΡΠ»ΠΈ Π½Π΅Ρ, ΡΠΎ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ Π»ΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ Π½Π° Π½Π΅ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠ΅ΠΏΠ»ΠΈΠΊΡ. ΠΠΎ ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡΠ΄Π΅ΠΌ ΡΡΠ»ΠΎΠΆΠ½ΡΡΡ.
ΠΠ· ΡΠ΅ΡΠΈ ΡΡ ΠΎΠ΄ΠΈΡ Π±ΡΠΎΠΊΠ΅Ρ 3 β ΠΈ Π΄Π»Ρ ΡΠ°Π·Π΄Π΅Π»Π° 2 ΠΈΠ·Π±ΠΈΡΠ°Π΅ΡΡΡ Π½ΠΎΠ²ΡΠΉ Π»ΠΈΠ΄Π΅Ρ Π½Π° Π±ΡΠΎΠΊΠ΅ΡΠ΅ 2.
Π ΠΈΡ. 2. ΠΡΠΎΠΊΠ΅Ρ 3 ΡΠΌΠΈΡΠ°Π΅Ρ, ΠΈ Π΅Π³ΠΎ ΡΠΎΠ»Π»ΠΎΠ²Π΅Ρ Π½Π° Π±ΡΠΎΠΊΠ΅ΡΠ΅ 2 ΠΈΠ·Π±ΠΈΡΠ°Π΅ΡΡΡ Π½ΠΎΠ²ΡΠΌ Π»ΠΈΠ΄Π΅ΡΠΎΠΌ ΡΠ°Π·Π΄Π΅Π»Π° 2
ΠΠ°ΡΠ΅ΠΌ ΡΡ ΠΎΠ΄ΠΈΡ Π±ΡΠΎΠΊΠ΅Ρ 1 ΠΈ ΡΠ°Π·Π΄Π΅Π» 1 ΡΠΎΠΆΠ΅ ΡΠ΅ΡΡΠ΅Ρ ΡΠ²ΠΎΠ΅Π³ΠΎ Π»ΠΈΠ΄Π΅ΡΠ°, ΡΠΎΠ»Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡ ΠΊ Π±ΡΠΎΠΊΠ΅ΡΡ 2.
Π ΠΈΡ. 3. ΠΡΡΠ°Π»ΡΡ ΠΎΠ΄ΠΈΠ½ Π±ΡΠΎΠΊΠ΅Ρ. ΠΡΠ΅ Π»ΠΈΠ΄Π΅ΡΡ Π½Π°Ρ
ΠΎΠ΄ΡΡΡΡ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ Π±ΡΠΎΠΊΠ΅ΡΠ΅ Ρ Π½ΡΠ»Π΅Π²ΠΎΠΉ ΠΈΠ·Π±ΡΡΠΎΡΠ½ΠΎΡΡΡΡ
ΠΠΎΠ³Π΄Π° Π±ΡΠΎΠΊΠ΅Ρ 1 Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ Π² ΡΠ΅ΡΡ, ΡΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΡΠ΅ΡΡΡΠ΅Ρ ΡΠΎΠ»Π»ΠΎΠ²Π΅ΡΠΎΠ², ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΈΠ·Π±ΡΡΠΎΡΠ½ΠΎΡΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΡΠ°Π·Π΄Π΅Π»Ρ. ΠΠΎ Π²ΡΠ΅ Π»ΠΈΠ΄Π΅ΡΡ ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ ΠΎΡΡΠ°Π»ΠΈΡΡ Π½Π° Π±ΡΠΎΠΊΠ΅ΡΠ΅ 2.
Π ΠΈΡ. 4. ΠΠΈΠ΄Π΅ΡΡ ΠΎΡΡΠ°ΡΡΡΡ Π½Π° Π±ΡΠΎΠΊΠ΅ΡΠ΅ 2
ΠΠΎΠ³Π΄Π° ΠΏΠΎΠ΄Π½ΠΈΠΌΠ°Π΅ΡΡΡ Π±ΡΠΎΠΊΠ΅Ρ 3, ΠΌΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΡ ΠΊ ΡΡΠ΅ΠΌ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΠΌ Π½Π° ΡΠ°Π·Π΄Π΅Π». ΠΠΎ Π²ΡΠ΅ Π»ΠΈΠ΄Π΅ΡΡ ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ Π½Π° Π±ΡΠΎΠΊΠ΅ΡΠ΅ 2.
Π ΠΈΡ. 5. ΠΠ΅ΡΠ±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ Π»ΠΈΠ΄Π΅ΡΠΎΠ² ΠΏΠΎΡΠ»Π΅ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π±ΡΠΎΠΊΠ΅ΡΠΎΠ² 1 ΠΈ 3
Π£ Kafka Π΅ΡΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π»Ρ Π±ΠΎΠ»Π΅Π΅ ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΠΏΠ΅ΡΠ΅Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΠΊΠΈ Π»ΠΈΠ΄Π΅ΡΠΎΠ², ΡΠ΅ΠΌ Ρ RabbitMQ. Π’Π°ΠΌ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΠ»ΠΎΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠΉ ΠΏΠ»Π°Π³ΠΈΠ½ ΠΈΠ»ΠΈ ΡΠΊΡΠΈΠΏΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΠ·ΠΌΠ΅Π½ΡΠ» ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΈ Π΄Π»Ρ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΡΠ·Π»Π° Π·Π° ΡΡΠ΅Ρ ΡΠ½ΠΈΠΆΠ΅Π½ΠΈΡ ΠΈΠ·Π±ΡΡΠΎΡΠ½ΠΎΡΡΠΈ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π΄Π»Ρ Π±ΠΎΠ»ΡΡΠΈΡ ΠΎΡΠ΅ΡΠ΅Π΄Π΅ΠΉ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΠ»ΠΎΡΡ ΡΠΌΠΈΡΠΈΡΡΡΡ Ρ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ.
Π£ Kafka Π΅ΡΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ Β«ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠ΅ΠΏΠ»ΠΈΠΊΒ» Π½Π° ΡΠΎΠ»Ρ Π»ΠΈΠ΄Π΅ΡΠ°. ΠΠΎΠ³Π΄Π° ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΡΠ°Π·Π΄Π΅Π»Ρ ΡΠΎΠΏΠΈΠΊΠ°, Kafka ΠΏΡΡΠ°Π΅ΡΡΡ ΡΠ°Π²Π½ΠΎΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π»ΠΈΠ΄Π΅ΡΠΎΠ² ΠΏΠΎ ΡΠ·Π»Π°ΠΌ ΠΈ ΠΎΡΠΌΠ΅ΡΠ°Π΅Ρ ΡΡΠΈΡ ΠΏΠ΅ΡΠ²ΡΡ Π»ΠΈΠ΄Π΅ΡΠΎΠ² ΠΊΠ°ΠΊ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠΈΡΠ΅Π»ΡΠ½ΡΡ . Π‘ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ ΠΈΠ·-Π·Π° ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ², ΡΠ±ΠΎΠ΅Π² ΠΈ Π½Π°ΡΡΡΠ΅Π½ΠΈΡ ΡΠ²ΡΠ·Π½ΠΎΡΡΠΈ Π»ΠΈΠ΄Π΅ΡΡ ΠΌΠΎΠ³ΡΡ ΠΎΠΊΠ°Π·Π°ΡΡΡΡ Π½Π° Π΄ΡΡΠ³ΠΈΡ ΡΠ·Π»Π°Ρ , ΠΊΠ°ΠΊ Π² Π²ΡΡΠ΅ΠΎΠΏΠΈΡΠ°Π½Π½ΠΎΠΌ ΠΊΡΠ°ΠΉΠ½Π΅ΠΌ ΡΠ»ΡΡΠ°Π΅.
Π§ΡΠΎΠ±Ρ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ ΡΡΠΎ, Kafka ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ Π΄Π²Π° Π²Π°ΡΠΈΠ°Π½ΡΠ°:
- ΠΠΏΡΠΈΡ auto.leader.rebalance.enable=true ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ·Π»Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠ΅ΡΠ΅Π½Π°Π·Π½Π°ΡΠΈΡΡ Π»ΠΈΠ΄Π΅ΡΠΎΠ² ΠΎΠ±ΡΠ°ΡΠ½ΠΎ Π½Π° ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ΅ΠΏΠ»ΠΈΠΊΠΈ ΠΈ ΡΠ΅ΠΌ ΡΠ°ΠΌΡΠΌ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ°Π²Π½ΠΎΠΌΠ΅ΡΠ½ΠΎΠ΅ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅.
- ΠΠ΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ ΠΌΠΎΠΆΠ΅Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΠΊΡΠΈΠΏΡ kafka-preferred-replica-election.sh Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π²ΡΡΡΠ½ΡΡ.
Π ΠΈΡ. 6. Π Π΅ΠΏΠ»ΠΈΠΊΠΈ ΠΏΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ΅Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΠΊΠΈ
ΠΡΠΎ Π±ΡΠ»Π° ΡΠΏΡΠΎΡΠ΅Π½Π½Π°Ρ Π²Π΅ΡΡΠΈΡ ΡΠ±ΠΎΡ, Π½ΠΎ ΡΠ΅Π°Π»ΡΠ½ΠΎΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½Π°, Ρ ΠΎΡΡ Π½ΠΈΡΠ΅Π³ΠΎ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΡΠ»ΠΎΠΆΠ½ΠΎΠ³ΠΎ Π·Π΄Π΅ΡΡ Π½Π΅Ρ. ΠΡΠ΅ ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΊ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΠΌ (In-Sync Replicas, ISR).
Π‘ΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ΅ΠΏΠ»ΠΈΠΊΠΈ (ISR)
ISR β ΡΡΠΎ Π½Π°Π±ΠΎΡ ΡΠ΅ΠΏΠ»ΠΈΠΊ ΡΠ°Π·Π΄Π΅Π»Π°, ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΠΈΡΠ°Π΅ΡΡΡ Β«ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌΒ» (in-sync). Π’ΡΡ Π΅ΡΡΡ Π»ΠΈΠ΄Π΅Ρ, Π° ΡΠΎΠ»Π»ΠΎΠ²Π΅ΡΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ Π±ΡΡΡ. Π€ΠΎΠ»Π»ΠΎΠ²Π΅Ρ ΡΡΠΈΡΠ°Π΅ΡΡΡ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ, Π΅ΡΠ»ΠΈ ΠΎΠ½ ΡΠ΄Π΅Π»Π°Π» ΡΠΎΡΠ½ΡΠ΅ ΠΊΠΎΠΏΠΈΠΈ Π²ΡΠ΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π»ΠΈΠ΄Π΅ΡΠ° Π΄ΠΎ ΠΈΡΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»Π° replica.lag.time.max.ms.
Π€ΠΎΠ»Π»ΠΎΠ²Π΅Ρ ΡΠ΄Π°Π»ΡΠ΅ΡΡΡ ΠΈΠ· Π½Π°Π±ΠΎΡΠ° ISR, Π΅ΡΠ»ΠΈ ΠΎΠ½:
- Π½Π΅ ΡΠ΄Π΅Π»Π°Π» Π·Π°ΠΏΡΠΎΡ Π½Π° Π²ΡΠ±ΠΎΡΠΊΡ Π·Π° ΠΈΠ½ΡΠ΅ΡΠ²Π°Π» replica.lag.time.max.ms (ΡΡΠΈΡΠ°Π΅ΡΡΡ ΠΌΠ΅ΡΡΠ²ΡΠΌ)
- Π½Π΅ ΡΡΠΏΠ΅Π» ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡΡΡ Π·Π° ΠΈΠ½ΡΠ΅ΡΠ²Π°Π» replica.lag.time.max.ms (ΡΡΠΈΡΠ°Π΅ΡΡΡ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΠΌ)
Π€ΠΎΠ»Π»ΠΎΠ²Π΅ΡΡ Π΄Π΅Π»Π°ΡΡ Π·Π°ΠΏΡΠΎΡΡ Π½Π° Π²ΡΠ±ΠΎΡΠΊΡ Π² ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»Π΅ replica.fetch.wait.max.ms, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ 500 ΠΌΡ.
Π§ΡΠΎΠ±Ρ ΡΠ΅ΡΠΊΠΎ ΠΎΠ±ΡΡΡΠ½ΠΈΡΡ ΡΠ΅Π»Ρ ISR, Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π½Π° ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ ΠΎΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ (producer) ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΠΈ ΠΎΡΠΊΠ°Π·Π°. ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΠΈ ΠΌΠΎΠ³ΡΡ Π²ΡΠ±ΡΠ°ΡΡ, ΠΊΠΎΠ³Π΄Π° Π±ΡΠΎΠΊΠ΅Ρ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅:
- acks=0, ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ Π½Π΅ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ
- acks=1, ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π»ΠΈΠ΄Π΅Ρ Π·Π°ΠΏΠΈΡΠ°Π» ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π² ΡΠ²ΠΎΠΉ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ Π»ΠΎΠ³
- acks=all, ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²ΡΠ΅ ΡΠ΅ΠΏΠ»ΠΈΠΊΠΈ Π² ISR Π·Π°ΠΏΠΈΡΠ°Π»ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π² Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ Π»ΠΎΠ³ΠΈ
Π ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Kafka, Π΅ΡΠ»ΠΈ ISR ΡΠΎΡ ΡΠ°Π½ΠΈΠ» ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π΅Π³ΠΎ Β«ΠΊΠΎΠΌΠΌΠΈΡΒ». Acks=all β ΡΠ°ΠΌΡΠΉ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ, Π½ΠΎ ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½Π°Ρ Π·Π°Π΄Π΅ΡΠΆΠΊΠ°. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ Π΄Π²Π° ΠΏΡΠΈΠΌΠ΅ΡΠ° ΠΎΡΠΊΠ°Π·Π° ΠΈ ΠΊΠ°ΠΊ ΡΠ°Π·Π½ΡΠ΅ ΠΎΠΏΡΠΈΠΈ ‘acks’ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΡΡΡ Ρ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠ΅ΠΉ ISR.
Acks=1 ΠΈ ISR
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΡΠ²ΠΈΠ΄ΠΈΠΌ, ΡΡΠΎ Π΅ΡΠ»ΠΈ Π»ΠΈΠ΄Π΅Ρ Π½Π΅ ΠΆΠ΄Π΅Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΡ Π²ΡΠ΅Ρ ΡΠΎΠ»Π»ΠΎΠ²Π΅ΡΠΎΠ², ΡΠΎ ΠΏΡΠΈ ΡΠ±ΠΎΠ΅ Π»ΠΈΠ΄Π΅ΡΠ° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° ΠΏΠΎΡΠ΅ΡΡ Π΄Π°Π½Π½ΡΡ . ΠΠ΅ΡΠ΅Ρ ΠΎΠ΄ ΠΊ Π½Π΅ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌΡ ΡΠΎΠ»Π»ΠΎΠ²Π΅ΡΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ ΠΈΠ»ΠΈ Π·Π°ΠΏΡΠ΅ΡΠ΅Π½ Π½Π°ΡΡΡΠΎΠΉΠΊΠΎΠΉ unclean.leader.election.enable.
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ acks=1. Π Π°Π·Π΄Π΅Π» ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΠΏΠΎ Π²ΡΠ΅ΠΌ ΡΡΠ΅ΠΌ Π±ΡΠΎΠΊΠ΅ΡΠ°ΠΌ. ΠΡΠΎΠΊΠ΅Ρ 3 ΠΎΡΡΡΠ°Π΅Ρ, ΠΎΠ½ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π»ΡΡ Ρ Π»ΠΈΠ΄Π΅ΡΠΎΠΌ Π²ΠΎΡΠ΅ΠΌΡ ΡΠ΅ΠΊΡΠ½Π΄ Π½Π°Π·Π°Π΄ ΠΈ ΡΠ΅ΠΉΡΠ°Ρ ΠΎΡΡΡΠ°Π΅Ρ Π½Π° 7456 ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ. ΠΡΠΎΠΊΠ΅Ρ 1 ΠΎΡΡΡΠ°Π» Π²ΡΠ΅Π³ΠΎ Π½Π° ΠΎΠ΄Π½Ρ ΡΠ΅ΠΊΡΠ½Π΄Ρ. ΠΠ°Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΈ Π±ΡΡΡΡΠΎ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ ack, Π±Π΅Π· ΠΎΠ²Π΅ΡΡ Π΅Π΄Π° Π½Π° ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΡ ΠΈΠ»ΠΈ ΠΌΠ΅ΡΡΠ²ΡΡ ΡΠΎΠ»Π»ΠΎΠ²Π΅ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΡ Π»ΠΈΠ΄Π΅Ρ Π½Π΅ ΠΆΠ΄Π΅Ρ.
Π ΠΈΡ. 7. ISR Ρ ΡΡΠ΅ΠΌΡ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΠΌΠΈ
ΠΡΠΎΠΊΠ΅Ρ 2 Π²ΡΡ ΠΎΠ΄ΠΈΡ ΠΈΠ· ΡΡΡΠΎΡ, ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΠΎΡΠΈΠ±ΠΊΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ. ΠΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π° Π»ΠΈΠ΄Π΅ΡΡΡΠ²Π° ΠΊ Π±ΡΠΎΠΊΠ΅ΡΡ 1 ΠΌΡ ΡΠ΅ΡΡΠ΅ΠΌ 123 ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ. Π€ΠΎΠ»Π»ΠΎΠ²Π΅Ρ Π½Π° Π±ΡΠΎΠΊΠ΅ΡΠ΅ 1 Π²Ρ ΠΎΠ΄ΠΈΠ» Π² ISR, Π½ΠΎ Π½Π΅ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π»ΡΡ Ρ Π»ΠΈΠ΄Π΅ΡΠΎΠΌ, ΠΊΠΎΠ³Π΄Π° ΡΠΎΡ ΡΠΏΠ°Π».
Π ΠΈΡ. 8. ΠΡΠΈ ΡΠ±ΠΎΠ΅ ΡΠ΅ΡΡΡΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ
Π ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ bootstrap.servers Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π±ΡΠΎΠΊΠ΅ΡΠΎΠ², ΠΈ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΡΠΏΡΠΎΡΠΈΡΡ Π΄ΡΡΠ³ΠΎΠ³ΠΎ Π±ΡΠΎΠΊΠ΅ΡΠ°, ΠΊΡΠΎ ΡΡΠ°Π» Π½ΠΎΠ²ΡΠΌ Π»ΠΈΠ΄Π΅ΡΠΎΠΌ ΡΠ°Π·Π΄Π΅Π»Π°. ΠΠ°ΡΠ΅ΠΌ ΠΎΠ½ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Ρ Π±ΡΠΎΠΊΠ΅ΡΠΎΠΌ 1 ΠΈ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ.
Π ΠΈΡ. 9. ΠΡΠΏΡΠ°Π²ΠΊΠ° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π²ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΡΠ»Π΅ ΠΊΡΠ°ΡΠΊΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅ΡΡΠ²Π°
ΠΡΠΎΠΊΠ΅Ρ 3 ΠΎΡΡΡΠ°Π΅Ρ Π΅ΡΠ΅ Π±ΠΎΠ»ΡΡΠ΅. ΠΠ½ Π΄Π΅Π»Π°Π΅Ρ Π·Π°ΠΏΡΠΎΡΡ Π½Π° Π²ΡΠ±ΠΎΡΠΊΡ, Π½ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡΡΡ. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΠΌ ΡΠ΅ΡΠ΅Π²ΡΠΌ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ΠΌ ΠΌΠ΅ΠΆΠ΄Ρ Π±ΡΠΎΠΊΠ΅ΡΠ°ΠΌΠΈ, ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΈ Ρ. Π΄. ΠΠ½ ΡΠ΄Π°Π»ΡΠ΅ΡΡΡ ΠΈΠ· ISR. Π’Π΅ΠΏΠ΅ΡΡ ISR ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ ΡΠ΅ΠΏΠ»ΠΈΠΊΠΈ β Π»ΠΈΠ΄Π΅ΡΠ°! ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΈ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ.
Π ΠΈΡ. 10. Π€ΠΎΠ»Π»ΠΎΠ²Π΅Ρ Π½Π° Π±ΡΠΎΠΊΠ΅ΡΠ΅ 3 ΡΠ΄Π°Π»ΡΠ΅ΡΡΡ ΠΈΠ· ISR
ΠΡΠΎΠΊΠ΅Ρ 1 ΠΏΠ°Π΄Π°Π΅Ρ, ΠΈ ΡΠΎΠ»Ρ Π»ΠΈΠ΄Π΅ΡΠ° ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡ ΠΊ Π±ΡΠΎΠΊΠ΅ΡΡ 3 Ρ ΠΏΠΎΡΠ΅ΡΠ΅ΠΉ 15286 ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ! ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ. ΠΠ΅ΡΠ΅Ρ ΠΎΠ΄ ΠΊ Π»ΠΈΠ΄Π΅ΡΡ Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Π°ΠΌΠΈ ISR Π±ΡΠ» Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ·-Π·Π° Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ unclean.leader.election.enable=true. ΠΡΠ»ΠΈ ΠΎΠ½Π° ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π° Π² false, ΡΠΎ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ Π±Ρ Π½Π΅ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ΅Π», Π° Π²ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ ΡΡΠ΅Π½ΠΈΡ ΠΈ Π·Π°ΠΏΠΈΡΠΈ Π±ΡΠ»ΠΈ Π±Ρ ΠΎΡΠΊΠ»ΠΎΠ½Π΅Π½Ρ. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΡ ΠΆΠ΄Π΅ΠΌ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½ΠΈΡ Π±ΡΠΎΠΊΠ΅ΡΠ° 1 Ρ Π΅Π³ΠΎ Π½Π΅ΡΡΠΎΠ½ΡΡΡΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ Π² ΡΠ΅ΠΏΠ»ΠΈΠΊΠ΅, ΠΊΠΎΡΠΎΡΠ°Ρ Π²Π½ΠΎΠ²Ρ Π²ΠΎΠ·ΡΠΌΠ΅Ρ Π½Π° ΡΠ΅Π±Ρ Π»ΠΈΠ΄Π΅ΡΡΡΠ²ΠΎ.
Π ΠΈΡ. 11. ΠΡΠΎΠΊΠ΅Ρ 1 ΠΏΠ°Π΄Π°Π΅Ρ. ΠΡΠΈ ΡΠ±ΠΎΠ΅ ΡΠ΅ΡΡΠ΅ΡΡΡ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ
ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌ Π±ΡΠΎΠΊΠ΅ΡΠΎΠΌ ΠΈ Π²ΠΈΠ΄ΠΈΡ, ΡΡΠΎ ΡΠΎΡ ΡΠ΅ΠΏΠ΅ΡΡ Π»ΠΈΠ΄Π΅Ρ ΡΠ°Π·Π΄Π΅Π»Π°. ΠΠ½ Π½Π°ΡΠΈΠ½Π°Π΅Ρ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π±ΡΠΎΠΊΠ΅ΡΡ 3.
Π ΠΈΡ. 12. ΠΠΎΡΠ»Π΅ ΠΊΡΠ°ΡΠΊΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅ΡΡΠ²Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΡΠ½ΠΎΠ²Π° ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡΡΡ Π² ΡΠ°Π·Π΄Π΅Π» 0
ΠΡ Π²ΠΈΠ΄Π΅Π»ΠΈ, ΡΡΠΎ ΠΊΡΠΎΠΌΠ΅ ΠΊΡΠ°ΡΠΊΠΈΡ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ Π½Π° ΡΡΡΠ°Π½ΠΎΠ²ΠΊΡ Π½ΠΎΠ²ΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ ΠΈ ΠΏΠΎΠΈΡΠΊ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π»ΠΈΠ΄Π΅ΡΠ°, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ» ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ. Π’Π°ΠΊΠ°Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΡ Π·Π° ΡΡΠ΅Ρ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡΠΈ (Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ Π΄Π°Π½Π½ΡΡ ). Kafka ΠΏΠΎΡΠ΅ΡΡΠ» ΡΡΡΡΡΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, Π½ΠΎ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π» ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π½ΠΎΠ²ΡΠ΅ Π·Π°ΠΏΠΈΡΠΈ.
Acks=all ΠΈ ISR
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΠ²ΡΠΎΡΠΈΠΌ ΡΡΠΎΡ ΡΡΠ΅Π½Π°ΡΠΈΠΉ Π΅ΡΠ΅ ΡΠ°Π·, Π½ΠΎ Ρ acks=all. ΠΠ°Π΄Π΅ΡΠΆΠΊΠ° Π±ΡΠΎΠΊΠ΅ΡΠ° 3 Π² ΡΡΠ΅Π΄Π½Π΅ΠΌ ΡΠ΅ΡΡΡΠ΅ ΡΠ΅ΠΊΡΠ½Π΄Ρ. ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Ρ acks=all, ΠΈ ΡΠ΅ΠΏΠ΅ΡΡ Π½Π΅ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π±ΡΡΡΡΡΠΉ ΠΎΡΠ²Π΅Ρ. ΠΠΈΠ΄Π΅Ρ ΠΆΠ΄Π΅Ρ, ΠΏΠΎΠΊΠ° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΡ ΡΠ°Π½ΡΡ Π²ΡΠ΅ ΡΠ΅ΠΏΠ»ΠΈΠΊΠΈ Π² ISR.
Π ΠΈΡ. 13. ISR Ρ ΡΡΠ΅ΠΌΡ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΠΌΠΈ. ΠΠ΄Π½Π° ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ, ΡΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ Π·Π°Π΄Π΅ΡΠΆΠΊΠ΅ Π·Π°ΠΏΠΈΡΠΈ
ΠΠΎΡΠ»Π΅ ΡΠ΅ΡΡΡΠ΅Ρ ΡΠ΅ΠΊΡΠ½Π΄ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ Π·Π°Π΄Π΅ΡΠΆΠΊΠΈ Π±ΡΠΎΠΊΠ΅Ρ 2 ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ack. ΠΡΠ΅ ΡΠ΅ΠΏΠ»ΠΈΠΊΠΈ ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ.
Π ΠΈΡ. 14. ΠΡΠ΅ ΡΠ΅ΠΏΠ»ΠΈΠΊΠΈ ΡΠΎΡ
ΡΠ°Π½ΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΈ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ ack
ΠΡΠΎΠΊΠ΅Ρ 3 ΡΠ΅ΠΏΠ΅ΡΡ ΠΎΡΡΡΠ°Π΅Ρ Π΅ΡΠ΅ Π±ΠΎΠ»ΡΡΠ΅ ΠΈ ΡΠ΄Π°Π»ΡΠ΅ΡΡΡ ΠΈΠ· ISR. ΠΠ°Π΄Π΅ΡΠΆΠΊΠ° Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΌΠ΅Π½ΡΡΠ°Π΅ΡΡΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π² ISR Π½Π΅ ΠΎΡΡΠ°Π»ΠΎΡΡ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΡ ΡΠ΅ΠΏΠ»ΠΈΠΊ. ΠΡΠΎΠΊΠ΅Ρ 2 ΡΠ΅ΠΏΠ΅ΡΡ ΠΆΠ΄Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π±ΡΠΎΠΊΠ΅ΡΠ° 1, Π° Ρ Π½Π΅Π³ΠΎ ΡΡΠ΅Π΄Π½ΠΈΠΉ Π»Π°Π³ 500 ΠΌΡ.
Π ΠΈΡ. 15. Π Π΅ΠΏΠ»ΠΈΠΊΠ° Π½Π° Π±ΡΠΎΠΊΠ΅ΡΠ΅ 3 ΡΠ΄Π°Π»ΡΠ΅ΡΡΡ ΠΈΠ· ISR
ΠΠ°ΡΠ΅ΠΌ ΠΏΠ°Π΄Π°Π΅Ρ Π±ΡΠΎΠΊΠ΅Ρ 2, ΠΈ Π»ΠΈΠ΄Π΅ΡΡΡΠ²ΠΎ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡ ΠΊ Π±ΡΠΎΠΊΠ΅ΡΡ 1 Π±Π΅Π· ΠΏΠΎΡΠ΅ΡΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ.
Π ΠΈΡ. 16. ΠΡΠΎΠΊΠ΅Ρ 2 ΠΏΠ°Π΄Π°Π΅Ρ
ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π»ΠΈΠ΄Π΅ΡΠ° ΠΈ Π½Π°ΡΠΈΠ½Π°Π΅Ρ ΠΏΠΎΡΡΠ»Π°ΡΡ Π΅ΠΌΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ. ΠΠ°Π΄Π΅ΡΠΆΠΊΠ° Π΅ΡΠ΅ ΡΠΌΠ΅Π½ΡΡΠ°Π΅ΡΡΡ, Π²Π΅Π΄Ρ ΡΠ΅ΠΏΠ΅ΡΡ ISR ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ ΡΠ΅ΠΏΠ»ΠΈΠΊΠΈ! ΠΠΎΡΡΠΎΠΌΡ ΠΎΠΏΡΠΈΡ acks=all Π½Π΅ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΠΈΠ·Π±ΡΡΠΎΡΠ½ΠΎΡΡΠΈ.
Π ΠΈΡ. 17. Π Π΅ΠΏΠ»ΠΈΠΊΠ° Π½Π° Π±ΡΠΎΠΊΠ΅ΡΠ΅ 1 Π±Π΅ΡΠ΅Ρ Π½Π° ΡΠ΅Π±Ρ Π»ΠΈΠ΄Π΅ΡΡΡΠ²ΠΎ Π±Π΅Π· ΠΏΠΎΡΠ΅ΡΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ
ΠΠ°ΡΠ΅ΠΌ ΠΏΠ°Π΄Π°Π΅Ρ Π±ΡΠΎΠΊΠ΅Ρ 1, ΠΈ Π»ΠΈΠ΄Π΅ΡΡΡΠ²ΠΎ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡ ΠΊ Π±ΡΠΎΠΊΠ΅ΡΡ 3 Ρ ΠΏΠΎΡΠ΅ΡΠ΅ΠΉ 14238 ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ!
Π ΠΈΡ. 18. ΠΡΠΎΠΊΠ΅Ρ 1 ΡΠΌΠΈΡΠ°Π΅Ρ, Π° ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄ Π»ΠΈΠ΄Π΅ΡΡΡΠ²Π° Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΎΠΉ unclean ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΠΎΠ±ΡΠΈΡΠ½ΠΎΠΉ ΠΏΠΎΡΠ΅ΡΠ΅ Π΄Π°Π½Π½ΡΡ
ΠΡ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ Π½Π΅ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΠΎΠΏΡΠΈΡ unclean.leader.election.enable Π² Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ true. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΎΠ½ΠΎ ΡΠ°Π²Π½ΠΎ false. ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° acks=all Ρ unclean.leader.election.enable=true ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΡ Ρ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΉ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡΡ Π΄Π°Π½Π½ΡΡ . ΠΠΎ, ΠΊΠ°ΠΊ Π²Ρ Π²ΠΈΠ΄ΠΈΡΠ΅, ΠΌΡ Π²ΡΠ΅ Π΅ΡΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΡΠ΅ΡΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ.
ΠΠΎ ΡΡΠΎ, Π΅ΡΠ»ΠΈ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ Π΄Π°Π½Π½ΡΡ ? ΠΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΡΠ°Π²ΠΈΡΡ unclean.leader.election.enable = false, Π½ΠΎ ΡΡΠΎ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π·Π°ΡΠΈΡΠΈΡ Π½Π°Ρ ΠΎΡ ΠΏΠΎΡΠ΅ΡΠΈ Π΄Π°Π½Π½ΡΡ . ΠΡΠ»ΠΈ Π»ΠΈΠ΄Π΅Ρ ΡΠΏΠ°Π» ΠΆΠ΅ΡΡΠΊΠΎ ΠΈ ΡΠ½Π΅Ρ Ρ ΡΠΎΠ±ΠΎΠΉ Π΄Π°Π½Π½ΡΠ΅, ΡΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ ΠΏΠΎΡΠ΅ΡΡΠ½Ρ, ΠΏΠ»ΡΡ ΡΠ΅ΡΡΠ΅ΡΡΡ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΡ, ΠΏΠΎΠΊΠ° Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ Π½Π΅ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡ ΡΠΈΡΡΠ°ΡΠΈΡ.
ΠΡΡΡΠ΅ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ·Π±ΡΡΠΎΡΠ½ΠΎΡΡΡ Π²ΡΠ΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, Π° Π² ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΎΡΠΊΠ°Π·Π°ΡΡΡΡ ΠΎΡ Π·Π°ΠΏΠΈΡΠΈ. Π’ΠΎΠ³Π΄Π° Ρ ΠΎΡΡ Π±Ρ Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ Π±ΡΠΎΠΊΠ΅ΡΠ° ΠΏΠΎΡΠ΅ΡΡ Π΄Π°Π½Π½ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ Π΄Π²ΡΡ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠ±ΠΎΡΡ .
Acks=all, min.insync.replicas ΠΈ ISR
Π‘ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠ΅ΠΉ ΡΠΎΠΏΠΈΠΊΠ° min.insync.replicas ΠΌΡ ΠΏΠΎΠ²ΡΡΠ°Π΅ΠΌ ΡΡΠΎΠ²Π΅Π½Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ Π΄Π°Π½Π½ΡΡ . ΠΠ°Π²Π°ΠΉΡΠ΅ Π΅ΡΠ΅ ΡΠ°Π· ΠΏΡΠΎΠΉΠ΄Π΅ΠΌΡΡ ΠΏΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΡΠ°ΡΡΠΈ ΠΏΡΠΎΡΠ»ΠΎΠ³ΠΎ ΡΡΠ΅Π½Π°ΡΠΈΡ, Π½ΠΎ Π½Π° ΡΡΠΎΡ ΡΠ°Π· Ρ min.insync.replicas=2.
ΠΡΠ°ΠΊ, Ρ Π±ΡΠΎΠΊΠ΅ΡΠ° 2 Π΅ΡΡΡ Π»ΠΈΠ΄Π΅Ρ ΡΠ΅ΠΏΠ»ΠΈΠΊΠΈ, Π° ΡΠΎΠ»Π»ΠΎΠ²Π΅Ρ Π½Π° Π±ΡΠΎΠΊΠ΅ΡΠ΅ 3 ΡΠ΄Π°Π»Π΅Π½ ΠΈΠ· ISR.
Π ΠΈΡ. 19. ISR ΠΈΠ· Π΄Π²ΡΡ
ΡΠ΅ΠΏΠ»ΠΈΠΊ
ΠΡΠΎΠΊΠ΅Ρ 2 ΠΏΠ°Π΄Π°Π΅Ρ, Π° Π»ΠΈΠ΄Π΅ΡΡΡΠ²ΠΎ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡ ΠΊ Π±ΡΠΎΠΊΠ΅ΡΡ 1 Π±Π΅Π· ΠΏΠΎΡΠ΅ΡΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ. ΠΠΎ ΡΠ΅ΠΏΠ΅ΡΡ ISR ΡΠΎΡΡΠΎΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ ΡΠ΅ΠΏΠ»ΠΈΠΊΠΈ. ΠΡΠΎ Π½Π΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΌΡ ΡΠΈΡΠ»Ρ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π·Π°ΠΏΠΈΡΠ΅ΠΉ, ΠΈ ΠΏΠΎΡΡΠΎΠΌΡ Π±ΡΠΎΠΊΠ΅Ρ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π½Π° ΠΏΠΎΠΏΡΡΠΊΡ Π·Π°ΠΏΠΈΡΠΈ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ NotEnoughReplicas.
Π ΠΈΡ. 20. Π§ΠΈΡΠ»ΠΎ ISR Π½Π° ΠΎΠ΄ΠΈΠ½ Π½ΠΈΠΆΠ΅, ΡΠ΅ΠΌ ΡΠΊΠ°Π·Π°Π½ΠΎ Π² min.insync.replicas
ΠΡΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΆΠ΅ΡΡΠ²ΡΠ΅Ρ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΡΡ ΡΠ°Π΄ΠΈ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡΠΈ. ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠ΄ΠΈΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, ΠΌΡ Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅ΠΌ, ΡΡΠΎ ΠΎΠ½ΠΎ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅ Π½Π° Π΄Π²Π΅ ΡΠ΅ΠΏΠ»ΠΈΠΊΠΈ. ΠΡΠΎ Π΄Π°Π΅Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π±ΠΎΠ»ΡΡΡΡ ΡΠ²Π΅ΡΠ΅Π½Π½ΠΎΡΡΡ. ΠΠ΄Π΅ΡΡ ΠΏΠΎΡΠ΅ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠ»ΡΡΠ°Π΅ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠ±ΠΎΡ Π΄Π²ΡΡ ΡΠ΅ΠΏΠ»ΠΈΠΊ Π² ΠΊΡΠ°ΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π», ΠΏΠΎΠΊΠ° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ ΡΠ΅ΠΏΠ»ΠΈΡΠΈΡΠΎΠ²Π°Π½ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΌΡ ΡΠΎΠ»Π»ΠΎΠ²Π΅ΡΡ, ΡΡΠΎ ΠΌΠ°Π»ΠΎΠ²Π΅ΡΠΎΡΡΠ½ΠΎ. ΠΠΎ Π΅ΡΠ»ΠΈ Π²Ρ ΡΡΠΏΠ΅ΡΠΏΠ°ΡΠ°Π½ΠΎΠΈΠΊ, ΡΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½Ρ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ 5, Π° min.insync.replicas Π½Π° 3. Π’ΡΡ ΡΡΠ°Π·Ρ ΡΡΠΈ Π±ΡΠΎΠΊΠ΅ΡΠ° Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΏΠ°ΡΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠΎΡΠ΅ΡΡΡΡ Π·Π°ΠΏΠΈΡΡ! ΠΠΎΠ½Π΅ΡΠ½ΠΎ, Π·Π° ΡΠ°ΠΊΡΡ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡΡ Π²Ρ Π·Π°ΠΏΠ»Π°ΡΠΈΡΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ Π·Π°Π΄Π΅ΡΠΆΠΊΠΎΠΉ.
ΠΠΎΠ³Π΄Π° Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ° Π΄Π»Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ Π΄Π°Π½Π½ΡΡ
ΠΠ°ΠΊ ΠΈ Π²
- ΠΠΎΠΆΠ΅Ρ Π»ΠΈ ΠΏΠ°Π±Π»ΠΈΡΠ΅Ρ ΠΏΡΠΎΡΡΠΎ Π²Π΅ΡΠ½ΡΡΡ ΠΎΡΠΈΠ±ΠΊΡ, Π° Π²ΡΡΠ΅ΡΡΠΎΡΡΠ°Ρ ΡΠ»ΡΠΆΠ±Π° ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΠΎΠ²ΡΠΎΡΠΈΡΡ ΠΏΠΎΠΏΡΡΠΊΡ ΠΏΠΎΠ·ΠΆΠ΅?
- ΠΠΎΠΆΠ΅Ρ Π»ΠΈ ΠΏΠ°Π±Π»ΠΈΡΠ΅Ρ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ ΠΈΠ»ΠΈ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ , ΡΡΠΎΠ±Ρ ΠΏΠΎΠ²ΡΠΎΡΠΈΡΡ ΠΏΠΎΠΏΡΡΠΊΡ ΠΏΠΎΠ·ΠΆΠ΅?
ΠΡΠ»ΠΈ ΠΎΡΠ²Π΅Ρ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΉ, ΡΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΠΈ ΠΏΠΎΠ²ΡΡΠ°Π΅Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ Π΄Π°Π½Π½ΡΡ . ΠΡ ΠΏΠΎΡΠ΅ΡΡΠ΅ΡΠ΅ ΠΌΠ΅Π½ΡΡΠ΅ Π΄Π°Π½Π½ΡΡ , Π΅ΡΠ»ΠΈ Π²ΡΠ±Π΅ΡΠ΅ΡΠ΅ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΡ Π²ΠΌΠ΅ΡΡΠΎ ΠΎΡΠΊΠ°Π·Π° ΠΎΡ Π·Π°ΠΏΠΈΡΠΈ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π²ΡΠ΅ ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΊ ΠΏΠΎΠΈΡΠΊΡ Π±Π°Π»Π°Π½ΡΠ°, Π° ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ.
Π‘ΠΌΡΡΠ» ISR
ΠΠ°Π±ΠΎΡ ISR ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΡΠ±ΡΠ°ΡΡ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ Π±Π°Π»Π°Π½Ρ ΠΌΠ΅ΠΆΠ΄Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡΡ Π΄Π°Π½Π½ΡΡ ΠΈ Π·Π°Π΄Π΅ΡΠΆΠΊΠΎΠΉ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΡ Π² ΡΡΠ»ΠΎΠ²ΠΈΡΡ ΡΠ±ΠΎΡ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° ΡΠ΅ΠΏΠ»ΠΈΠΊ, ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΡΡ Π²Π»ΠΈΡΠ½ΠΈΠ΅ ΠΌΠ΅ΡΡΠ²ΡΡ ΠΈΠ»ΠΈ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΡ ΡΠ΅ΠΏΠ»ΠΈΠΊ Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ Π·Π°Π΄Π΅ΡΠΆΠΊΠΈ.
ΠΡ ΡΠ°ΠΌΠΈ Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ replica.lag.time.max.ms Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ ΡΠΎ ΡΠ²ΠΎΠΈΠΌΠΈ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΡΠΌΠΈ. ΠΠΎ ΡΡΡΠΈ ΡΡΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΠΊΠ°ΠΊΡΡ Π·Π°Π΄Π΅ΡΠΆΠΊΡ ΠΌΡ Π³ΠΎΡΠΎΠ²Ρ ΠΏΡΠΈΠ½ΡΡΡ ΠΏΡΠΈ acks=all. ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ β Π΄Π΅ΡΡΡΡ ΡΠ΅ΠΊΡΠ½Π΄. ΠΡΠ»ΠΈ Π΄Π»Ρ Π²Π°Ρ ΡΡΠΎ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π΄ΠΎΠ»Π³ΠΎ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΅Π΅ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ. Π’ΠΎΠ³Π΄Π° Π²ΡΡΠ°ΡΡΠ΅Ρ ΡΠ°ΡΡΠΎΡΠ° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ISR, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠΎΠ»Π»ΠΎΠ²Π΅ΡΡ Π±ΡΠ΄ΡΡ ΡΠ°ΡΠ΅ ΡΠ΄Π°Π»ΡΡΡΡΡ ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡΡΡ.
Π RabbitMQ ΠΏΡΠΎΡΡΠΎ Π½Π°Π±ΠΎΡ Π·Π΅ΡΠΊΠ°Π», ΠΊΠΎΡΠΎΡΡΠ΅ Π½ΡΠΆΠ½ΠΎ ΡΠ΅ΠΏΠ»ΠΈΡΠΈΡΠΎΠ²Π°ΡΡ. ΠΠ΅Π΄Π»Π΅Π½Π½ΡΠ΅ Π·Π΅ΡΠΊΠ°Π»Π° ΠΏΡΠΈΠ²Π½ΠΎΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ Π·Π°Π΄Π΅ΡΠΆΠΊΡ, Π° ΠΎΡΠΊΠ»ΠΈΠΊΠ° ΠΌΠ΅ΡΡΠ²ΡΡ Π·Π΅ΡΠΊΠ°Π» ΠΌΠΎΠΆΠ½ΠΎ ΠΆΠ΄Π°ΡΡ Π΄ΠΎ ΠΈΡΡΠ΅ΡΠ΅Π½ΠΈΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΆΠΈΠ·Π½ΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ·Π»Π° (net tick). ISR β ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΡΡΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Ρ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ Π·Π°Π΄Π΅ΡΠΆΠΊΠΈ. ΠΠΎ ΠΌΡ ΡΠΈΡΠΊΡΠ΅ΠΌ ΠΏΠΎΡΠ΅ΡΡΡΡ ΠΈΠ·Π±ΡΡΠΎΡΠ½ΠΎΡΡΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ISR ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠΊΡΠ°ΡΠΈΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄ΠΎ Π»ΠΈΠ΄Π΅ΡΠ°. Π§ΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΡΡΠΎΠ³ΠΎ ΡΠΈΡΠΊΠ°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΡ min.insync.replicas.
ΠΠ°ΡΠ°Π½ΡΠΈΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ²
Π Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ bootstrap.servers ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ ΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π±ΡΠΎΠΊΠ΅ΡΠΎΠ² Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ². ΠΠ΄Π΅Ρ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΏΡΠΈ ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ·Π»Π° ΠΎΡΡΠ°Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π·Π°ΠΏΠ°ΡΠ½ΡΡ , Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΠΊΡΡΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅. ΠΡΠΎ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π»ΠΈΠ΄Π΅ΡΡ ΡΠ°Π·Π΄Π΅Π»ΠΎΠ², Π° ΠΏΡΠΎΡΡΠΎ ΠΏΠ»Π°ΡΠ΄Π°ΡΠΌ Π΄Π»Ρ Π΄Π»Ρ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ. ΠΠ»ΠΈΠ΅Π½Ρ ΠΌΠΎΠΆΠ΅Ρ ΡΠΏΡΠΎΡΠΈΡΡ ΠΈΡ , Π½Π° ΠΊΠ°ΠΊΠΎΠΌ ΡΠ·Π»Π΅ ΡΠ°Π·ΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π»ΠΈΠ΄Π΅Ρ ΡΠ°Π·Π΄Π΅Π»Π° Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ/Π·Π°ΠΏΠΈΡΠΈ.
Π RabbitMQ ΠΊΠ»ΠΈΠ΅Π½ΡΡ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡΡΡ ΠΊ Π»ΡΠ±ΠΎΠΌΡ ΡΠ·Π»Ρ, Π° Π²Π½ΡΡΡΠ΅Π½Π½ΡΡ ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΡ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ Π·Π°ΠΏΡΠΎΡ ΠΊΡΠ΄Π° Π½Π°Π΄ΠΎ. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΏΠ΅ΡΠ΅Π΄ RabbitMQ Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΡΠΈΠΊ Π½Π°Π³ΡΡΠ·ΠΊΠΈ. Kafka ΡΡΠ΅Π±ΡΠ΅Ρ, ΡΡΠΎΠ±Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π»ΠΈΡΡ ΠΊ ΡΠ·Π»Ρ, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠ°Π·ΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π»ΠΈΠ΄Π΅Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΡΠ°Π·Π΄Π΅Π»Π°. Π ΡΠ°ΠΊΠΎΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΡΠΈΠΊ Π½Π°Π³ΡΡΠ·ΠΊΠΈ Π½Π΅ ΠΏΠΎΡΡΠ°Π²ΠΈΡΡ. Π‘ΠΏΠΈΡΠΎΠΊ bootstrap.servers ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈ Π²Π°ΠΆΠ΅Π½, ΡΡΠΎΠ±Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΡ ΠΌΠΎΠ³Π»ΠΈ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ Π½ΡΠΆΠ½ΡΠΌ ΡΠ·Π»Π°ΠΌ ΠΈ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡ ΠΈΡ ΠΏΠΎΡΠ»Π΅ ΡΠ±ΠΎΡ.
ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΊΠΎΠ½ΡΠ΅Π½ΡΡΡΠ° Kafka
ΠΠΎ ΡΠΈΡ ΠΏΠΎΡ ΠΌΡ Π½Π΅ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ, ΠΊΠ°ΠΊ ΠΊΠ»Π°ΡΡΠ΅Ρ ΡΠ·Π½Π°Π΅Ρ ΠΎ ΠΏΠ°Π΄Π΅Π½ΠΈΠΈ Π±ΡΠΎΠΊΠ΅ΡΠ° ΠΈ ΠΊΠ°ΠΊ Π²ΡΠ±ΠΈΡΠ°Π΅ΡΡΡ Π½ΠΎΠ²ΡΠΉ Π»ΠΈΠ΄Π΅Ρ. Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΡ, ΠΊΠ°ΠΊ Kafka ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ ΡΠ΅ΡΠ΅Π²ΡΠΌΠΈ ΡΠ°Π·Π΄Π΅Π»Π°ΠΌΠΈ, ΡΠ½Π°ΡΠ°Π»Π° Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΊΠΎΠ½ΡΠ΅Π½ΡΡΡΠ°.
ΠΠ°ΠΆΠ΄ΡΠΉ ΠΊΠ»Π°ΡΡΠ΅Ρ Kafka ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π΅ΡΡΡ Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΠΊΠ»Π°ΡΡΠ΅ΡΠΎΠΌ Zookeeper β ΡΡΠΎ ΡΠ»ΡΠΆΠ±Π° ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅Π½ΡΡΡΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΈΡΡΠ΅ΠΌΠ΅ Π΄ΠΎΡΡΠΈΡΡ ΠΊΠΎΠ½ΡΠ΅Π½ΡΡΡΠ° Ρ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Ρ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΎΠΌ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡΠΈ Π½Π°Π΄ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΡΡ. ΠΠ»Ρ ΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΡΡΠ΅Π½ΠΈΡ ΠΈ Π·Π°ΠΏΠΈΡΠΈ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠΎΠ³Π»Π°ΡΠΈΠ΅ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° ΡΠ·Π»ΠΎΠ² Zookeeper.
Zookeeper Ρ ΡΠ°Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ΅ΡΠ°:
- Π‘ΠΏΠΈΡΠΎΠΊ ΡΠΎΠΏΠΈΠΊΠΎΠ², ΡΠ°Π·Π΄Π΅Π»ΠΎΠ², ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ, ΡΠ΅ΠΊΡΡΠΈΠ΅ ΡΠ΅ΠΏΠ»ΠΈΠΊΠΈ Π»ΠΈΠ΄Π΅ΡΠ°, ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ΅ΠΏΠ»ΠΈΠΊΠΈ.
- Π§Π»Π΅Π½Ρ ΠΊΠ»Π°ΡΡΠ΅ΡΠ°. ΠΠ°ΠΆΠ΄ΡΠΉ Π±ΡΠΎΠΊΠ΅Ρ ΠΏΠΈΠ½Π³ΡΠ΅Ρ Π² ΠΊΠ»Π°ΡΡΠ΅Ρ Zookeeper. ΠΡΠ»ΠΈ ΡΠΎΡ Π½Π΅ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΠΏΠΈΠ½Π³ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠ΅ΡΠΈΠΎΠ΄Π° Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΡΠΎ Zookeeper Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅Ρ Π±ΡΠΎΠΊΠ΅ΡΠ° Π² Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅.
- ΠΡΠ±ΠΎΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ ΠΈ Π·Π°ΠΏΠ°ΡΠ½ΠΎΠ³ΠΎ ΡΠ·Π»ΠΎΠ² Π΄Π»Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°.
Π£Π·Π΅Π» ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° β ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π±ΡΠΎΠΊΠ΅ΡΠΎΠ² Kafka, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° ΠΈΠ·Π±ΡΠ°Π½ΠΈΠ΅ Π»ΠΈΠ΄Π΅ΡΠΎΠ² ΡΠ΅ΠΏΠ»ΠΈΠΊ. Zookeeper ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΡ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ ΠΎ ΡΠ»Π΅Π½ΡΡΠ²Π΅ Π² ΠΊΠ»Π°ΡΡΠ΅ΡΠ΅ ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΡ ΡΠΎΠΏΠΈΠΊΠ°, ΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΡΡΠΈΠΌΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌΠΈ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΠΎΠ·ΡΠΌΠ΅ΠΌ Π½ΠΎΠ²ΡΠΉ ΡΠΎΠΏΠΈΠΊ Ρ Π΄Π΅ΡΡΡΡΡ ΡΠ°Π·Π΄Π΅Π»Π°ΠΌΠΈ ΠΈ ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½ΡΠΎΠΌ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ 3. ΠΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΡΠ±ΡΠ°ΡΡ Π»ΠΈΠ΄Π΅ΡΠ° ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ°Π·Π΄Π΅Π»Π°, ΠΏΡΡΠ°ΡΡΡ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π»ΠΈΠ΄Π΅ΡΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρ Π±ΡΠΎΠΊΠ΅ΡΠ°ΠΌΠΈ.
ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ°Π·Π΄Π΅Π»Π° ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ:
- ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π² Zookeeper ΠΎ ISR ΠΈ Π»ΠΈΠ΄Π΅ΡΠ΅;
- ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ LeaderAndISRCommand ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ Π±ΡΠΎΠΊΠ΅ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°Π·ΠΌΠ΅ΡΠ°Π΅Ρ ΡΠ΅ΠΏΠ»ΠΈΠΊΡ ΡΡΠΎΠ³ΠΎ ΡΠ°Π·Π΄Π΅Π»Π°, ΠΈΠ½ΡΠΎΡΠΌΠΈΡΡΡ Π±ΡΠΎΠΊΠ΅ΡΠΎΠ² ΠΎΠ± ISR ΠΈ Π»ΠΈΠ΄Π΅ΡΠ΅.
ΠΠΎΠ³Π΄Π° ΠΏΠ°Π΄Π°Π΅Ρ Π±ΡΠΎΠΊΠ΅Ρ Ρ Π»ΠΈΠ΄Π΅ΡΠΎΠΌ, Zookeeper ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΡ, ΠΈ ΡΠΎΡ Π²ΡΠ±ΠΈΡΠ°Π΅Ρ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π»ΠΈΠ΄Π΅ΡΠ°. ΠΠΏΡΡΡ ΠΆΠ΅, ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ ΡΠ½Π°ΡΠ°Π»Π° ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅Ρ Zookeeper, Π° Π·Π°ΡΠ΅ΠΌ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ Π±ΡΠΎΠΊΠ΅ΡΡ, ΡΠ²Π΅Π΄ΠΎΠΌΠ»ΡΡ ΠΈΡ ΠΎΠ± ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Π»ΠΈΠ΄Π΅ΡΡΡΠ²Π°.
ΠΠ°ΠΆΠ΄ΡΠΉ Π»ΠΈΠ΄Π΅Ρ Π½Π΅ΡΠ΅Ρ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΡΡΡ Π·Π° Π½Π°Π±ΠΎΡ ISR. ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° replica.lag.time.max.ms ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, ΠΊΡΠΎ ΡΡΠ΄Π° Π²ΠΎΠΉΠ΄Π΅Ρ. ΠΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ISR Π»ΠΈΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅Ρ Zookeeper Π½ΠΎΠ²ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ.
Zookeeper Π²ΡΠ΅Π³Π΄Π° ΠΈΠ½ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ ΠΎ Π»ΡΠ±ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΡ , ΡΡΠΎΠ±Ρ Π² ΡΠ»ΡΡΠ°Π΅ ΡΠ±ΠΎΡ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠ»Π°Π²Π½ΠΎ ΠΏΠ΅ΡΠ΅ΡΠ»ΠΎ ΠΊ Π½ΠΎΠ²ΠΎΠΌΡ Π»ΠΈΠ΄Π΅ΡΡ.
Π ΠΈΡ. 21. ΠΠΎΠ½ΡΠ΅Π½ΡΡΡ Kafka
ΠΡΠΎΡΠΎΠΊΠΎΠ» ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ
ΠΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π΄Π΅ΡΠ°Π»Π΅ΠΉ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ Π»ΡΡΡΠ΅ ΠΏΠΎΠ½ΡΡΡ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΠΈ ΠΏΠΎΡΠ΅ΡΠΈ Π΄Π°Π½Π½ΡΡ .
ΠΠ°ΠΏΡΠΎΡΡ Π½Π° Π²ΡΠ±ΠΎΡΠΊΡ, Log End Offset (LEO) ΠΈ Highwater Mark (HW)
ΠΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ, ΡΡΠΎ ΡΠΎΠ»Π»ΠΎΠ²Π΅ΡΡ ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΈ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ Π»ΠΈΠ΄Π΅ΡΡ Π·Π°ΠΏΡΠΎΡΡ Π½Π° Π²ΡΠ±ΠΎΡΠΊΡ (fetch). ΠΠ½ΡΠ΅ΡΠ²Π°Π» ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ 500 ΠΌΡ. ΠΡΠΎ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ RabbitMQ ΡΠ΅ΠΌ, ΡΡΠΎ Π² RabbitMQ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡ ΠΈΠ½ΠΈΡΠΈΠΈΡΡΠ΅ΡΡΡ Π½Π΅ Π·Π΅ΡΠΊΠ°Π»ΠΎΠΌ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ, Π° ΠΌΠ°ΡΡΠ΅ΡΠΎΠΌ. ΠΠ°ΡΡΠ΅Ρ ΠΏΡΡΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π½Π° Π·Π΅ΡΠΊΠ°Π»Π°.
ΠΠΈΠ΄Π΅Ρ ΠΈ Π²ΡΠ΅ ΡΠΎΠ»Π»ΠΎΠ²Π΅ΡΡ ΡΠΎΡ ΡΠ°Π½ΡΡΡ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ° Π»ΠΎΠ³Π° (Log End Offset, LEO) ΠΈ ΠΌΠ΅ΡΠΊΡ Highwater (HW). ΠΡΠΌΠ΅ΡΠΊΠ° LEO Ρ ΡΠ°Π½ΠΈΡ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π² Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ΅, Π° HW β ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°. ΠΠΎΠΌΠ½ΠΈΡΠ΅, ΡΡΠΎ Π΄Π»Ρ ΡΡΠ°ΡΡΡΠ° Β«ΠΊΠΎΠΌΠΌΠΈΡΒ» ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΎ Π²ΠΎ Π²ΡΠ΅Ρ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°Ρ ISR. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ LEO ΠΎΠ±ΡΡΠ½ΠΎ ΡΡΡΡ ΠΎΠΏΠ΅ΡΠ΅ΠΆΠ°Π΅Ρ HW.
ΠΠΎΠ³Π΄Π° Π»ΠΈΠ΄Π΅Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, ΠΎΠ½ ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ Π΅Π³ΠΎ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ. Π€ΠΎΠ»Π»ΠΎΠ²Π΅Ρ Π΄Π΅Π»Π°Π΅Ρ Π·Π°ΠΏΡΠΎΡ Π½Π° Π²ΡΠ±ΠΎΡΠΊΡ, ΠΏΠ΅ΡΠ΅Π΄Π°Π² ΡΠ²ΠΎΠΉ LEO. ΠΠ°ΡΠ΅ΠΌ Π»ΠΈΠ΄Π΅Ρ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΠ°ΠΊΠ΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΡΡΠΎΠ³ΠΎ LEO, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅Ρ ΡΠ΅ΠΊΡΡΠΈΠΉ HW. ΠΠΎΠ³Π΄Π° Π»ΠΈΠ΄Π΅Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΡΡΠΎ Π²ΡΠ΅ ΡΠ΅ΠΏΠ»ΠΈΠΊΠΈ ΡΠΎΡ ΡΠ°Π½ΠΈΠ»ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Ρ Π·Π°Π΄Π°Π½Π½ΡΠΌ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ, ΠΎΠ½ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°Π΅Ρ ΠΎΡΠΌΠ΅ΡΠΊΡ HW. Π’ΠΎΠ»ΡΠΊΠΎ Π»ΠΈΠ΄Π΅Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡΡ HW, ΠΈ ΡΠ°ΠΊ Π²ΡΠ΅ ΡΠΎΠ»Π»ΠΎΠ²Π΅ΡΡ ΡΠ·Π½Π°ΡΡ ΡΠ΅ΠΊΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π² ΠΎΡΠ²Π΅ΡΠ°Ρ Π½Π° ΡΠ²ΠΎΠΉ Π·Π°ΠΏΡΠΎΡ. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΡΠΎΠ»Π»ΠΎΠ²Π΅ΡΡ ΠΌΠΎΠ³ΡΡ ΠΎΡΡΡΠ°Π²Π°ΡΡ ΠΎΡ Π»ΠΈΠ΄Π΅ΡΠ° ΠΈ ΠΏΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌ, ΠΈ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π·Π½Π°Π½ΠΈΡ HW. ΠΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄ΠΎ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ HW.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Β«ΡΠΎΡ ΡΠ°Π½Π΅Π½Π½ΡΠΉΒ» (persisted) ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Π·Π°ΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π² ΠΏΠ°ΠΌΡΡΡ, Π° Π½Π΅ Π½Π° Π΄ΠΈΡΠΊ. ΠΠ»Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ, Kafka Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ Π½Π° Π΄ΠΈΡΠΊ Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»ΠΎΠΌ. Π£ RabbitMQ ΡΠΎΠΆΠ΅ Π΅ΡΡΡ ΡΠ°ΠΊΠΎΠΉ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π», Π½ΠΎ ΠΎΠ½ ΠΎΡΠΏΡΠ°Π²ΠΈΡ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΏΠ°Π±Π»ΠΈΡΠ΅ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΠ°ΡΡΠ΅Ρ ΠΈ Π²ΡΠ΅ Π·Π΅ΡΠΊΠ°Π»Π° Π·Π°ΠΏΠΈΡΠ°Π»ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π½Π° Π΄ΠΈΡΠΊ. Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Kafka ΠΏΠΎ ΡΠΎΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΈΠ½ΡΠ»ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ ack, ΠΊΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π·Π°ΠΏΠΈΡΠ°Π½ΠΎ Π² ΠΏΠ°ΠΌΡΡΡ. Kafka Π΄Π΅Π»Π°Π΅Ρ ΡΡΠ°Π²ΠΊΡ Π½Π° ΡΠΎ, ΡΡΠΎ ΠΈΠ·Π±ΡΡΠΎΡΠ½ΠΎΡΡΡ ΠΊΠΎΠΌΠΏΠ΅Π½ΡΠΈΡΡΠ΅Ρ ΡΠΈΡΠΊ ΠΊΡΠ°ΡΠΊΠΎΡΡΠΎΡΠ½ΠΎΠ³ΠΎ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½Π½ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΏΠ°ΠΌΡΡΠΈ.
Π‘Π±ΠΎΠΉ Π»ΠΈΠ΄Π΅ΡΠ°
ΠΠΎΠ³Π΄Π° ΠΏΠ°Π΄Π°Π΅Ρ Π»ΠΈΠ΄Π΅Ρ, Zookeeper ΡΠ²Π΅Π΄ΠΎΠΌΠ»ΡΠ΅Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ, ΠΈ ΡΠΎΡ Π²ΡΠ±ΠΈΡΠ°Π΅Ρ Π½ΠΎΠ²ΡΡ ΡΠ΅ΠΏΠ»ΠΈΠΊΡ Π»ΠΈΠ΄Π΅ΡΠ°. ΠΠΎΠ²ΡΠΉ Π»ΠΈΠ΄Π΅Ρ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ Π½ΠΎΠ²ΡΡ ΠΎΡΠΌΠ΅ΡΠΊΡ HW Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ ΡΠΎ ΡΠ²ΠΎΠΈΠΌ LEO. ΠΠ°ΡΠ΅ΠΌ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π½ΠΎΠ²ΠΎΠΌ Π»ΠΈΠ΄Π΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΡΠΎΠ»Π»ΠΎΠ²Π΅ΡΡ. Π Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π²Π΅ΡΡΠΈΠΈ Kafka, ΡΠΎΠ»Π»ΠΎΠ²Π΅Ρ Π²ΡΠ±Π΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π΄Π²ΡΡ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π²:
- Π£ΡΠ΅ΡΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ Π»ΠΎΠ³ Π΄ΠΎ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎΠ³ΠΎ HW ΠΈ ΠΎΡΠΏΡΠ°Π²ΠΈΡ Π½ΠΎΠ²ΠΎΠΌΡ Π»ΠΈΠ΄Π΅ΡΡ Π·Π°ΠΏΡΠΎΡ Π½Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠΉ ΠΎΡΠΌΠ΅ΡΠΊΠΈ.
- ΠΡΠΏΡΠ°Π²ΠΈΡ Π»ΠΈΠ΄Π΅ΡΡ Π·Π°ΠΏΡΠΎΡ, ΡΡΠΎΠ±Ρ ΡΠ·Π½Π°ΡΡ HW Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ Π΅Π³ΠΎ ΠΈΠ·Π±ΡΠ°Π½ΠΈΡ Π»ΠΈΠ΄Π΅ΡΠΎΠΌ, Π° Π·Π°ΡΠ΅ΠΌ ΡΡΠ΅ΡΠ΅Ρ Π»ΠΎΠ³ Π΄ΠΎ ΡΡΠΎΠ³ΠΎ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΡ. ΠΠ°ΡΠ΅ΠΌ Π½Π°ΡΠ½Π΅Ρ Π΄Π΅Π»Π°ΡΡ ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π·Π°ΠΏΡΠΎΡΡ Π½Π° Π²ΡΠ±ΠΎΡΠΊΡ, Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΡΡΠΎΠ³ΠΎ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΡ.
Π€ΠΎΠ»Π»ΠΎΠ²Π΅ΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡΡ ΡΡΠ΅Π·Π°ΡΡ Π»ΠΎΠ³ ΠΏΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΏΡΠΈΡΠΈΠ½Π°ΠΌ:
- ΠΠΎΠ³Π΄Π° ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΠ±ΠΎΠΉ Π»ΠΈΠ΄Π΅ΡΠ°, ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠΎΠ»Π»ΠΎΠ²Π΅Ρ ΠΈΠ· Π½Π°Π±ΠΎΡΠ° ISR, Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π² Zookeeper, Π²ΡΠΈΠ³ΡΡΠ²Π°Π΅Ρ Π²ΡΠ±ΠΎΡΡ ΠΈ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π»ΠΈΠ΄Π΅ΡΠΎΠΌ. ΠΡΠ΅ ΡΠΎΠ»Π»ΠΎΠ²Π΅ΡΡ Π² ISR, Ρ ΠΎΡΡ ΠΈ ΡΡΠΈΡΠ°ΡΡΡΡ Β«ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌΠΈΒ», ΠΌΠΎΠ³Π»ΠΈ ΠΈ Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΎΡ Π±ΡΠ²ΡΠ΅Π³ΠΎ Π»ΠΈΠ΄Π΅ΡΠ° ΠΊΠΎΠΏΠΈΠΈ Π²ΡΠ΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ. ΠΠΏΠΎΠ»Π½Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΡΠΎ Ρ ΠΈΠ·Π±ΡΠ°Π½Π½ΠΎΠ³ΠΎ ΡΠΎΠ»Π»ΠΎΠ²Π΅ΡΠ° Π½Π΅ ΡΠ°ΠΌΠ°Ρ Π°ΠΊΡΡΠ°Π»ΡΠ½Π°Ρ ΠΊΠΎΠΏΠΈΡ. Kafka Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ, ΡΡΠΎ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΠΌΠΈ Π½Π΅Ρ ΡΠ°ΡΡ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΡΠ°ΡΡ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ, ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠΎΠ»Π»ΠΎΠ²Π΅Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΡΠ΅ΡΡ ΡΠ²ΠΎΠΉ Π»ΠΎΠ³ Π΄ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ HW Π½ΠΎΠ²ΠΎΠ³ΠΎ Π»ΠΈΠ΄Π΅ΡΠ° Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ Π΅Π³ΠΎ ΠΈΠ·Π±ΡΠ°Π½ΠΈΡ. ΠΡΠΎ Π΅ΡΠ΅ ΠΎΠ΄Π½Π° ΠΏΡΠΈΡΠΈΠ½Π°, ΠΏΠΎΡΠ΅ΠΌΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° acks=all ΡΠ°ΠΊ Π²Π°ΠΆΠ½Π° Π΄Π»Ρ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡΠΈ.
- Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΈ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡΡΡ Π½Π° Π΄ΠΈΡΠΊ. ΠΡΠ»ΠΈ Π²ΡΠ΅ ΡΠ·Π»Ρ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° ΠΎΡΠΊΠ°Π·Π°Π»ΠΈ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ, ΡΠΎ Π½Π° Π΄ΠΈΡΠΊΠ°Ρ ΡΠΎΡ ΡΠ°Π½ΡΡΡΡ ΡΠ΅ΠΏΠ»ΠΈΠΊΠΈ Ρ ΡΠ°Π·Π½ΡΠΌ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ. ΠΠΏΠΎΠ»Π½Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΡΠΎ ΠΊΠΎΠ³Π΄Π° Π±ΡΠΎΠΊΠ΅ΡΡ ΡΠ½ΠΎΠ²Π° Π²Π΅ΡΠ½ΡΡΡΡ Π² ΡΠ΅ΡΡ, Π½ΠΎΠ²ΡΠΉ Π»ΠΈΠ΄Π΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΈΠ·Π±ΡΠ°Π½, ΠΎΠΊΠ°ΠΆΠ΅ΡΡΡ ΠΏΠΎΠ·Π°Π΄ΠΈ ΡΠ²ΠΎΠΈΡ ΡΠΎΠ»Π»ΠΎΠ²Π΅ΡΠΎΠ², ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ½ ΡΠΎΡ ΡΠ°Π½ΠΈΠ»ΡΡ Π½Π° Π΄ΠΈΡΠΊ ΡΠ°Π½ΡΡΠ΅ Π΄ΡΡΠ³ΠΈΡ .
ΠΠΎΡΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ c ΠΊΠ»Π°ΡΡΠ΅ΡΠΎΠΌ
ΠΡΠΈ Π²ΠΎΡΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΈ Ρ ΠΊΠ»Π°ΡΡΠ΅ΡΠΎΠΌ ΡΠ΅ΠΏΠ»ΠΈΠΊΠΈ ΠΏΠΎΡΡΡΠΏΠ°ΡΡ ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ ΠΏΡΠΈ ΡΠ±ΠΎΠ΅ Π»ΠΈΠ΄Π΅ΡΠ°: ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΡΠ΅ΠΏΠ»ΠΈΠΊΡ Π»ΠΈΠ΄Π΅ΡΠ° ΠΈ ΡΡΠ΅ΠΊΠ°ΡΡ ΡΠ²ΠΎΠΉ Π»ΠΎΠ³ Π΄ΠΎ Π΅Π³ΠΎ HW (Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ ΠΈΠ·Π±ΡΠ°Π½ΠΈΡ). ΠΠ»Ρ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ, RabbitMQ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ ΡΠ°ΡΡΠ΅Π½ΠΈΠ²Π°Π΅Ρ Π²ΠΎΡΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½Π½ΡΠ΅ ΡΠ·Π»Ρ ΠΊΠ°ΠΊ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π½ΠΎΠ²ΡΠ΅. Π ΠΎΠ±ΠΎΠΈΡ ΡΠ»ΡΡΠ°ΡΡ Π±ΡΠΎΠΊΠ΅Ρ ΠΎΡΠ±ΡΠ°ΡΡΠ²Π°Π΅Ρ Π»ΡΠ±ΠΎΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅. ΠΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ, ΡΠΎ ΠΌΠ°ΡΡΠ΅Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ΅ΠΏΠ»ΠΈΡΠΈΡΠΎΠ²Π°ΡΡ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ Π²ΡΠ΅ ΡΠ΅ΠΊΡΡΠ΅Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Π² Π½ΠΎΠ²ΠΎΠ΅ Π·Π΅ΡΠΊΠ°Π»ΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ Β«ΠΈ ΠΏΡΡΡΡ Π²Π΅ΡΡ ΠΌΠΈΡ ΠΏΠΎΠ΄ΠΎΠΆΠ΄Π΅ΡΒ». ΠΠΎ Π²ΡΠ΅ΠΌΡ ΡΡΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΌΠ°ΡΡΠ΅Ρ Π½Π΅ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΡΡΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ Π·Π°ΠΏΠΈΡΠΈ. Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π² Π±ΠΎΠ»ΡΡΠΈΡ ΠΎΡΠ΅ΡΠ΅Π΄ΡΡ .
Kafka β ΡΡΠΎ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ Π»ΠΎΠ³, ΠΈ Π² ΡΠ΅Π»ΠΎΠΌ ΠΎΠ½ Ρ ΡΠ°Π½ΠΈΡ Π±ΠΎΠ»ΡΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, ΡΠ΅ΠΌ ΠΎΡΠ΅ΡΠ΅Π΄Ρ RabbitMQ, Π³Π΄Π΅ Π΄Π°Π½Π½ΡΠ΅ ΡΠ΄Π°Π»ΡΡΡΡΡ ΠΈΠ· ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ ΠΏΠΎΡΠ»Π΅ ΠΈΡ ΡΡΠ΅Π½ΠΈΡ. ΠΠΊΡΠΈΠ²Π½ΡΠ΅ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΡΡΠ°Π²Π°ΡΡΡΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠΌΠΈ. ΠΠΎ Kafka β ΡΡΠΎ Π»ΠΎΠ³ Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΎΠΉ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΡΠΎΠΊ Π² Π΄Π½ΠΈ ΠΈΠ»ΠΈ Π½Π΅Π΄Π΅Π»ΠΈ. ΠΠΎΠ΄Ρ ΠΎΠ΄ Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΎΠΉ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ ΠΈ ΠΏΠΎΠ»Π½ΠΎΠΉ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ Π½Π΅ΠΏΡΠΈΠ΅ΠΌΠ»Π΅ΠΌ Π΄Π»Ρ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π»ΠΎΠ³Π°. ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ ΡΠΎΠ»Π»ΠΎΠ²Π΅ΡΡ Kafka ΠΏΡΠΎΡΡΠΎ ΠΎΠ±ΡΠ΅Π·Π°ΡΡ ΡΠ²ΠΎΠΉ Π»ΠΎΠ³ Π΄ΠΎ HW Π»ΠΈΠ΄Π΅ΡΠ° (Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ Π΅Π³ΠΎ ΠΈΠ·Π±ΡΠ°Π½ΠΈΡ) Π² ΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ ΠΈΡ ΠΊΠΎΠΏΠΈΡ ΠΎΠΏΠ΅ΡΠ΅ΠΆΠ°Π΅Ρ Π»ΠΈΠ΄Π΅ΡΠ°. Π Π±ΠΎΠ»Π΅Π΅ Π²Π΅ΡΠΎΡΡΠ½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, ΠΊΠΎΠ³Π΄Π° ΡΠΎΠ»Π»ΠΎΠ²Π΅Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΠΏΠΎΠ·Π°Π΄ΠΈ, ΠΎΠ½ ΠΏΡΠΎΡΡΠΎ Π½Π°ΡΠΈΠ½Π°Π΅Ρ Π΄Π΅Π»Π°ΡΡ Π·Π°ΠΏΡΠΎΡΡ Π½Π° Π²ΡΠ±ΠΎΡΠΊΡ, Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ LEO.
ΠΠΎΠ²ΡΠ΅ ΠΈΠ»ΠΈ Π²ΠΎΡΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½Π½ΡΠ΅ ΡΠΎΠ»Π»ΠΎΠ²Π΅ΡΡ Π½Π°ΡΠΈΠ½Π°ΡΡ Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Π°ΠΌΠΈ ISR ΠΈ Π½Π΅ ΡΡΠ°ΡΡΠ²ΡΡΡ Π² ΠΊΠΎΠΌΠΌΠΈΡΠ°Ρ . ΠΠ½ΠΈ ΠΏΡΠΎΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΡΠ΄ΠΎΠΌ Ρ Π³ΡΡΠΏΠΏΠΎΠΉ, ΠΏΠΎΠ»ΡΡΠ°Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΡΠ°ΠΊ Π±ΡΡΡΡΠΎ, ΠΊΠ°ΠΊ ΠΌΠΎΠ³ΡΡ, ΠΏΠΎΠΊΠ° Π½Π΅ Π΄ΠΎΠ³ΠΎΠ½ΡΡ Π»ΠΈΠ΄Π΅ΡΠ° ΠΈ Π½Π΅ Π²ΠΎΠΉΠ΄ΡΡ Π² ISR. ΠΠ΄Π΅ΡΡ Π½Π΅Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΠΈ Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π²ΡΠ±ΡΠ°ΡΡΠ²Π°ΡΡ Π²ΡΠ΅ ΡΠ²ΠΎΠΈ Π΄Π°Π½Π½ΡΠ΅.
ΠΠ°ΡΡΡΠ΅Π½ΠΈΠ΅ ΡΠ²ΡΠ·Π½ΠΎΡΡΠΈ
Π£ Kafka Π±ΠΎΠ»ΡΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², ΡΠ΅ΠΌ Π² RabbitMQ, ΠΏΠΎΡΡΠΎΠΌΡ Π·Π΄Π΅ΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΠΉ Π½Π°Π±ΠΎΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΉ, ΠΊΠΎΠ³Π΄Π° Π² ΠΊΠ»Π°ΡΡΠ΅ΡΠ΅ Π½Π°ΡΡΡΠ°Π΅ΡΡΡ ΡΠ²ΡΠ·Π½ΠΎΡΡΡ. ΠΠΎ Kafka ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π»Π°ΡΡ Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠ΅ΡΠΎΠ², ΡΠ°ΠΊ ΡΡΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΎΡΠ΅Π½Ρ Ρ ΠΎΡΠΎΡΠΎ ΠΏΡΠΎΠ΄ΡΠΌΠ°Π½Ρ.
ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π² Π½Π°ΡΡΡΠ΅Π½ΠΈΡ ΡΠ²ΡΠ·Π½ΠΎΡΡΠΈ:
- Π‘ΡΠ΅Π½Π°ΡΠΈΠΉ 1. Π€ΠΎΠ»Π»ΠΎΠ²Π΅Ρ Π½Π΅ Π²ΠΈΠ΄ΠΈΡ Π»ΠΈΠ΄Π΅ΡΠ°, Π½ΠΎ Π²ΡΠ΅ Π΅ΡΠ΅ Π²ΠΈΠ΄ΠΈΡ Zookeeper.
- Π‘ΡΠ΅Π½Π°ΡΠΈΠΉ 2. ΠΠΈΠ΄Π΅Ρ Π½Π΅ Π²ΠΈΠ΄ΠΈΡ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΎΠ»Π»ΠΎΠ²Π΅ΡΠ°, Π½ΠΎ Π²ΡΠ΅ Π΅ΡΠ΅ Π²ΠΈΠ΄ΠΈΡ Zookeeper.
- Π‘ΡΠ΅Π½Π°ΡΠΈΠΉ 3. Π€ΠΎΠ»Π»ΠΎΠ²Π΅Ρ Π²ΠΈΠ΄ΠΈΡ Π»ΠΈΠ΄Π΅ΡΠ°, Π½ΠΎ Π½Π΅ Π²ΠΈΠ΄ΠΈΡ Zookeeper.
- Π‘ΡΠ΅Π½Π°ΡΠΈΠΉ 4. ΠΠΈΠ΄Π΅Ρ Π²ΠΈΠ΄ΠΈΡ ΡΠΎΠ»Π»ΠΎΠ²Π΅ΡΠΎΠ², Π½ΠΎ Π½Π΅ Π²ΠΈΠ΄ΠΈΡ Zookeeper.
- Π‘ΡΠ΅Π½Π°ΡΠΈΠΉ 5. Π€ΠΎΠ»Π»ΠΎΠ²Π΅Ρ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΎΡΠ΄Π΅Π»Π΅Π½ ΠΈ ΠΎΡ Π΄ΡΡΠ³ΠΈΡ ΡΠ·Π»ΠΎΠ² Kafka, ΠΈ ΠΎΡ Zookeeper.
- Π‘ΡΠ΅Π½Π°ΡΠΈΠΉ 6. ΠΠΈΠ΄Π΅Ρ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΎΡΠ΄Π΅Π»Π΅Π½ ΠΈ ΠΎΡ Π΄ΡΡΠ³ΠΈΡ ΡΠ·Π»ΠΎΠ² Kafka, ΠΈ ΠΎΡ Zookeeper.
- Π‘ΡΠ΅Π½Π°ΡΠΈΠΉ 7. Π£Π·Π΅Π» ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° Kafka Π½Π΅ Π²ΠΈΠ΄ΠΈΡ Π΄ΡΡΠ³ΠΎΠΉ ΡΠ·Π΅Π» Kafka.
- Π‘ΡΠ΅Π½Π°ΡΠΈΠΉ 8. ΠΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ Kafka Π½Π΅ Π²ΠΈΠ΄ΠΈΡ Zookeeper.
ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΡΠ΅Π½Π°ΡΠΈΡ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½ΠΎ ΡΠ²ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅.
Π‘ΡΠ΅Π½Π°ΡΠΈΠΉ 1. Π€ΠΎΠ»Π»ΠΎΠ²Π΅Ρ Π½Π΅ Π²ΠΈΠ΄ΠΈΡ Π»ΠΈΠ΄Π΅ΡΠ°, Π½ΠΎ Π²ΡΠ΅ Π΅ΡΠ΅ Π²ΠΈΠ΄ΠΈΡ Zookeeper
Π ΠΈΡ. 22. Π‘ΡΠ΅Π½Π°ΡΠΈΠΉ 1. ISR ΠΈΠ· ΡΡΠ΅Ρ
ΡΠ΅ΠΏΠ»ΠΈΠΊ
ΠΠ°ΡΡΡΠ΅Π½ΠΈΠ΅ ΡΠ²ΡΠ·Π½ΠΎΡΡΠΈ ΠΎΡΠ΄Π΅Π»ΡΠ΅Ρ Π±ΡΠΎΠΊΠ΅ΡΠ° 3 ΠΎΡ Π±ΡΠΎΠΊΠ΅ΡΠΎΠ² 1 ΠΈ 2, Π½ΠΎ Π½Π΅ ΠΎΡ Zookeeper. ΠΡΠΎΠΊΠ΅Ρ 3 Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ Π·Π°ΠΏΡΠΎΡΡ Π½Π° Π²ΡΠ±ΠΎΡΠΊΡ. ΠΠΎ ΠΈΡΡΠ΅ΡΠ΅Π½ΠΈΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ replica.lag.time.max.ms ΠΎΠ½ ΡΠ΄Π°Π»ΡΠ΅ΡΡΡ ΠΈΠ· ISR ΠΈ Π½Π΅ ΡΡΠ°ΡΡΠ²ΡΠ΅Ρ Π² ΠΊΠΎΠΌΠΌΠΈΡΠ°Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ. ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ²ΡΠ·Π½ΠΎΡΡΡ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π°, ΠΎΠ½ Π²ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²ΠΈΡ Π·Π°ΠΏΡΠΎΡΡ Π½Π° Π²ΡΠ±ΠΎΡΠΊΡ ΠΈ ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡΡΡ ΠΊ ISR, ΠΊΠΎΠ³Π΄Π° Π΄ΠΎΠ³ΠΎΠ½ΠΈΡ Π»ΠΈΠ΄Π΅ΡΠ°. Zookeeper ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΠΏΠΈΠ½Π³ΠΈ ΠΈ ΡΡΠΈΡΠ°ΡΡ, ΡΡΠΎ Π±ΡΠΎΠΊΠ΅Ρ ΠΆΠΈΠ² ΠΈ Π·Π΄ΠΎΡΠΎΠ².
Π ΠΈΡ. 23. Π‘ΡΠ΅Π½Π°ΡΠΈΠΉ 1. ΠΡΠΎΠΊΠ΅Ρ ΡΠ΄Π°Π»ΡΠ΅ΡΡΡ ΠΈΠ· ISR, Π΅ΡΠ»ΠΈ ΠΎΡ Π½Π΅Π³ΠΎ Π½Π΅ ΠΏΠΎΠ»ΡΡΠ΅Π½ Π·Π°ΠΏΡΠΎΡ Π½Π° Π²ΡΠ±ΠΎΡΠΊΡ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»Π° replica.lag.time.max.ms
ΠΠ΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ (split-brain) ΠΈΠ»ΠΈ ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΠ·Π»Π°, ΠΊΠ°ΠΊ Π² RabbitMQ. ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ ΡΠΌΠ΅Π½ΡΡΠ°Π΅ΡΡΡ ΠΈΠ·Π±ΡΡΠΎΡΠ½ΠΎΡΡΡ.
Π‘ΡΠ΅Π½Π°ΡΠΈΠΉ 2. ΠΠΈΠ΄Π΅Ρ Π½Π΅ Π²ΠΈΠ΄ΠΈΡ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΎΠ»Π»ΠΎΠ²Π΅ΡΠ°, Π½ΠΎ Π²ΡΠ΅ Π΅ΡΠ΅ Π²ΠΈΠ΄ΠΈΡ Zookeeper
Π ΠΈΡ. 24. Π‘ΡΠ΅Π½Π°ΡΠΈΠΉ 2. ΠΠΈΠ΄Π΅Ρ ΠΈ Π΄Π²Π° ΡΠΎΠ»Π»ΠΎΠ²Π΅ΡΠ°
ΠΠ°ΡΡΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΡΠ²ΡΠ·Π½ΠΎΡΡΠΈ ΠΎΡΠ΄Π΅Π»ΡΠ΅Ρ Π»ΠΈΠ΄Π΅ΡΠ° ΠΎΡ ΡΠΎΠ»Π»ΠΎΠ²Π΅ΡΠΎΠ², Π½ΠΎ Π±ΡΠΎΠΊΠ΅Ρ Π²ΡΠ΅ Π΅ΡΠ΅ Π²ΠΈΠ΄ΠΈΡ Zookeeper. ΠΠ°ΠΊ ΠΈ Π² ΠΏΠ΅ΡΠ²ΠΎΠΌ ΡΡΠ΅Π½Π°ΡΠΈΠΈ, ISR ΡΠΆΠΈΠΌΠ°Π΅ΡΡΡ, Π½ΠΎ Π½Π° ΡΡΠΎΡ ΡΠ°Π· ΡΠΎΠ»ΡΠΊΠΎ Π΄ΠΎ Π»ΠΈΠ΄Π΅ΡΠ°, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π²ΡΠ΅ ΡΠΎΠ»Π»ΠΎΠ²Π΅ΡΡ ΠΏΠ΅ΡΠ΅ΡΡΠ°ΡΡ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ Π·Π°ΠΏΡΠΎΡΡ Π½Π° Π²ΡΠ±ΠΎΡΠΊΡ. ΠΠΏΡΡΡ ΠΆΠ΅, Π½Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ. ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΠΎΡΠ΅ΡΡ ΠΈΠ·Π±ΡΡΠΎΡΠ½ΠΎΡΡΠΈ Π΄Π»Ρ Π½ΠΎΠ²ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, ΠΏΠΎΠΊΠ° ΡΠ²ΡΠ·Π½ΠΎΡΡΡ Π½Π΅ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ. Zookeeper ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΠΏΠΈΠ½Π³ΠΈ ΠΈ ΡΡΠΈΡΠ°Π΅Ρ, ΡΡΠΎ Π±ΡΠΎΠΊΠ΅Ρ ΠΆΠΈΠ² ΠΈ Π·Π΄ΠΎΡΠΎΠ².
Π ΠΈΡ. 25. Π‘ΡΠ΅Π½Π°ΡΠΈΠΉ 2. ISR ΡΠΆΠ°Π»ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄ΠΎ Π»ΠΈΠ΄Π΅ΡΠ°
Π‘ΡΠ΅Π½Π°ΡΠΈΠΉ 3. Π€ΠΎΠ»Π»ΠΎΠ²Π΅Ρ Π²ΠΈΠ΄ΠΈΡ Π»ΠΈΠ΄Π΅ΡΠ°, Π½ΠΎ Π½Π΅ Π²ΠΈΠ΄ΠΈΡ Zookeeper
Π€ΠΎΠ»Π»ΠΎΠ²Π΅Ρ ΠΎΡΠ΄Π΅Π»ΡΠ΅ΡΡΡ ΠΎΡ Zookeeper, Π½ΠΎ Π½Π΅ ΠΎΡ Π±ΡΠΎΠΊΠ΅ΡΠ° Ρ Π»ΠΈΠ΄Π΅ΡΠΎΠΌ. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΡΠΎΠ»Π»ΠΎΠ²Π΅Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ Π΄Π΅Π»Π°ΡΡ Π·Π°ΠΏΡΠΎΡΡ Π²ΡΠ±ΠΎΡΠΊΠΈ ΠΈ Π±ΡΡΡ ΡΠ»Π΅Π½ΠΎΠΌ ISR. Zookeeper Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΠΏΠΈΠ½Π³ΠΈ ΠΈ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΡΠ΅Ρ ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ Π±ΡΠΎΠΊΠ΅ΡΠ°, Π½ΠΎ ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ»Π»ΠΎΠ²Π΅Ρ, Π½Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠΉ ΠΏΠΎΡΠ»Π΅ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ.
Π ΠΈΡ. 26. Π‘ΡΠ΅Π½Π°ΡΠΈΠΉ 3. Π€ΠΎΠ»Π»ΠΎΠ²Π΅Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ Π»ΠΈΠ΄Π΅ΡΡ Π·Π°ΠΏΡΠΎΡΡ Π½Π° Π²ΡΠ±ΠΎΡΠΊΡ
Π‘ΡΠ΅Π½Π°ΡΠΈΠΉ 4. ΠΠΈΠ΄Π΅Ρ Π²ΠΈΠ΄ΠΈΡ ΡΠΎΠ»Π»ΠΎΠ²Π΅ΡΠΎΠ², Π½ΠΎ Π½Π΅ Π²ΠΈΠ΄ΠΈΡ Zookeeper
Π ΠΈΡ. 27. Π‘ΡΠ΅Π½Π°ΡΠΈΠΉ 4. ΠΠΈΠ΄Π΅Ρ ΠΈ Π΄Π²Π° ΡΠΎΠ»Π»ΠΎΠ²Π΅ΡΠ°
ΠΠΈΠ΄Π΅Ρ ΠΎΡΠ΄Π΅Π»Π΅Π½ ΠΎΡ Zookeeper, Π½ΠΎ Π½Π΅ ΠΎΡ Π±ΡΠΎΠΊΠ΅ΡΠΎΠ² Ρ ΡΠΎΠ»Π»ΠΎΠ²Π΅ΡΠ°ΠΌΠΈ.
Π ΠΈΡ. 28. Π‘ΡΠ΅Π½Π°ΡΠΈΠΉ 4. ΠΠΈΠ΄Π΅Ρ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½ ΠΎΡ Zookeeper
Π§Π΅ΡΠ΅Π· Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Zookeeper Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΡΠ΅Ρ ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ Π±ΡΠΎΠΊΠ΅ΡΠ° ΠΈ ΡΠ²Π΅Π΄ΠΎΠΌΠΈΡ ΠΎΠ± ΡΡΠΎΠΌ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ. Π’ΠΎΡ Π²ΡΠ±Π΅ΡΠ΅Ρ ΡΡΠ΅Π΄ΠΈ ΡΠΎΠ»Π»ΠΎΠ²Π΅ΡΠΎΠ² Π½ΠΎΠ²ΠΎΠ³ΠΎ Π»ΠΈΠ΄Π΅ΡΠ°. ΠΠ΄Π½Π°ΠΊΠΎ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ Π»ΠΈΠ΄Π΅Ρ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡ Π΄ΡΠΌΠ°ΡΡ, ΡΡΠΎ ΠΎΠ½ ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈΠ΄Π΅ΡΠΎΠΌ ΠΈ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π·Π°ΠΏΠΈΡΠΈ Ρ acks=1. Π€ΠΎΠ»Π»ΠΎΠ²Π΅ΡΡ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ Π΅ΠΌΡ Π·Π°ΠΏΡΠΎΡΡ Π½Π° Π²ΡΠ±ΠΎΡΠΊΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΠ½ ΠΏΠΎΡΡΠΈΡΠ°Π΅Ρ ΠΈΡ ΠΌΠ΅ΡΡΠ²ΡΠΌΠΈ ΠΈ ΠΏΠΎΠΏΡΡΠ°ΡΡΡΡ ΡΠΆΠ°ΡΡ ISR Π΄ΠΎ ΡΠ°ΠΌΠΎΠ³ΠΎ ΡΠ΅Π±Ρ. ΠΠΎ ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Ρ Π½Π΅Π³ΠΎ Π½Π΅Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊ Zookeeper, ΠΎΠ½ Π½Π΅ ΡΠΌΠΎΠΆΠ΅Ρ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ, ΠΈ Π² ΡΡΠΎΡ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΎΡΠΊΠ°ΠΆΠ΅ΡΡΡ ΠΎΡ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ΅ΠΌΠ° Π·Π°ΠΏΠΈΡΠ΅ΠΉ.
Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ acks=all Π½Π΅ ΠΏΠΎΠ»ΡΡΠ°Ρ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΠ½Π°ΡΠ°Π»Π° ISR Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π²ΡΠ΅ ΡΠ΅ΠΏΠ»ΠΈΠΊΠΈ, Π° Π΄ΠΎ Π½ΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π½Π΅ Π΄ΠΎΡ ΠΎΠ΄ΡΡ. ΠΠΎΠ³Π΄Π° ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΡΠΉ Π»ΠΈΠ΄Π΅Ρ ΠΏΠΎΠΏΡΡΠ°Π΅ΡΡΡ ΡΠ΄Π°Π»ΠΈΡΡ ΠΈΡ ΠΈΠ· ISR, ΠΎΠ½ Π½Π΅ ΡΠΌΠΎΠΆΠ΅Ρ ΡΡΠΎΠ³ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΠΈ Π²ΠΎΠΎΠ±ΡΠ΅ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½Π΅Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ.
ΠΠ»ΠΈΠ΅Π½ΡΡ Π²ΡΠΊΠΎΡΠ΅ Π·Π°ΠΌΠ΅ΡΠ°ΡΡ ΡΠΌΠ΅Π½Ρ Π»ΠΈΠ΄Π΅ΡΠ° ΠΈ Π½Π°ΡΠΈΠ½Π°ΡΡ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ Π·Π°ΠΏΠΈΡΠΈ Π½Π° Π½ΠΎΠ²ΡΠΉ ΡΠ΅ΡΠ²Π΅Ρ. ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΡΡ Π²ΠΎΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ, ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ Π»ΠΈΠ΄Π΅Ρ Π²ΠΈΠ΄ΠΈΡ, ΡΡΠΎ ΠΎΠ½ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ Π»ΠΈΠ΄Π΅Ρ, ΠΈ ΠΎΠ±ΡΠ΅Π·Π°Π΅Ρ ΡΠ²ΠΎΠΉ Π»ΠΎΠ³ Π΄ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ HW, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π±ΡΠ»ΠΎ Ρ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π»ΠΈΠ΄Π΅ΡΠ° Π² ΠΌΠΎΠΌΠ΅Π½Ρ ΡΠ±ΠΎΡ, ΡΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΡΠ°ΡΡ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ Π»ΠΎΠ³ΠΎΠ². ΠΠ°ΡΠ΅ΠΌ ΠΎΠ½ Π½Π°ΡΠ½Π΅Ρ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ Π·Π°ΠΏΡΠΎΡΡ Π½Π° Π²ΡΠ±ΠΎΡΠΊΡ Π½ΠΎΠ²ΠΎΠΌΡ Π»ΠΈΠ΄Π΅ΡΡ. Π’Π΅ΡΡΡΡΡΡ Π²ΡΠ΅ Π·Π°ΠΏΠΈΡΠΈ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π»ΠΈΠ΄Π΅ΡΠ°, Π½Π΅ ΡΠ΅ΠΏΠ»ΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π½ΠΎΠ²ΠΎΠΌΡ Π»ΠΈΠ΄Π΅ΡΡ. Π’ΠΎ Π΅ΡΡΡ Π±ΡΠ΄ΡΡ ΠΏΠΎΡΠ΅ΡΡΠ½Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, Π½Π΅ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½Π½ΡΠ΅ ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΡΠΌ Π»ΠΈΠ΄Π΅ΡΠΎΠΌ Π² ΡΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΠΊΡΠ½Π΄, ΠΊΠΎΠ³Π΄Π° ΡΠ°Π±ΠΎΡΠ°Π»ΠΎ Π΄Π²Π° Π»ΠΈΠ΄Π΅ΡΠ°.
Π ΠΈΡ. 29. Π‘ΡΠ΅Π½Π°ΡΠΈΠΉ 4. ΠΠΈΠ΄Π΅Ρ Π½Π° Π±ΡΠΎΠΊΠ΅ΡΠ΅ 1 ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΡΠΎΠ»Π»ΠΎΠ²Π΅ΡΠΎΠΌ ΠΏΠΎΡΠ»Π΅ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠ΅ΡΠΈ
Π‘ΡΠ΅Π½Π°ΡΠΈΠΉ 5. Π€ΠΎΠ»Π»ΠΎΠ²Π΅Ρ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΎΡΠ΄Π΅Π»Π΅Π½ ΠΈ ΠΎΡ Π΄ΡΡΠ³ΠΈΡ ΡΠ·Π»ΠΎΠ² Kafka, ΠΈ ΠΎΡ Zookeeper
Π€ΠΎΠ»Π»ΠΎΠ²Π΅Ρ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½ ΠΈ ΠΎΡ Π΄ΡΡΠ³ΠΈΡ ΡΠ·Π»ΠΎΠ² Kafka, ΠΈ ΠΎΡ Zookeeper. ΠΠ½ ΠΏΡΠΎΡΡΠΎ ΡΠ΄Π°Π»ΡΠ΅ΡΡΡ ΠΈΠ· ISR, ΠΏΠΎΠΊΠ° ΡΠ΅ΡΡ Π½Π΅ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ, Π° ΠΏΠΎΡΠΎΠΌ Π΄ΠΎΠ³ΠΎΠ½ΡΠ΅Ρ ΠΎΡΡΠ°Π»ΡΠ½ΡΡ .
Π ΠΈΡ. 30. Π‘ΡΠ΅Π½Π°ΡΠΈΠΉ 5. ΠΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠΎΠ»Π»ΠΎΠ²Π΅Ρ ΡΠ΄Π°Π»ΡΠ΅ΡΡΡ ΠΈΠ· ISR
Π‘ΡΠ΅Π½Π°ΡΠΈΠΉ 6. ΠΠΈΠ΄Π΅Ρ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΎΡΠ΄Π΅Π»Π΅Π½ ΠΈ ΠΎΡ Π΄ΡΡΠ³ΠΈΡ ΡΠ·Π»ΠΎΠ² Kafka, ΠΈ ΠΎΡ Zookeeper
Π ΠΈΡ. 31. Π‘ΡΠ΅Π½Π°ΡΠΈΠΉ 6. ΠΠΈΠ΄Π΅Ρ ΠΈ Π΄Π²Π° ΡΠΎΠ»Π»ΠΎΠ²Π΅ΡΠ°
ΠΠΈΠ΄Π΅Ρ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½ ΠΎΡ ΡΠ²ΠΎΠΈΡ ΡΠΎΠ»Π»ΠΎΠ²Π΅ΡΠΎΠ², ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° ΠΈ Zookeeper. Π ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΠΊΠΎΠ³ΠΎ ΠΏΠ΅ΡΠΈΠΎΠ΄Π° ΠΎΠ½ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π·Π°ΠΏΠΈΡΠΈ Ρ acks=1.
Π ΠΈΡ. 32. Π‘ΡΠ΅Π½Π°ΡΠΈΠΉ 6. ΠΠ·ΠΎΠ»ΡΡΠΈΡ Π»ΠΈΠ΄Π΅ΡΠ° ΠΎΡ Π΄ΡΡΠ³ΠΈΡ
ΡΠ·Π»ΠΎΠ² Kafka ΠΈ Zookeeper
ΠΠ΅ ΠΏΠΎΠ»ΡΡΠΈΠ² Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΏΠΎ ΠΈΡΡΠ΅ΡΠ΅Π½ΠΈΠΈ replica.lag.time.max.ms, ΠΎΠ½ ΠΏΠΎΠΏΡΡΠ°Π΅ΡΡΡ ΡΠΆΠ°ΡΡ ISR Π΄ΠΎ ΡΠ°ΠΌΠΎΠ³ΠΎ ΡΠ΅Π±Ρ, Π½ΠΎ Π½Π΅ ΡΠΌΠΎΠΆΠ΅Ρ ΡΡΠΎΠ³ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π½Π΅Ρ ΡΠ²ΡΠ·ΠΈ Ρ Zookeeper, ΡΠΎΠ³Π΄Π° ΠΎΠ½ ΠΏΡΠ΅ΠΊΡΠ°ΡΠΈΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π·Π°ΠΏΠΈΡΠΈ.
ΠΠ΅ΠΆΠ΄Ρ ΡΠ΅ΠΌ, Zookeeper ΠΎΡΠΌΠ΅ΡΠΈΡ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π±ΡΠΎΠΊΠ΅ΡΠ° ΠΊΠ°ΠΊ ΠΌΠ΅ΡΡΠ²ΠΎΠ³ΠΎ, Π° ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ Π²ΡΠ±Π΅ΡΠ΅Ρ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π»ΠΈΠ΄Π΅ΡΠ°.
Π ΠΈΡ. 33. Π‘ΡΠ΅Π½Π°ΡΠΈΠΉ 6. ΠΠ²Π° Π»ΠΈΠ΄Π΅ΡΠ°
ΠΡΡ ΠΎΠ΄Π½ΡΠΉ Π»ΠΈΠ΄Π΅Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π·Π°ΠΏΠΈΡΠΈ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠ΅ΠΊΡΠ½Π΄, Π½ΠΎ Π·Π°ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π΅Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π»ΡΠ±ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ. ΠΠ»ΠΈΠ΅Π½ΡΡ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡΡΡ ΠΊΠ°ΠΆΠ΄ΡΠ΅ 60 ΡΠ΅ΠΊΡΠ½Π΄ Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌΠΈ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠΌΠΈ. ΠΠ½ΠΈ Π±ΡΠ΄ΡΡ ΠΏΡΠΎΠΈΠ½ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½Ρ ΠΎ ΡΠΌΠ΅Π½Π΅ Π»ΠΈΠ΄Π΅ΡΠ° ΠΈ Π½Π°ΡΠ½ΡΡ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ Π·Π°ΠΏΠΈΡΠΈ Π½ΠΎΠ²ΠΎΠΌΡ Π»ΠΈΠ΄Π΅ΡΡ.
Π ΠΈΡ. 34. Π‘ΡΠ΅Π½Π°ΡΠΈΠΉ 6. ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΠΈ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΡΡΡ Π½Π° Π½ΠΎΠ²ΠΎΠ³ΠΎ Π»ΠΈΠ΄Π΅ΡΠ°
ΠΡΠ΄ΡΡ ΠΏΠΎΡΠ΅ΡΡΠ½Ρ Π²ΡΠ΅ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄ΡΠ½Π½ΡΠ΅ Π·Π°ΠΏΠΈΡΠΈ, ΡΠ΄Π΅Π»Π°Π½Π½ΡΠ΅ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ Π»ΠΈΠ΄Π΅ΡΠΎΠΌ Ρ ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΠΏΠΎΡΠ΅ΡΠΈ ΡΠ²ΡΠ·Π½ΠΎΡΡΠΈ. ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΡΡ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π°, ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ Π»ΠΈΠ΄Π΅Ρ ΡΠ΅ΡΠ΅Π· Zookeeper ΠΎΠ±Π½Π°ΡΡΠΆΠΈΡ, ΡΡΠΎ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈΠ΄Π΅ΡΠΎΠΌ. ΠΠ°ΡΠ΅ΠΌ ΡΡΠ΅ΡΠ΅Ρ ΡΠ²ΠΎΠΉ Π»ΠΎΠ³ Π΄ΠΎ HW Π½ΠΎΠ²ΠΎΠ³ΠΎ Π»ΠΈΠ΄Π΅ΡΠ° Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ ΠΈΠ·Π±ΡΠ°Π½ΠΈΡ ΠΈ Π½Π°ΡΠ½Π΅Ρ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ Π·Π°ΠΏΡΠΎΡΡ ΠΊΠ°ΠΊ ΡΠΎΠ»Π»ΠΎΠ²Π΅Ρ.
Π ΠΈΡ. 35. Π‘ΡΠ΅Π½Π°ΡΠΈΠΉ 6. ΠΡΡ
ΠΎΠ΄Π½ΡΠΉ Π»ΠΈΠ΄Π΅Ρ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΡΠΎΠ»Π»ΠΎΠ²Π΅ΡΠΎΠΌ ΠΏΠΎΡΠ»Π΅ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠ²ΡΠ·Π½ΠΎΡΡΠΈ ΡΠ΅ΡΠΈ
Π ΡΡΠΎΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΠΊΠΎΠ³ΠΎ ΠΏΠ΅ΡΠΈΠΎΠ΄Π° ΠΌΠΎΠΆΠ΅Ρ Π½Π°Π±Π»ΡΠ΄Π°ΡΡΡΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅, Π½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π΅ΡΠ»ΠΈ acks=1 ΠΈ min.insync.replicas ΡΠΎΠΆΠ΅ 1. ΠΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ Π»ΠΈΠ±ΠΎ ΠΏΠΎΡΠ»Π΅ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠ΅ΡΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ Π»ΠΈΠ΄Π΅Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ, ΡΡΠΎ ΠΎΠ½ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ Π»ΠΈΠ΄Π΅Ρ, Π»ΠΈΠ±ΠΎ ΠΊΠΎΠ³Π΄Π° Π²ΡΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΡ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ, ΡΡΠΎ Π»ΠΈΠ΄Π΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΡΡ ΠΈ Π½Π°ΡΠΈΠ½Π°ΡΡ ΠΏΠΈΡΠ°ΡΡ Π½ΠΎΠ²ΠΎΠΌΡ Π»ΠΈΠ΄Π΅ΡΡ β Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ ΡΠ°Π½ΡΡΠ΅. Π Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ ΠΏΠΎΡΠ΅ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, Π½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Ρ acks=1.
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π΄ΡΡΠ³ΠΎΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΡΡΠΎΠ³ΠΎ ΡΡΠ΅Π½Π°ΡΠΈΡ, ΠΊΠΎΠ³Π΄Π° Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΏΠ΅ΡΠ΅Π΄ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ ΡΠ΅ΡΠΈ ΡΠΎΠ»Π»ΠΎΠ²Π΅ΡΡ ΠΎΡΡΡΠ°Π»ΠΈ, Π° Π»ΠΈΠ΄Π΅Ρ ΡΠΆΠ°Π» ISR Π΄ΠΎ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ΅Π±Ρ. ΠΠ°ΡΠ΅ΠΌ ΠΎΠ½ ΠΈΠ·ΠΎΠ»ΠΈΡΡΠ΅ΡΡΡ ΠΈΠ·-Π·Π° ΠΏΠΎΡΠ΅ΡΠΈ ΡΠ²ΡΠ·Π½ΠΎΡΡΠΈ. ΠΠ·Π±ΠΈΡΠ°Π΅ΡΡΡ Π½ΠΎΠ²ΡΠΉ Π»ΠΈΠ΄Π΅Ρ, Π½ΠΎ ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΡΠΉ Π»ΠΈΠ΄Π΅Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π·Π°ΠΏΠΈΡΠΈ, Π΄Π°ΠΆΠ΅ acks=all, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π² ISR ΠΊΡΠΎΠΌΠ΅ Π½Π΅Π³ΠΎ Π½ΠΈΠΊΠΎΠ³ΠΎ Π½Π΅Ρ. ΠΡΠΈ Π·Π°ΠΏΠΈΡΠΈ Π±ΡΠ΄ΡΡ ΠΏΠΎΡΠ΅ΡΡΠ½Ρ ΠΏΠΎΡΠ»Π΅ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠ΅ΡΠΈ. ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΡΠ°ΠΊΠΎΠ³ΠΎ Π²Π°ΡΠΈΠ°Π½ΡΠ° β min.insync.replicas = 2.
Π‘ΡΠ΅Π½Π°ΡΠΈΠΉ 7. Π£Π·Π΅Π» ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° Kafka Π½Π΅ Π²ΠΈΠ΄ΠΈΡ Π΄ΡΡΠ³ΠΎΠΉ ΡΠ·Π΅Π» Kafka
Π ΡΠ΅Π»ΠΎΠΌ, ΠΏΠΎΡΠ»Π΅ ΠΏΠΎΡΠ΅ΡΠΈ ΡΠ²ΡΠ·ΠΈ Ρ ΡΠ·Π»ΠΎΠΌ Kafka ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ Π½Π΅ ΡΠΌΠΎΠΆΠ΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π΅ΠΌΡ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΏΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π»ΠΈΠ΄Π΅ΡΠ°. Π Ρ ΡΠ΄ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠΎ ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ ΠΊΡΠ°ΡΠΊΠΎΡΡΠΎΡΠ½ΠΎΠΌΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠΌΡ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ, ΠΊΠ°ΠΊ Π² ΡΡΠ΅Π½Π°ΡΠΈΠΈ 6. Π§Π°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ Π±ΡΠΎΠΊΠ΅Ρ ΠΏΡΠΎΡΡΠΎ Π½Π΅ ΡΡΠ°Π½Π΅Ρ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°ΡΠΎΠΌ Π½Π° Π»ΠΈΠ΄Π΅ΡΡΡΠ²ΠΎ Π² ΡΠ»ΡΡΠ°Π΅ ΠΎΡΠΊΠ°Π·Π° ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ.
Π‘ΡΠ΅Π½Π°ΡΠΈΠΉ 8. ΠΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ Kafka Π½Π΅ Π²ΠΈΠ΄ΠΈΡ Zookeeper
ΠΡ ΠΎΡΠ²Π°Π»ΠΈΠ²ΡΠ΅Π³ΠΎΡΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° Zookeeper Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΡ ΠΏΠΈΠ½Π³Π° ΠΈ Π²ΡΠ±Π΅ΡΠ΅Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠΌ Π½ΠΎΠ²ΡΠΉ ΡΠ·Π΅Π» Kafka. ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠ΅Π±Ρ ΡΠ°ΠΊΠΎΠ²ΡΠΌ, Π½ΠΎ ΠΎΠ½ Π½Π΅ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ ΠΎΡ Zookeeper, ΠΏΠΎΡΡΠΎΠΌΡ Ρ Π½Π΅Π³ΠΎ Π½Π΅ Π±ΡΠ΄Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΈΡ Π·Π°Π΄Π°Ρ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΡΡ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ, ΠΎΠ½ ΠΏΠΎΠΉΠΌΡΡ, ΡΡΠΎ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠΌ, Π° ΡΡΠ°Π» ΠΎΠ±ΡΡΠ½ΡΠΌ ΡΠ·Π»ΠΎΠΌ Kafka.
ΠΡΠ²ΠΎΠ΄Ρ ΠΈΠ· ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π²
ΠΡ Π²ΠΈΠ΄ΠΈΠΌ, ΡΡΠΎ ΠΏΠΎΡΠ΅ΡΡ ΡΠ²ΡΠ·Π½ΠΎΡΡΠΈ ΡΠΎΠ»Π»ΠΎΠ²Π΅ΡΠΎΠ² Π½Π΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡ ΠΊ ΠΏΠΎΡΠ΅ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, Π° ΠΏΡΠΎΡΡΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΡΠΌΠ΅Π½ΡΡΠ°Π΅Ρ ΠΈΠ·Π±ΡΡΠΎΡΠ½ΠΎΡΡΡ, ΠΏΠΎΠΊΠ° ΡΠ΅ΡΡ Π½Π΅ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ. ΠΡΠΎ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΠΏΠΎΡΠ΅ΡΠ΅ Π΄Π°Π½Π½ΡΡ , Π΅ΡΠ»ΠΈ ΠΏΠΎΡΠ΅ΡΡΠ½Ρ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ·Π»ΠΎΠ².
ΠΡΠ»ΠΈ ΠΈΠ·-Π·Π° ΠΏΠΎΡΠ΅ΡΠΈ ΡΠ²ΡΠ·Π½ΠΎΡΡΠΈ Π»ΠΈΠ΄Π΅Ρ ΠΎΡΠ΄Π΅Π»ΠΈΠ»ΡΡ ΠΎΡ Zookeeper, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΠΏΠΎΡΠ΅ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Ρ acks=1. ΠΡΡΡΡΡΡΠ²ΠΈΠ΅ ΡΠ²ΡΠ·ΠΈ Ρ Zookeeper Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΊΡΠ°ΡΠΊΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ΅ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ Π΄Π²ΡΠΌΡ Π»ΠΈΠ΄Π΅ΡΠ°ΠΌΠΈ. ΠΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΡΠ΅ΡΠ°Π΅Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ acks=all.
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ min.insync.replicas Π² Π΄Π²Π΅ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΠΏΠ»ΠΈΠΊ Π΄Π°Π΅Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π³Π°ΡΠ°Π½ΡΠΈΠΈ, ΡΡΠΎ ΡΠ°ΠΊΠΈΠ΅ ΠΊΡΠ°ΡΠΊΠΎΡΡΠΎΡΠ½ΡΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΠΈ Π½Π΅ ΠΏΡΠΈΠ²Π΅Π΄ΡΡ ΠΊ ΠΏΠΎΡΠ΅ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, ΠΊΠ°ΠΊ Π² ΡΡΠ΅Π½Π°ΡΠΈΠΈ 6.
Π Π΅Π·ΡΠΌΠ΅ ΠΏΠΎ ΠΏΠΎΡΠ΅ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ
ΠΠ΅ΡΠ΅ΡΠΈΡΠ»ΠΈΠΌ Π²ΡΠ΅ ΡΠΏΠΎΡΠΎΠ±Ρ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠ΅ΡΡΡΡ Π΄Π°Π½Π½ΡΠ΅ Π² Kafka:
- ΠΡΠ±ΠΎΠΉ ΡΠ±ΠΎΠΉ Π»ΠΈΠ΄Π΅ΡΠ°, Π΅ΡΠ»ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π°Π»ΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ acks=1
- ΠΡΠ±ΠΎΠΉ Π½Π΅ΡΠΈΡΡΡΠΉ (unclean) ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ Π»ΠΈΠ΄Π΅ΡΡΡΠ²Π°, ΡΠΎ Π΅ΡΡΡ Π½Π° ΡΠΎΠ»Π»ΠΎΠ²Π΅ΡΠ° Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Π°ΠΌΠΈ ISR, Π΄Π°ΠΆΠ΅ Ρ acks=all
- ΠΠ·ΠΎΠ»ΡΡΠΈΡ Π»ΠΈΠ΄Π΅ΡΠ° ΠΎΡ Zookeeper, Π΅ΡΠ»ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π°Π»ΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ acks=1
- ΠΠΎΠ»Π½Π°Ρ ΠΈΠ·ΠΎΠ»ΡΡΠΈΡ Π»ΠΈΠ΄Π΅ΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΆΠ΅ ΡΠΆΠ°Π» Π³ΡΡΠΏΠΏΡ ISR Π΄ΠΎ ΡΠ°ΠΌΠΎΠ³ΠΎ ΡΠ΅Π±Ρ. ΠΡΠ΄ΡΡ ΠΏΠΎΡΠ΅ΡΡΠ½Ρ Π²ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, Π΄Π°ΠΆΠ΅ acks=all. ΠΡΠΎ Π²Π΅ΡΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ min.insync.replicas=1.
- ΠΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΠ±ΠΎΠΈ Π²ΡΠ΅Ρ ΡΠ·Π»ΠΎΠ² ΡΠ°Π·Π΄Π΅Π»Π°. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π°ΡΡΡΡ ΠΈΠ· ΠΏΠ°ΠΌΡΡΠΈ, Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π΅ΡΡ Π½Π΅ Π·Π°ΠΏΠΈΡΠ°ΡΡΡΡ Π½Π° Π΄ΠΈΡΠΊ. ΠΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ Ρ Π²Π°ΡΠ°ΡΡ.
ΠΠ΅ΡΠΈΡΡΡΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΎΠ² Π»ΠΈΠ΄Π΅ΡΡΡΠ²Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ, Π»ΠΈΠ±ΠΎ Π·Π°ΠΏΡΠ΅ΡΠΈΠ² ΠΈΡ , Π»ΠΈΠ±ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ² ΠΈΠ·Π±ΡΡΠΎΡΠ½ΠΎΡΡΡ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Π΄Π²ΡΡ . ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΠ½Π°Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ β ΡΡΠΎ ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΠ΅ acks=all ΠΈ min.insync.replicas Π±ΠΎΠ»ΡΡΠ΅ 1.
ΠΡΡΠΌΠΎΠ΅ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Π½Π°Π΄ΡΠΆΠ½ΠΎΡΡΠΈ RabbitMQ ΠΈ Kafka
ΠΠ»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π½Π°Π΄ΡΠΆΠ½ΠΎΡΡΠΈ ΠΈ Π²ΡΡΠΎΠΊΠΎΠΉ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΠΈ ΠΎΠ±Π΅ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠΉ ΠΈ Π²ΡΠΎΡΠΈΡΠ½ΠΎΠΉ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ. ΠΠ΄Π½Π°ΠΊΠΎ Ρ RabbitMQ Π΅ΡΡΡ Π°Ρ ΠΈΠ»Π»Π΅ΡΠΎΠ²Π° ΠΏΡΡΠ°. ΠΡΠΈ Π²ΠΎΡΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΈ ΠΏΠΎΡΠ»Π΅ ΡΠ±ΠΎΡ ΡΠ·Π»Ρ ΠΎΡΠ±ΡΠ°ΡΡΠ²Π°ΡΡ ΡΠ²ΠΎΠΈ Π΄Π°Π½Π½ΡΠ΅, Π° ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΡΡΡ. ΠΡΠΎΡ Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ ΡΠ΄Π°Ρ ΡΡΠ°Π²ΠΈΡ ΠΏΠΎΠ΄ Π²ΠΎΠΏΡΠΎΡ Π΄ΠΎΠ»Π³ΠΎΠ²Π΅ΡΠ½ΠΎΡΡΡ Π±ΠΎΠ»ΡΡΠΈΡ ΠΎΡΠ΅ΡΠ΅Π΄Π΅ΠΉ Π² RabbitMQ. ΠΠ°ΠΌ ΠΏΡΠΈΠ΄ΡΡΡΡ ΡΠΌΠΈΡΠΈΡΡΡΡ Π»ΠΈΠ±ΠΎ Ρ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΈΠ·Π±ΡΡΠΎΡΠ½ΠΎΡΡΠΈ, Π»ΠΈΠ±ΠΎ Ρ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΡΠΌΠΈ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ°ΠΌΠΈ. Π‘Π½ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ·Π±ΡΡΠΎΡΠ½ΠΎΡΡΠΈ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅Ρ ΡΠΈΡΠΊ ΠΌΠ°ΡΡΠΎΠ²ΠΎΠΉ ΠΏΠΎΡΠ΅ΡΠΈ Π΄Π°Π½Π½ΡΡ . ΠΠΎ Π΅ΡΠ»ΠΈ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠ΅, ΡΠΎ ΡΠ°Π΄ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΠΈΠ·Π±ΡΡΠΎΡΠ½ΠΎΡΡΠΈ Ρ ΠΊΡΠ°ΡΠΊΠΈΠΌΠΈ ΠΏΠ΅ΡΠΈΠΎΠ΄Π°ΠΌΠΈ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΠΈ (Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΠΊΡΠ½Π΄) ΠΌΠΎΠΆΠ½ΠΎ ΡΠΏΡΠ°Π²ΠΈΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΡΡ ΠΏΠΎΠΏΡΡΠΎΠΊ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ.
Π Kafka Π½Π΅Ρ ΡΠ°ΠΊΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ. ΠΠ½Π° ΠΎΡΠ±ΡΠ°ΡΡΠ²Π°Π΅Ρ Π΄Π°Π½Π½ΡΠ΅ ΡΠΎΠ»ΡΠΊΠΎ Ρ ΡΠΎΡΠΊΠΈ ΡΠ°ΡΡ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ Π»ΠΈΠ΄Π΅ΡΠ° ΠΈ ΡΠΎΠ»Π»ΠΎΠ²Π΅ΡΠ°. ΠΡΠ΅ ΠΎΠ±ΡΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΡΠΎΡ ΡΠ°Π½ΡΡΡΡΡ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡ Π½Π΅ Π±Π»ΠΎΠΊΠΈΡΡΠ΅Ρ ΡΠΈΡΡΠ΅ΠΌΡ. ΠΠΈΠ΄Π΅Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π·Π°ΠΏΠΈΡΠΈ, ΠΏΠΎΠΊΠ° Π½ΠΎΠ²ΡΠΉ ΡΠΎΠ»Π»ΠΎΠ²Π΅Ρ Π΅Π³ΠΎ Π΄ΠΎΠ³ΠΎΠ½ΡΠ΅Ρ, ΡΠ°ΠΊ ΡΡΠΎ Π΄Π»Ρ Π΄Π΅Π²ΠΎΠΏΡΠΎΠ² ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Π²ΠΎΡΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΡΡΠΈΠ²ΠΈΠ°Π»ΡΠ½ΠΎΠΉ Π·Π°Π΄Π°ΡΠ΅ΠΉ. ΠΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ ΠΎΡΡΠ°ΡΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΏΡΠΎΠΏΡΡΠΊΠ½Π°Ρ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ ΡΠ΅ΡΠΈ ΠΏΡΠΈ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ. ΠΡΠ»ΠΈ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ»Π»ΠΎΠ²Π΅ΡΠΎΠ², ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠΎΠ»ΠΊΠ½ΡΡΡΡΡ Ρ Π»ΠΈΠΌΠΈΡΠΎΠΌ ΠΏΡΠΎΠΏΡΡΠΊΠ½ΠΎΠΉ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ.
RabbitMQ ΠΏΡΠ΅Π²ΠΎΡΡ ΠΎΠ΄ΠΈΡ Kafka Π² Π½Π°Π΄ΡΠΆΠ½ΠΎΡΡΠΈ ΠΏΡΠΈ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΌ ΡΠ±ΠΎΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² Π² ΠΊΠ»Π°ΡΡΠ΅ΡΠ΅. ΠΠ°ΠΊ ΠΌΡ ΡΠΆΠ΅ Π³ΠΎΠ²ΠΎΡΠΈΠ»ΠΈ, RabbitMQ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΠ°Π±Π»ΠΈΡΠ΅ΡΡ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠ»Π΅ Π·Π°ΠΏΠΈΡΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π½Π° Π΄ΠΈΡΠΊ Ρ ΠΌΠ°ΡΡΠ΅ΡΠ° ΠΈ Π²ΡΠ΅Ρ Π·Π΅ΡΠΊΠ°Π». ΠΠΎ ΡΡΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ Π·Π°Π΄Π΅ΡΠΆΠΊΡ ΠΏΠΎ Π΄Π²ΡΠΌ ΠΏΡΠΈΡΠΈΠ½Π°ΠΌ:
- fsync ΠΊΠ°ΠΆΠ΄ΡΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΎΡΠ΅Π½ ΠΌΠΈΠ»Π»ΠΈΡΠ΅ΠΊΡΠ½Π΄
- Π‘Π±ΠΎΠΉ Π·Π΅ΡΠΊΠ°Π»Π° ΠΌΠΎΠ³ΡΡ Π·Π°ΠΌΠ΅ΡΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎ ΠΈΡΡΠ΅ΡΠ΅Π½ΠΈΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΆΠΈΠ·Π½ΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ·Π»Π° (net tick). ΠΡΠ»ΠΈ Π·Π΅ΡΠΊΠ°Π»ΠΎ ΡΠΎΡΠΌΠΎΠ·ΠΈΡ ΠΈΠ»ΠΈ ΡΠΏΠ°Π»ΠΎ, ΡΡΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ Π·Π°Π΄Π΅ΡΠΆΠΊΡ.
Kafka Π΄Π΅Π»Π°Π΅Ρ ΡΡΠ°Π²ΠΊΡ Π½Π° ΡΠΎ, ΡΡΠΎ Π΅ΡΠ»ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Ρ ΡΠ°Π½ΠΈΡΡΡ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠ·Π»Π°Ρ , ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΠΊΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ½ΠΈ ΠΏΠΎΠΏΠ°Π»ΠΈ Π² ΠΏΠ°ΠΌΡΡΡ. ΠΠ·-Π·Π° ΡΡΠΎΠ³ΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΡΠΈΡΠΊ ΠΏΠΎΡΠ΅ΡΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π»ΡΠ±ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° (Π΄Π°ΠΆΠ΅ acks=all, min.insync.ΡΠ΅ΠΏΠ»ΠΈΠΊΠΈ=2) Π² ΡΠ»ΡΡΠ°Π΅ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΎΡΠΊΠ°Π·Π°.
Π ΡΠ΅Π»ΠΎΠΌ Kafka Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅Ρ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΏΠΎ ΠΈ ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΡΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π° Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠ΅ΡΠΎΠ². ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠΎΠ»Π»ΠΎΠ²Π΅ΡΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ Π΄ΠΎ 11-ΡΠΈ, Π΅ΡΠ»ΠΈ ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ Π΄Π»Ρ Π½Π°Π΄ΡΠΆΠ½ΠΎΡΡΠΈ. ΠΠΎΡΡΡΠΈΡΠΈΠ΅Π½Ρ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ 5 ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΡΠ΅ΠΏΠ»ΠΈΠΊ Π² ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ min.insync.replicas=3 ΡΠ΄Π΅Π»Π°ΡΡ ΠΏΠΎΡΠ΅ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΡΠ΅Π½Ρ ΡΠ΅Π΄ΠΊΠΈΠΌ ΡΠΎΠ±ΡΡΠΈΠ΅ΠΌ. ΠΡΠ»ΠΈ Π²Π°ΡΠ° ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° ΡΠΏΠΎΡΠΎΠ±Π½Π° ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ ΡΠ°ΠΊΠΎΠΉ ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½Ρ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ ΠΈ ΡΡΠΎΠ²Π΅Π½Ρ ΠΈΠ·Π±ΡΡΠΎΡΠ½ΠΎΡΡΠΈ, ΡΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠ±ΡΠ°ΡΡ ΡΡΠΎΡ Π²Π°ΡΠΈΠ°Π½Ρ.
ΠΠ»Π°ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΡ RabbitMQ Ρ ΠΎΡΠΎΡΠ° Π΄Π»Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΡ ΠΎΡΠ΅ΡΠ΅Π΄Π΅ΠΉ. ΠΠΎ Π΄Π°ΠΆΠ΅ ΠΌΠ°Π»Π΅Π½ΡΠΊΠΈΠ΅ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡΡΠΎ Π²ΡΡΠ°ΡΡΠΈ ΠΏΡΠΈ Π±ΠΎΠ»ΡΡΠΈΡ ΡΡΠ°ΡΠΈΠΊΠ΅. ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ ΡΡΠ°Π½ΠΎΠ²ΡΡΡΡ Π±ΠΎΠ»ΡΡΠΈΠΌΠΈ, ΠΏΡΠΈΠ΄ΡΡΡΡ Π΄Π΅Π»Π°ΡΡ ΠΆΠ΅ΡΡΠΊΠΈΠΉ Π²ΡΠ±ΠΎΡ ΠΌΠ΅ΠΆΠ΄Ρ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΡΡ ΠΈ Π½Π°Π΄ΡΠΆΠ½ΠΎΡΡΡΡ. ΠΠ»Π°ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΡ RabbitMQ Π»ΡΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ Π½Π΅ ΡΠ°ΠΌΡΡ ΡΠΈΠΏΠΈΡΠ½ΡΡ ΡΠΈΡΡΠ°ΡΠΈΠΉ, Π³Π΄Π΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° Π³ΠΈΠ±ΠΊΠΎΡΡΠΈ RabbitMQ ΠΏΠ΅ΡΠ΅Π²Π΅ΡΠΈΠ²Π°ΡΡ Π»ΡΠ±ΡΠ΅ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ Π΅Π³ΠΎ ΠΊΠ»Π°ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΠΈ.
ΠΠ΄Π½ΠΎ ΠΈΠ· ΠΏΡΠΎΡΠΈΠ²ΠΎΡΠ΄ΠΈΠΉ ΠΎΡ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ RabbitMQ Π² ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠΈ Π±ΠΎΠ»ΡΡΠΈΡ
ΠΎΡΠ΅ΡΠ΅Π΄Π΅ΠΉ β ΡΠ°Π·Π±ΠΈΡΡ ΠΈΡ
Π½Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΌΠ΅Π½ΡΡΠΈΡ
. ΠΡΠ»ΠΈ Π½Π΅ ΡΡΠ΅Π±ΠΎΠ²Π°ΡΡ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½ΠΈΡ Π²ΡΠ΅ΠΉ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ, Π° ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ
ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°), ΠΈΠ»ΠΈ Π²ΠΎΠΎΠ±ΡΠ΅ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΡΠΏΠΎΡΡΠ΄ΠΎΡΠΈΠ²Π°ΡΡ, ΡΠΎ ΡΠ°ΠΊΠΎΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΠΏΡΠΈΠ΅ΠΌΠ»Π΅ΠΌ: ΠΏΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ ΠΌΠΎΠΉ ΠΏΡΠΎΠ΅ΠΊΡ
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, Π½Π΅ Π·Π°Π±ΡΠ²Π°ΠΉΡΠ΅ ΠΎ ΡΡΠ΄Π΅ Π±Π°Π³ΠΎΠ² Π² ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ°Ρ ΠΊΠ»Π°ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΠΈ ΠΈ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ ΠΊΠ°ΠΊ Ρ RabbitMQ, ΡΠ°ΠΊ ΠΈ Ρ Kafka. Π‘ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ ΡΠΈΡΡΠ΅ΠΌΡ ΡΡΠ°Π»ΠΈ Π±ΠΎΠ»Π΅Π΅ Π·ΡΠ΅Π»ΡΠΌΠΈ ΠΈ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΡΠΌΠΈ, Π½ΠΎ Π½ΠΈ ΠΎΠ΄Π½ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π±ΡΠ΄Π΅Ρ Π½Π° 100% Π·Π°ΡΠΈΡΠ΅Π½ΠΎ ΠΎΡ ΠΏΠΎΡΠ΅ΡΠΈ! ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π² Π΄Π°ΡΠ°-ΡΠ΅Π½ΡΡΠ°Ρ ΡΠ»ΡΡΠ°ΡΡΡΡ ΠΊΡΡΠΏΠ½ΠΎΠΌΠ°ΡΡΡΠ°Π±Π½ΡΠ΅ Π°Π²Π°ΡΠΈΠΈ!
ΠΡΠ»ΠΈ Ρ ΡΡΠΎ-ΡΠΎ ΠΏΡΠΎΠΏΡΡΡΠΈΠ», Π΄ΠΎΠΏΡΡΡΠΈΠ» ΠΎΡΠΈΠ±ΠΊΡ ΠΈΠ»ΠΈ Π²Ρ Π½Π΅ ΡΠΎΠ³Π»Π°ΡΠ½Ρ Ρ Π»ΡΠ±ΡΠΌ ΠΈΠ· ΡΠ΅Π·ΠΈΡΠΎΠ², Π½Π΅ ΡΡΠ΅ΡΠ½ΡΠΉΡΠ΅ΡΡ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ ΠΈΠ»ΠΈ ΡΠ²ΡΠ·Π°ΡΡΡΡ ΡΠΎ ΠΌΠ½ΠΎΠΉ.
ΠΠ΅Π½Ρ ΡΠ°ΡΡΠΎ ΡΠΏΡΠ°ΡΠΈΠ²Π°ΡΡ: Β«Π§ΡΠΎ Π²ΡΠ±ΡΠ°ΡΡ, Kafka ΠΈΠ»ΠΈ RabbitMQ?Β», Β«ΠΠ°ΠΊΠ°Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Π»ΡΡΡΠ΅?Β». ΠΡΠ°Π²Π΄Π° Π² ΡΠΎΠΌ, ΡΡΠΎ ΡΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ Π²Π°ΡΠ΅ΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ, ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΎΠΏΡΡΠ° ΠΈ Ρ. Π΄. Π― Π½Π΅ ΡΠ΅ΡΠ°ΡΡΡ Π²ΡΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΡΠ²ΠΎΡ ΠΌΠ½Π΅Π½ΠΈΠ΅, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π±ΡΠ΄Π΅Ρ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π±ΠΎΠ»ΡΡΠΈΠΌ ΡΠΏΡΠΎΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊΡΡ-ΡΠΎ ΠΎΠ΄Π½Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ Π΄Π»Ρ Π²ΡΠ΅Ρ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ. Π― Π½Π°ΠΏΠΈΡΠ°Π» ΡΡΠΎΡ ΡΠΈΠΊΠ» ΡΡΠ°ΡΠ΅ΠΉ, ΡΡΠΎΠ±Ρ Π²Ρ ΠΌΠΎΠ³Π»ΠΈ ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΠΌΠ½Π΅Π½ΠΈΠ΅.
Π₯ΠΎΡΡ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ ΠΎΠ±Π΅ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ²Π»ΡΡΡΡΡ Π»ΠΈΠ΄Π΅ΡΠ°ΠΌΠΈ Π² Π΄Π°Π½Π½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Ρ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠ΅Π΄Π²Π·ΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΏΠΎ ΠΎΠΏΡΡΡ ΡΠ²ΠΎΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² Π±ΠΎΠ»ΡΡΠ΅ ΡΠΊΠ»ΠΎΠ½Π΅Π½ ΡΠ΅Π½ΠΈΡΡ ΡΠ°ΠΊΠΈΠ΅ Π²Π΅ΡΠΈ, ΠΊΠ°ΠΊ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΈ Π½Π°Π΄ΡΠΆΠ½ΠΎΡΡΡ.
Π― Π²ΠΈΠΆΡ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠΌ Π½Π΅ Ρ
Π²Π°ΡΠ°Π΅Ρ ΡΡΠΎΠΉ Π½Π°Π΄ΡΠΆΠ½ΠΎΡΡΠΈ ΠΈ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½ΠΈΡ, Π·Π°ΡΠ΅ΠΌ ΡΠΌΠΎΡΡΡ Π½Π° RabbitMQ ΠΈ Kafka β ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ Π½Π΅Π²Π΅ΡΠΎΡΡΠ½ΡΡ ΡΠ΅Π½Π½ΠΎΡΡΡ ΠΎΠ±Π΅ΠΈΡ
ΡΡΠΈΡ
ΡΠΈΡΡΠ΅ΠΌ.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com