ΠΡ Π₯Π°Π±Ρ!
Π Π°Π±ΠΎΡΠ°ΠΌ Π²ΠΎ ΡΠΈΠΌΠΎΡ Π½Π° Π’ΠΈΠ½ΠΊΠΎΡ, ΠΊΠΎΡ ΡΠ°Π·Π²ΠΈΠ²Π° ΡΠΎΠΏΡΡΠ²Π΅Π½ ΡΠ΅Π½ΡΠ°Ρ Π·Π° ΠΈΠ·Π²Π΅ΡΡΡΠ²Π°ΡΠ°. ΠΠ°Ρ Π½Π°ΡΡΠ΅ΡΡΠΎ ΡΠ΅ ΡΠ°Π·Π²ΠΈΠ²Π°ΠΌ Π²ΠΎ Java ΠΊΠΎΡΠΈΡΡΠ΅ΡΡΠΈ Spring boot ΠΈ ΡΠ΅ΡΠ°Π²Π°ΠΌ ΡΠ°Π·Π½ΠΈ ΡΠ΅Ρ Π½ΠΈΡΠΊΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ ΡΡΠΎ ΡΠ΅ ΠΏΠΎΡΠ°Π²ΡΠ²Π°Π°Ρ Π²ΠΎ Π΅Π΄Π΅Π½ ΠΏΡΠΎΠ΅ΠΊΡ.
ΠΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΠΎΠ΄ Π½Π°ΡΠΈΡΠ΅ ΠΌΠΈΠΊΡΠΎΡΡΠ»ΡΠ³ΠΈ ΠΊΠΎΠΌΡΠ½ΠΈΡΠΈΡΠ°Π°Ρ Π΅Π΄Π½ΠΈ ΡΠΎ Π΄ΡΡΠ³ΠΈ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΎ ΠΏΡΠ΅ΠΊΡ Π±ΡΠΎΠΊΠ΅Ρ Π·Π° ΠΏΠΎΡΠ°ΠΊΠΈ. ΠΡΠ΅ΡΡ ΠΎΠ΄Π½ΠΎ, ΠΊΠ°ΠΊΠΎ Π±ΡΠΎΠΊΠ΅Ρ Π³ΠΎ ΠΊΠΎΡΠΈΡΡΠ΅Π²ΠΌΠ΅ IBM MQ, ΠΊΠΎΡ ΠΏΠΎΠ²Π΅ΡΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ΅ Π½ΠΎΡΠΈ ΡΠΎ ΡΠΎΠ²Π°ΡΠΎΡ, Π½ΠΎ ΠΈΡΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½ΠΎ ΠΈΠΌΠ°ΡΠ΅ Π²ΠΈΡΠΎΠΊΠΈ Π³Π°ΡΠ°Π½ΡΠΈΠΈ Π·Π° ΠΈΡΠΏΠΎΡΠ°ΠΊΠ°.
ΠΠ°ΠΊΠΎ Π·Π°ΠΌΠ΅Π½Π°, Π½ΠΈ Π±Π΅ΡΠ΅ ΠΏΠΎΠ½ΡΠ΄Π΅Π½ Apache Kafka, ΠΊΠΎΡ ΠΈΠΌΠ° Π²ΠΈΡΠΎΠΊ ΠΏΠΎΡΠ΅Π½ΡΠΈΡΠ°Π» Π·Π° ΡΠΊΠ°Π»ΠΈΡΠ°ΡΠ΅, Π½ΠΎ, Π·Π° ΠΆΠ°Π», Π±Π°ΡΠ° ΡΠ΅ΡΠΈΡΠΈ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡΠ°Π»Π΅Π½ ΠΏΡΠΈΡΡΠ°ΠΏ ΠΊΠΎΠ½ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠ°ΡΠ° Π·Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΡΠ΅Π½Π°ΡΠΈΡΠ°. ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π½ΠΎ, ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΎΡ Π·Π° ΠΈΡΠΏΠΎΡΠ°ΠΊΠ° Π±Π°ΡΠ΅ΠΌ Π΅Π΄Π½Π°Ρ ΡΡΠΎ ΡΡΠ°Π½Π΄Π°ΡΠ΄Π½ΠΎ ΡΠ°Π±ΠΎΡΠΈ Π²ΠΎ ΠΠ°ΡΠΊΠ° Π½Π΅ Π΄ΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°ΡΠ΅ ΠΎΠ΄ΡΠΆΡΠ²Π°ΡΠ΅ Π½Π° ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΠΎ Π½ΠΈΠ²ΠΎ Π½Π° ΠΊΠΎΠ½Π·ΠΈΡΡΠ΅Π½ΡΠ½ΠΎΡΡ Π½Π°Π΄Π²ΠΎΡ ΠΎΠ΄ ΠΊΡΡΠΈΡΠ°ΡΠ°. Π‘Π»Π΅Π΄Π½ΠΎ, ΡΠ΅ Π³ΠΎ ΡΠΏΠΎΠ΄Π΅Π»Π°ΠΌ Π½Π°ΡΠ΅ΡΠΎ ΠΈΡΠΊΡΡΡΠ²ΠΎ Π²ΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠ°ΡΠ° Π½Π° ΠΠ°ΡΠΊΠ°, ΠΎΡΠΎΠ±Π΅Π½ΠΎ, ΡΠ΅ Π²ΠΈ ΠΊΠ°ΠΆΠ°ΠΌ ΠΊΠ°ΠΊΠΎ Π΄Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°ΡΠ΅ ΠΈ ΠΆΠΈΠ²Π΅Π΅ΡΠ΅ ΡΠΎ ΡΠΎΡΠ½ΠΎ Π΅Π΄Π½Π°Ρ ΠΈΡΠΏΠΎΡΠ°ΠΊΠ°.
ΠΠ°ΡΠ°Π½ΡΠΈΡΠ°Π½Π° ΠΈΡΠΏΠΎΡΠ°ΠΊΠ° ΠΈ ΠΌΠ½ΠΎΠ³Ρ ΠΏΠΎΠ²Π΅ΡΠ΅
ΠΠΎΡΡΠ°Π²ΠΊΠΈΡΠ΅ Π΄ΠΈΡΠΊΡΡΠΈΡΠ°Π½ΠΈ ΠΏΠΎΠ΄ΠΎΠ»Ρ ΡΠ΅ ΠΏΠΎΠΌΠΎΠ³Π½Π°Ρ Π΄Π° ΡΠ΅ ΡΠΏΡΠ΅ΡΠ°Ρ Π³ΠΎΠ»Π΅ΠΌ Π±ΡΠΎΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ ΡΠΎ ΡΡΠ°Π½Π΄Π°ΡΠ΄Π½ΠΈΡΠ΅ ΠΏΠΎΡΡΠ°Π²ΠΊΠΈ Π·Π° ΠΏΠΎΠ²ΡΠ·ΡΠ²Π°ΡΠ΅. ΠΠΎ, ΠΏΡΠ²ΠΎ Π±ΠΈ ΡΠ°ΠΊΠ°Π» Π΄Π° ΠΎΠ±ΡΠ½Π°ΠΌ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π΅Π΄Π΅Π½ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΠ°Ρ ΡΡΠΎ ΡΠ΅ Π³ΠΎ ΠΎΠ»Π΅ΡΠ½ΠΈ ΠΌΠΎΠΆΠ½ΠΎΡΠΎ Π΄Π΅Π±Π°Π³ΠΈΡΠ°ΡΠ΅.
ΠΠ²Π° ΡΠ΅ ΠΏΠΎΠΌΠΎΠ³Π½Π΅ ΠΊΠ»ΠΈΠ΅Π½Ρ.ΠΈΠ΄ Π·Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π» ΠΈ ΠΏΠΎΡΡΠΎΡΡΠ²Π°Ρ. ΠΠ° ΠΏΡΠ² ΠΏΠΎΠ³Π»Π΅Π΄, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π³ΠΎ ΠΊΠΎΡΠΈΡΡΠΈΡΠ΅ ΠΈΠΌΠ΅ΡΠΎ Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ°ΡΠ° ΠΊΠ°ΠΊΠΎ Π²ΡΠ΅Π΄Π½ΠΎΡΡ, ΠΈ Π²ΠΎ ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΡΠ»ΡΡΠ°ΠΈ ΡΠΎΠ° ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠ°. ΠΠ°ΠΊΠΎ ΡΠΈΡΡΠ°ΡΠΈΡΠ°ΡΠ° ΠΊΠΎΠ³Π° Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ°ΡΠ° ΠΊΠΎΡΠΈΡΡΠΈ Π½Π΅ΠΊΠΎΠ»ΠΊΡ ΠΏΠΎΡΡΠΎΡΡΠ²Π°ΡΠΈ, Π° Π²ΠΈΠ΅ ΠΈΠΌ Π³ΠΎ Π΄Π°Π²Π°ΡΠ΅ ΠΈΡΡΠΈΠΎΡ client.id, ΡΠ΅Π·ΡΠ»ΡΠΈΡΠ° ΡΠΎ ΡΠ»Π΅Π΄Π½ΠΎΡΠΎ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅Π΄ΡΠ²Π°ΡΠ΅:
org.apache.kafka.common.utils.AppInfoParser β Error registering AppInfo mbean javax.management.InstanceAlreadyExistsException: kafka.consumer:type=app-info,id=kafka.test-0
ΠΠΊΠΎ ΡΠ°ΠΊΠ°ΡΠ΅ Π΄Π° ΠΊΠΎΡΠΈΡΡΠΈΡΠ΅ JMX Π²ΠΎ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ° ΡΠΎ ΠΠ°ΡΠΊΠ°, ΡΠΎΠ³Π°Ρ ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΠΈΠ΄Π΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌ. ΠΠ° ΠΎΠ²ΠΎΡ ΡΠ»ΡΡΠ°Ρ, Π½Π°ΡΠ΄ΠΎΠ±ΡΠΎ Π΅ Π΄Π° ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡΠ° ΠΎΠ΄ ΠΈΠΌΠ΅ΡΠΎ Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ°ΡΠ° ΠΈ, Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΠΌΠ΅ΡΠΎ Π½Π° ΡΠ΅ΠΌΠ°ΡΠ° ΠΊΠ°ΠΊΠΎ Π²ΡΠ΅Π΄Π½ΠΎΡΡ client.id. Π Π΅Π·ΡΠ»ΡΠ°ΡΠΎΡ ΠΎΠ΄ Π½Π°ΡΠ°ΡΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π²ΠΈΠ΄ΠΈ Π²ΠΎ ΠΈΠ·Π»Π΅Π·ΠΎΡ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° ΠΊΠ°ΡΠΊΠ°-ΠΏΠΎΡΡΠΎΡΡΠ²Π°ΡΠΊΠΈ-Π³ΡΡΠΏΠΈ ΠΎΠ΄ ΠΊΠΎΠΌΡΠ½Π°Π»Π½ΠΈΡΠ΅ ΡΡΠ»ΡΠ³ΠΈ ΠΎΠ΄ Confluent:
Π‘Π΅Π³Π° Π΄Π° Π³ΠΎ ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅ΠΌΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΠΎΡΠΎ Π·Π° Π·Π°Π³Π°ΡΠ°Π½ΡΠΈΡΠ°Π½Π° ΠΈΡΠΏΠΎΡΠ°ΠΊΠ° Π½Π° ΠΏΠΎΡΠ°ΠΊΠΈ. Kafka Producer ΠΈΠΌΠ° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΠ°Ρ ΠΊΡΡΠΎΠ²ΠΈ, ΡΡΠΎ Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° Π΄Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°ΡΠ΅ ΠΏΠΎ ΠΊΠΎΠ»ΠΊΡ ΠΏΡΠΈΠ·Π½Π°Π²Π°ΡΠ° Π½Π° Π²ΠΎΠ΄Π°ΡΠΎΡ Π½Π° ΠΊΠ»Π°ΡΡΠ΅ΡΠΎΡ ΠΌΡ ΡΡΠ΅Π±Π°Π°Ρ Π·Π° Π΄Π° ΡΠ° ΡΠ°Π·Π³Π»Π΅Π΄Π° ΠΏΠΎΡΠ°ΠΊΠ°ΡΠ° ΡΡΠΏΠ΅ΡΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Π½Π°. ΠΠ²ΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΠ°Ρ ΠΌΠΎΠΆΠ΅ Π΄Π° Π³ΠΈ Π·Π΅ΠΌΠ΅ ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ Π²ΡΠ΅Π΄Π½ΠΎΡΡΠΈ:
- 0 β ΠΏΡΠΈΠ·Π½Π°Π²Π° Π½Π΅ΠΌΠ° Π΄Π° ΡΠ΅ ΡΠΌΠ΅ΡΠ°.
- 1 Π΅ ΡΡΠ°Π½Π΄Π°ΡΠ΄Π½ΠΈΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΠ°Ρ, ΠΏΠΎΡΡΠ΅Π±Π½Π° Π΅ ΡΠ°ΠΌΠΎ 1 ΡΠ΅ΠΏΠ»ΠΈΠΊΠ° Π·Π° Π΄Π° ΡΠ΅ ΠΏΠΎΡΠ²ΡΠ΄ΠΈ.
- β1 β ΠΠΎΡΡΠ΅Π±Π½Π° Π΅ ΠΏΠΎΡΠ²ΡΠ΄Π° ΠΎΠ΄ ΡΠΈΡΠ΅ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΡΠ΅ΠΏΠ»ΠΈΠΊΠΈ (ΠΏΠΎΡΡΠ°Π²ΡΠ²Π°ΡΠ΅ Π½Π° ΠΊΠ»Π°ΡΡΠ΅ΡΠΎΡ min.insync.ΡΠ΅ΠΏΠ»ΠΈΠΊΠΈ).
ΠΠ΄ Π½Π°Π²Π΅Π΄Π΅Π½ΠΈΡΠ΅ Π²ΡΠ΅Π΄Π½ΠΎΡΡΠΈ Π΅ ΡΠ°ΡΠ½ΠΎ Π΄Π΅ΠΊΠ° Π°ΠΊΡΠΈΡΠ΅ Π΅Π΄Π½Π°ΠΊΠ²ΠΈ Π½Π° -1 Π΄Π°Π²Π°Π°Ρ Π½Π°ΡΡΠΈΠ»Π½Π° Π³Π°ΡΠ°Π½ΡΠΈΡΠ° Π΄Π΅ΠΊΠ° ΠΏΠΎΡΠ°ΠΊΠ°ΡΠ° Π½Π΅ΠΌΠ° Π΄Π° ΡΠ΅ ΠΈΠ·Π³ΡΠ±ΠΈ.
ΠΠ°ΠΊΠΎ ΡΡΠΎ ΡΠΈΡΠ΅ Π·Π½Π°Π΅ΠΌΠ΅, Π΄ΠΈΡΡΡΠΈΠ±ΡΠΈΡΠ°Π½ΠΈΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠΈ ΡΠ΅ Π½Π΅ΡΠΈΠ³ΡΡΠ½ΠΈ. ΠΠ° Π·Π°ΡΡΠΈΡΠ° ΠΎΠ΄ ΠΌΠΈΠ½Π»ΠΈΠ²ΠΈ Π΄Π΅ΡΠ΅ΠΊΡΠΈ, Kafka Producer ΡΠ° ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡΠ²Π° ΠΎΠΏΡΠΈΡΠ°ΡΠ° ΡΠ΅ ΠΎΠ±ΠΈΠ΄ΡΠ²Π° ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ, ΡΡΠΎ Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° Π΄Π° Π³ΠΎ ΠΏΠΎΡΡΠ°Π²ΠΈΡΠ΅ Π±ΡΠΎΡΠΎΡ Π½Π° ΠΎΠ±ΠΈΠ΄ΠΈ Π·Π° ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΡΠΏΡΠ°ΡΠ°ΡΠ΅ Π²ΠΎ ΡΠ°ΠΌΠΊΠΈΡΠ΅ ΠΈΡΠΏΠΎΡΠ°ΠΊΠ°.Π²ΡΠ΅ΠΌΠ΅.ΠΌΡ. ΠΠΈΠ΄Π΅ΡΡΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΠ°ΡΠΎΡ ΠΏΠΎΠ²ΡΠΎΡΡΠ²Π°ΡΠ° ΠΈΠΌΠ° ΡΡΠ°Π½Π΄Π°ΡΠ΄Π½Π° Π²ΡΠ΅Π΄Π½ΠΎΡΡ ΠΎΠ΄ Integer.MAX_VALUE (2147483647), Π±ΡΠΎΡΠΎΡ Π½Π° ΠΏΠΎΠ²ΡΠΎΡΡΠ²Π°ΡΠ° Π½Π° ΠΏΠΎΡΠ°ΠΊΠΈΡΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΏΡΠΈΠ»Π°Π³ΠΎΠ΄ΠΈ ΡΠΎ ΠΌΠ΅Π½ΡΠ²Π°ΡΠ΅ ΡΠ°ΠΌΠΎ delivery.timeout.ms.
Π‘Π΅ Π΄Π²ΠΈΠΆΠΈΠΌΠ΅ ΠΊΠΎΠ½ ΡΠΎΡΠ½ΠΎ Π΅Π΄Π½ΠΎΠΊΡΠ°ΡΠ½Π° ΠΈΡΠΏΠΎΡΠ°ΠΊΠ°
ΠΠ°Π²Π΅Π΄Π΅Π½ΠΈΡΠ΅ ΠΏΠΎΡΡΠ°Π²ΠΊΠΈ ΠΌΡ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π°Π°Ρ Π½Π° Π½Π°ΡΠΈΠΎΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π» Π΄Π° ΠΈΡΠΏΠΎΡΠ°ΡΡΠ²Π° ΠΏΠΎΡΠ°ΠΊΠΈ ΡΠΎ Π²ΠΈΡΠΎΠΊΠ° Π³Π°ΡΠ°Π½ΡΠΈΡΠ°. ΠΡΠ΄Π΅ ΡΠ΅Π³Π° Π΄Π° ΡΠ°Π·Π³ΠΎΠ²Π°ΡΠ°ΠΌΠ΅ Π·Π° ΡΠΎΠ° ΠΊΠ°ΠΊΠΎ Π΄Π° ΡΠ΅ ΠΎΡΠΈΠ³ΡΡΠ°ΠΌΠ΅ Π΄Π΅ΠΊΠ° ΡΠ°ΠΌΠΎ Π΅Π΄Π½Π° ΠΊΠΎΠΏΠΈΡΠ° ΠΎΠ΄ ΠΏΠΎΡΠ°ΠΊΠ°ΡΠ° Π΅ Π½Π°ΠΏΠΈΡΠ°Π½Π° Π½Π° ΡΠ΅ΠΌΠ° Π½Π° ΠΠ°ΡΠΊΠ°? ΠΠΎ Π½Π°ΡΠ΅Π΄Π½ΠΎΡΡΠ°Π²Π΅Π½ ΡΠ»ΡΡΠ°Ρ, Π·Π° Π΄Π° Π³ΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ ΠΎΠ²Π°, ΡΡΠ΅Π±Π° Π΄Π° Π³ΠΎ ΠΏΠΎΡΡΠ°Π²ΠΈΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΠ°ΡΠΎΡ Π½Π° ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π» ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΠΈ.ΠΈΠ΄Π΅ΠΌΠΏΠΎΡΠ΅Π½ΡΠΈΡΠ° Π΄ΠΎ Π²ΠΈΡΡΠΈΠ½Π°. ΠΠ΄Π΅ΠΌΠΏΠΎΡΠ΅Π½ΡΠΈΡΠ° Π³Π°ΡΠ°Π½ΡΠΈΡΠ° Π΄Π΅ΠΊΠ° ΡΠ°ΠΌΠΎ Π΅Π΄Π½Π° ΠΏΠΎΡΠ°ΠΊΠ° Π΅ Π½Π°ΠΏΠΈΡΠ°Π½Π° Π½Π° ΠΎΠ΄ΡΠ΅Π΄Π΅Π½Π° ΠΏΠ°ΡΡΠΈΡΠΈΡΠ° Π½Π° Π΅Π΄Π½Π° ΡΠ΅ΠΌΠ°. ΠΡΠ΅Π΄ΡΡΠ»ΠΎΠ² Π·Π° ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π°ΡΠ΅ Π½Π° ΠΈΠ΄Π΅ΠΌΠΏΠΎΡΠ΅Π½ΡΠΈΡΠ° ΡΠ΅ Π²ΡΠ΅Π΄Π½ΠΎΡΡΠΈΡΠ΅ acks = ΡΠΈΡΠ΅, ΠΎΠ±ΠΈΠ΄Π΅ΡΠ΅ ΡΠ΅ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ > 0, max.in.flight.requests.per.connection β€ 5. ΠΠΊΠΎ ΠΎΠ²ΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ Π½Π΅ ΡΠ΅ Π½Π°Π²Π΅Π΄Π΅Π½ΠΈ ΠΎΠ΄ ΡΠ°Π·Π²ΠΈΠ²Π°ΡΠΎΡ, Π³ΠΎΡΠ΅Π½Π°Π²Π΅Π΄Π΅Π½ΠΈΡΠ΅ Π²ΡΠ΅Π΄Π½ΠΎΡΡΠΈ ΡΠ΅ ΡΠ΅ ΠΏΠΎΡΡΠ°Π²Π°Ρ Π°Π²ΡΠΎΠΌΠ°ΡΡΠΊΠΈ.
ΠΠΎΠ³Π° Π΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½Π° ΠΈΠ΄Π΅ΠΌΠΏΠΎΡΠ΅Π½ΡΠΈΡΠ°, Π½Π΅ΠΎΠΏΡ
ΠΎΠ΄Π½ΠΎ Π΅ Π΄Π° ΡΠ΅ ΠΎΡΠΈΠ³ΡΡΠ°ΠΌΠ΅ Π΄Π΅ΠΊΠ° ΠΈΡΡΠΈΡΠ΅ ΠΏΠΎΡΠ°ΠΊΠΈ Π·Π°Π²ΡΡΡΠ²Π°Π°Ρ Π²ΠΎ ΠΈΡΡΠΈΡΠ΅ ΠΏΠ°ΡΡΠΈΡΠΈΠΈ ΡΠ΅ΠΊΠΎΡ ΠΏΠ°Ρ. ΠΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π½Π°ΠΏΡΠ°Π²ΠΈ ΡΠΎ ΠΏΠΎΡΡΠ°Π²ΡΠ²Π°ΡΠ΅ Π½Π° ΠΊΠ»ΡΡΠΎΡ partitioner.class ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΠ°ΡΠΎΡ Π½Π° Producer. ΠΠ° ΠΏΠΎΡΠ½Π΅ΠΌΠ΅ ΡΠΎ ΠΊΠ»ΡΡΠΎΡ. ΠΠΎΡΠ° Π΄Π° Π±ΠΈΠ΄Π΅ ΠΈΡΡΠΎ Π·Π° ΡΠ΅ΠΊΠΎΡ ΠΏΠΎΠ΄Π½Π΅ΡΠΎΠΊ. ΠΠ²Π° Π»Π΅ΡΠ½ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΏΠΎΡΡΠΈΠ³Π½Π΅ ΡΠΎ ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅ Π½Π° ΠΊΠΎΡ Π±ΠΈΠ»ΠΎ ΠΎΠ΄ Π΄Π΅Π»ΠΎΠ²Π½ΠΈΡΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΈ ΠΎΠ΄ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»Π½Π°ΡΠ° ΠΎΠ±ΡΠ°Π²Π°. ΠΠ°ΡΠ°ΠΌΠ΅ΡΠ°ΡΠΎΡ partitioner.class ΠΈΠΌΠ° ΡΡΠ°Π½Π΄Π°ΡΠ΄Π½Π° Π²ΡΠ΅Π΄Π½ΠΎΡΡ β
- ΠΠΊΠΎ ΠΏΠ°ΡΡΠΈΡΠΈΡΠ°ΡΠ° Π΅ Π΅ΠΊΡΠΏΠ»ΠΈΡΠΈΡΠ½ΠΎ Π½Π°Π²Π΅Π΄Π΅Π½Π° ΠΏΡΠΈ ΠΈΡΠΏΡΠ°ΡΠ°ΡΠ΅ Π½Π° ΠΏΠΎΡΠ°ΠΊΠ°ΡΠ°, ΡΠΎΠ³Π°Ρ ΡΠ° ΠΊΠΎΡΠΈΡΡΠΈΠΌΠ΅.
- ΠΠΊΠΎ ΠΏΠ°ΡΡΠΈΡΠΈΡΠ°ΡΠ° Π½Π΅ Π΅ ΠΎΠ΄ΡΠ΅Π΄Π΅Π½Π°, Π½ΠΎ ΠΊΠ»ΡΡΠΎΡ Π΅ Π½Π°Π²Π΅Π΄Π΅Π½, ΠΈΠ·Π±Π΅ΡΠ΅ΡΠ΅ ΡΠ° ΠΏΠ°ΡΡΠΈΡΠΈΡΠ°ΡΠ° ΡΠΏΠΎΡΠ΅Π΄ Ρ Π°ΡΠΎΡ Π½Π° ΠΊΠ»ΡΡΠΎΡ.
- ΠΠΊΠΎ ΠΏΠ°ΡΡΠΈΡΠΈΡΠ°ΡΠ° ΠΈ ΠΊΠ»ΡΡΠΎΡ Π½Π΅ ΡΠ΅ Π½Π°Π²Π΅Π΄Π΅Π½ΠΈ, ΠΈΠ·Π±Π΅ΡΠ΅ΡΠ΅ Π³ΠΈ ΠΏΠ°ΡΡΠΈΡΠΈΠΈΡΠ΅ Π΅Π΄Π½Π° ΠΏΠΎ Π΅Π΄Π½Π° (round-robin).
ΠΡΡΠΎ ΡΠ°ΠΊΠ°, ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅ Π½Π° ΠΊΠ»ΡΡ ΠΈ ΠΈΠ΄Π΅ΠΌΠΏΠΎΡΠ΅Π½ΡΠ½ΠΎ ΠΈΡΠΏΡΠ°ΡΠ°ΡΠ΅ ΡΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΠ°Ρ max.in.flight.requests.per.connection = 1 Π²ΠΈ Π΄Π°Π²Π° ΡΠ°ΡΠΈΠΎΠ½Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΠΏΠΎΡΠ°ΠΊΠΈΡΠ΅ Π½Π° ΠΏΠΎΡΡΠΎΡΡΠ²Π°ΡΠΎΡ. ΠΡΡΠΎ ΡΠ°ΠΊΠ°, Π²ΡΠ΅Π΄ΠΈ Π΄Π° ΡΠ΅ Π·Π°ΠΏΠ°ΠΌΠ΅ΡΠΈ Π΄Π΅ΠΊΠ° Π°ΠΊΠΎ ΠΊΠΎΠ½ΡΡΠΎΠ»Π°ΡΠ° Π½Π° ΠΏΡΠΈΡΡΠ°ΠΏ Π΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½Π° Π½Π° Π²Π°ΡΠΈΠΎΡ ΠΊΠ»Π°ΡΡΠ΅Ρ, ΡΠΎΠ³Π°Ρ ΡΠ΅ Π²ΠΈ ΡΡΠ΅Π±Π°Π°Ρ ΠΏΡΠ°Π²Π° Π·Π° ΠΈΠ΄Π΅ΠΌΠΎΡΠ΅Π½ΡΠ½ΠΎ ΠΏΠΈΡΡΠ²Π°ΡΠ΅ Π½Π° ΡΠ΅ΠΌΠ°.
ΠΠΊΠΎ ΠΎΠ΄Π΅Π΄Π½Π°Ρ Π²ΠΈ Π½Π΅Π΄ΠΎΡΡΠΈΠ³Π°Π°Ρ ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π·Π° ΠΈΠ΄Π΅ΠΌΠΎΡΠ΅Π½ΡΠ½ΠΎ ΠΈΡΠΏΡΠ°ΡΠ°ΡΠ΅ ΡΠΎ ΠΊΠ»ΡΡ ΠΈΠ»ΠΈ Π»ΠΎΠ³ΠΈΠΊΠ°ΡΠ° Π½Π° ΡΡΡΠ°Π½Π°ΡΠ° Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΠΎΡ Π±Π°ΡΠ° ΠΎΠ΄ΡΠΆΡΠ²Π°ΡΠ΅ Π½Π° ΠΊΠΎΠ½Π·ΠΈΡΡΠ΅Π½ΡΠ½ΠΎΡΡΠ° Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈΡΠ΅ ΠΏΠΎΠΌΠ΅ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈΡΠ΅ ΠΏΠ°ΡΡΠΈΡΠΈΠΈ, ΡΠΎΠ³Π°Ρ ΡΡΠ°Π½ΡΠ°ΠΊΡΠΈΠΈΡΠ΅ ΡΠ΅ Π΄ΠΎΡΠ΄Π°Ρ Π½Π° ΠΏΠΎΠΌΠΎΡ. ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π½ΠΎ, ΠΊΠΎΡΠΈΡΡΠ΅ΡΡΠΈ Π²Π΅ΡΠΈΠΆΠ½Π° ΡΡΠ°Π½ΡΠ°ΠΊΡΠΈΡΠ°, ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΠ»ΠΎΠ²Π½ΠΎ Π΄Π° ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠ°ΡΠ΅ Π·Π°ΠΏΠΈΡ Π²ΠΎ ΠΠ°ΡΠΊΠ°, Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΎ Π·Π°ΠΏΠΈΡ Π²ΠΎ Π±Π°Π·Π°ΡΠ° Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ. ΠΠ° Π΄Π° ΡΠ΅ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΠΈ ΡΡΠ°Π½ΡΠ°ΠΊΡΠΈΡΠΊΠΎ ΠΈΡΠΏΡΠ°ΡΠ°ΡΠ΅ Π΄ΠΎ ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΠΎΡ, ΡΠΎΡ ΠΌΠΎΡΠ° Π΄Π° Π±ΠΈΠ΄Π΅ Π½Π΅ΠΌΠΎΡΠ΅Π½ ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π½ΠΎ ΠΏΠΎΡΡΠ°Π²Π΅Π½ ΡΡΠ°Π½ΡΠ°ΠΊΡΠΈΡΠΊΠ°.ΠΈΠ΄. ΠΠΊΠΎ Π²Π°ΡΠΈΠΎΡ ΠΊΠ»Π°ΡΡΠ΅Ρ ΠΠ°ΡΠΊΠ° ΠΈΠΌΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½Π° ΠΊΠΎΠ½ΡΡΠΎΠ»Π° Π½Π° ΠΏΡΠΈΡΡΠ°ΠΏ, ΡΠΎΠ³Π°Ρ ΡΡΠ°Π½ΡΠ°ΠΊΡΠΈΡΠΊΠΈΠΎΡ Π·Π°ΠΏΠΈΡ, ΠΊΠ°ΠΊΠΎ ΠΈΠ΄Π΅ΠΌΠΏΠΎΡΠ΅Π½ΡΠ½ΠΈΠΎΡ Π·Π°ΠΏΠΈΡ, ΡΠ΅ ΠΈΠΌΠ° ΠΏΠΎΡΡΠ΅Π±Π° ΠΎΠ΄ Π΄ΠΎΠ·Π²ΠΎΠ»ΠΈ Π·Π° ΠΏΠΈΡΡΠ²Π°ΡΠ΅, ΠΊΠΎΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π΄ΠΎΠ΄Π΅Π»Π°Ρ ΡΠΎ ΠΌΠ°ΡΠΊΠ° ΠΊΠΎΡΠΈΡΡΠ΅ΡΡΠΈ ΡΠ° Π²ΡΠ΅Π΄Π½ΠΎΡΡΠ° Π·Π°ΡΡΠ²Π°Π½Π° Π²ΠΎ transaksional.id.
Π€ΠΎΡΠΌΠ°Π»Π½ΠΎ, ΡΠ΅ΠΊΠΎΡΠ° Π½ΠΈΠ·Π°, ΠΊΠ°ΠΊΠΎ ΡΡΠΎ Π΅ ΠΈΠΌΠ΅ΡΠΎ Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ°ΡΠ°, ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ ΠΊΠ°ΠΊΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π½Π° ΡΡΠ°Π½ΡΠ°ΠΊΡΠΈΡΠ°ΡΠ°. ΠΠΎ, Π°ΠΊΠΎ ΡΡΠ°ΡΡΡΠ²Π°ΡΠ΅ Π½Π΅ΠΊΠΎΠ»ΠΊΡ ΠΏΡΠΈΠΌΠ΅ΡΠΎΡΠΈ ΠΎΠ΄ ΠΈΡΡΠ° Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ° ΡΠΎ ΠΈΡΡΠΈΠΎΡ ΡΡΠ°Π½ΡΠ°ΠΊΡΠΈΡΠΊΠΈ.ΠΈΠ΄, ΡΠΎΠ³Π°Ρ ΠΏΡΠ²ΠΈΠΎΡ ΡΡΠ°ΡΡΡΠ²Π°Π½ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ΅ Π±ΠΈΠ΄Π΅ Π·Π°ΠΏΡΠ΅Π½ ΡΠΎ Π³ΡΠ΅ΡΠΊΠ°, Π±ΠΈΠ΄Π΅ΡΡΠΈ ΠΠ°ΡΠΊΠ° ΡΠ΅ Π³ΠΎ ΡΠΌΠ΅ΡΠ° Π·Π° ΠΏΡΠΎΡΠ΅Ρ Π½Π° Π·ΠΎΠΌΠ±ΠΈ.
org.apache.kafka.common.errors.ProducerFencedException: Producer attempted an operation with an old epoch. Either there is a newer producer with the same transactionalId, or the producer's transaction has been expired by the broker.
ΠΠ° Π΄Π° Π³ΠΎ ΡΠ΅ΡΠΈΠΌΠ΅ ΠΎΠ²ΠΎΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, Π΄ΠΎΠ΄Π°Π²Π°ΠΌΠ΅ ΡΡΡΠΈΠΊΡ Π½Π° ΠΈΠΌΠ΅ΡΠΎ Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ°ΡΠ° Π²ΠΎ ΡΠΎΡΠΌΠ° Π½Π° ΠΈΠΌΠ΅ΡΠΎ Π½Π° Π΄ΠΎΠΌΠ°ΡΠΈΠ½ΠΎΡ, ΡΡΠΎ Π³ΠΎ Π΄ΠΎΠ±ΠΈΠ²Π°ΠΌΠ΅ ΠΎΠ΄ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈΡΠ΅ Π½Π° ΠΎΠΊΠΎΠ»ΠΈΠ½Π°ΡΠ°.
ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΠΎΡ Π΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½, Π½ΠΎ ΡΡΠ°Π½ΡΠ°ΠΊΡΠΈΠΈΡΠ΅ Π½Π° ΠΠ°ΡΠΊΠ° Π³ΠΎ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠ°Π°Ρ ΡΠ°ΠΌΠΎ ΠΎΠΏΡΠ΅Π³ΠΎΡ Π½Π° ΠΏΠΎΡΠ°ΠΊΠ°ΡΠ°. ΠΠ΅Π· ΠΎΠ³Π»Π΅Π΄ Π½Π° ΡΡΠ°ΡΡΡΠΎΡ Π½Π° ΡΡΠ°Π½ΡΠ°ΠΊΡΠΈΡΠ°ΡΠ°, ΠΏΠΎΡΠ°ΠΊΠ°ΡΠ° Π²Π΅Π΄Π½Π°Ρ ΠΎΠ΄ΠΈ Π½Π° ΡΠ΅ΠΌΠ°ΡΠ°, Π½ΠΎ ΠΈΠΌΠ° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌΡΠΊΠΈ Π°ΡΡΠΈΠ±ΡΡΠΈ.
ΠΠ° Π΄Π° ΡΠΏΡΠ΅ΡΠΈ ΡΠ°ΠΊΠ²ΠΈΡΠ΅ ΠΏΠΎΡΠ°ΠΊΠΈ Π΄Π° Π±ΠΈΠ΄Π°Ρ ΠΏΡΠΎΡΠΈΡΠ°Π½ΠΈ ΠΎΠ΄ ΡΡΡΠ°Π½Π° Π½Π° ΠΏΠΎΡΡΠΎΡΡΠ²Π°ΡΠΎΡ ΠΏΡΠ΅Π΄ Π²ΡΠ΅ΠΌΠ΅, ΡΠΎΡ ΡΡΠ΅Π±Π° Π΄Π° Π³ΠΎ ΠΏΠΎΡΡΠ°Π²ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΠ°ΡΠΎΡ ΠΈΠ·ΠΎΠ»Π°ΡΠΈΡΠ°.Π½ΠΈΠ²ΠΎ Π΄ΠΎ read_committed Π²ΡΠ΅Π΄Π½ΠΎΡΡ. Π’Π°ΠΊΠ²ΠΈΠΎΡ ΠΏΠΎΡΡΠΎΡΡΠ²Π°Ρ ΡΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠΈΡΠ° Π½Π΅ΡΡΠ°Π½ΡΠ°ΠΊΡΠΈΡΠΊΠΈ ΠΏΠΎΡΠ°ΠΊΠΈ ΠΊΠ°ΠΊΠΎ Π΄ΠΎΡΠ΅Π³Π°, Π° ΡΡΠ°Π½ΡΠ°ΠΊΡΠΈΡΠΊΠΈΡΠ΅ ΠΏΠΎΡΠ°ΠΊΠΈ ΡΠ°ΠΌΠΎ ΠΏΠΎ ΠΈΠ·Π²ΡΡΠ΅Π½ΠΎ ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅.
ΠΠΊΠΎ ΡΡΠ΅ Π³ΠΈ ΠΏΠΎΡΡΠ°Π²ΠΈΠ»Π΅ ΡΠΈΡΠ΅ ΠΏΠΎΡΡΠ°Π²ΠΊΠΈ Π½Π°Π²Π΅Π΄Π΅Π½ΠΈ ΠΏΡΠ΅ΡΡ
ΠΎΠ΄Π½ΠΎ, ΡΠΎΠ³Π°Ρ ΡΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π»Π΅ ΡΠΎΡΠ½ΠΎ Π΅Π΄Π½Π°Ρ ΠΈΡΠΏΠΎΡΠ°ΠΊΠ°. Π‘Π΅ΠΊΠΎΡΠ° ΡΠ΅ΡΡ!
ΠΠΎ, ΠΈΠΌΠ° ΡΡΡΠ΅ Π΅Π΄Π½Π° Π½ΠΈΡΠ°Π½ΡΠ°. Transaction.id, ΠΊΠΎΡ Π³ΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π²ΠΌΠ΅ ΠΏΠΎΠ³ΠΎΡΠ΅, Π΅ Π²ΡΡΡΠ½ΠΎΡΡ ΠΏΡΠ΅ΡΠΈΠΊΡΠΎΡ Π½Π° ΡΡΠ°Π½ΡΠ°ΠΊΡΠΈΡΠ°ΡΠ°. ΠΠ° ΠΌΠ΅Π½Π°ΡΠ΅ΡΠΎΡ Π½Π° ΡΡΠ°Π½ΡΠ°ΠΊΡΠΈΠΈ, Π½Π° Π½Π΅Π³ΠΎ ΡΠ΅ Π΄ΠΎΠ΄Π°Π²Π° ΡΠ΅ΠΊΠ²Π΅Π½ΡΠΈΠΎΠ½Π΅Π½ Π±ΡΠΎΡ. ΠΡΠΈΠΌΠ΅Π½ΠΈΠΎΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΠ΅ ΠΈΠ·Π΄Π°Π²Π° Π½Π° ΡΡΠ°Π½ΡΠ°ΠΊΡΠΈΡΠΊΠ°.ΠΈΠ΄.ΠΈΡΡΠ΅ΠΊ.ms, ΠΊΠΎΡ Π΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½ Π½Π° ΠΊΠ»Π°ΡΡΠ΅ΡΠΎΡ ΠΠ°ΡΠΊΠ° ΠΈ ΠΈΠΌΠ° ΡΡΠ°Π½Π΄Π°ΡΠ΄Π½Π° Π²ΡΠ΅Π΄Π½ΠΎΡΡ ΠΎΠ΄ β7 Π΄Π΅Π½Π°β. ΠΠΎΠΊΠΎΠ»ΠΊΡ Π²ΠΎ ΠΎΠ²Π° Π²ΡΠ΅ΠΌΠ΅ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ°ΡΠ° Π½Π΅ ΠΏΡΠΈΠΌΠΈΠ»Π° Π½ΠΈΠΊΠ°ΠΊΠ²ΠΈ ΠΏΠΎΡΠ°ΠΊΠΈ, ΡΠΎΠ³Π°Ρ ΠΊΠΎΠ³Π° ΡΠ΅ ΡΠ΅ ΠΎΠ±ΠΈΠ΄Π΅ΡΠ΅ ΡΠΎ ΡΠ»Π΅Π΄Π½ΠΎΡΠΎ ΡΡΠ°Π½ΡΠ°ΠΊΡΠΈΡΠΊΠΎ ΠΈΡΠΏΡΠ°ΡΠ°ΡΠ΅ ΡΠ΅ Π΄ΠΎΠ±ΠΈΠ΅ΡΠ΅ InvalidPidMappingException. ΠΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠΎΡΠΎΡ Π½Π° ΡΡΠ°Π½ΡΠ°ΠΊΡΠΈΡΠ°ΡΠ° ΠΏΠΎΡΠΎΠ° ΡΠ΅ ΠΈΠ·Π΄Π°Π΄Π΅ Π½ΠΎΠ² ΡΠ΅ΠΊΠ²Π΅Π½ΡΠΈΠΎΠ½Π΅Π½ Π±ΡΠΎΡ Π·Π° ΡΠ»Π΅Π΄Π½Π°ΡΠ° ΡΡΠ°Π½ΡΠ°ΠΊΡΠΈΡΠ°. Π‘Π΅ΠΏΠ°ΠΊ, ΠΏΠΎΡΠ°ΠΊΠ°ΡΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·Π³ΡΠ±ΠΈ Π°ΠΊΠΎ Π½Π΅ ΡΠ΅ ΠΏΠΎΡΡΠ°ΠΏΡΠ²Π° ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ ΡΠΎ InvalidPidMappingException.
ΠΠ°ΠΌΠ΅ΡΡΠΎ ΡΠΎΡΠ°Π»ΠΈ
ΠΠ°ΠΊΠΎ ΡΡΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅, Π½Π΅ Π΅ Π΄ΠΎΠ²ΠΎΠ»Π½ΠΎ ΡΠ°ΠΌΠΎ Π΄Π° ΠΌΡ ΠΈΡΠΏΡΠ°ΡΠ°ΡΠ΅ ΠΏΠΎΡΠ°ΠΊΠΈ Π½Π° ΠΠ°ΡΠΊΠ°. Π’ΡΠ΅Π±Π° Π΄Π° ΠΈΠ·Π±Π΅ΡΠ΅ΡΠ΅ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡΠ° ΠΎΠ΄ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ ΠΈ Π΄Π° Π±ΠΈΠ΄Π΅ΡΠ΅ ΠΏΠΎΠ΄Π³ΠΎΡΠ²Π΅Π½ΠΈ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ Π±ΡΠ·ΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ. ΠΠΎ ΠΎΠ²Π°Π° ΡΡΠ°ΡΠΈΡΠ°, ΡΠ΅ ΠΎΠ±ΠΈΠ΄ΠΎΠ² Π΄Π΅ΡΠ°Π»Π½ΠΎ Π΄Π° Π³ΠΎ ΠΏΡΠΈΠΊΠ°ΠΆΠ°ΠΌ ΠΏΠΎΡΡΠ°Π²ΡΠ²Π°ΡΠ΅ΡΠΎ ΡΠΎΡΠ½ΠΎ Π΅Π΄Π½Π°Ρ Π·Π° ΠΈΡΠΏΠΎΡΠ°ΠΊΠ° ΠΈ ΠΎΠΏΠΈΡΠ°Π² Π½Π΅ΠΊΠΎΠ»ΠΊΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ ΡΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈΡΠ΅ Π½Π° client.id ΠΈ ΡΡΠ°Π½ΡΠ°ΠΊΡΠΈΡΠΊΠ°.id Π½Π° ΠΊΠΎΠΈ Π½Π°ΠΈΠ΄ΠΎΠ²ΠΌΠ΅. ΠΠΎΠ΄ΠΎΠ»Ρ Π΅ ΡΠ΅Π·ΠΈΠΌΠ΅ Π½Π° ΠΏΠΎΡΡΠ°Π²ΠΊΠΈΡΠ΅ Π·Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π» ΠΈ ΠΏΠΎΡΡΠΎΡΡΠ²Π°Ρ.
ΠΡΠΎΠ΄ΡΡΠ΅Π½Ρ:
- Π°ΠΊΡ = ΡΠΈΡΠ΅
- ΡΠ΅ ΠΏΠΎΠ²ΡΠΎΡΡΠ²Π° > 0
- ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΠΈ.ΠΈΠ΄Π΅ΠΌΠΏΠΎΡΠ΅Π½ΡΠΈΡΠ° = ΡΠΎΡΠ½ΠΎ
- max.in.flight. requests.per.connection β€ 5 (1 Π·Π° ΡΡΠ΅Π΄Π½ΠΎ ΠΈΡΠΏΡΠ°ΡΠ°ΡΠ΅)
- transactional.id = ${application-name}-${hostname}
ΠΠΎΡΡΠΎΡΡΠ²Π°Ρ:
- ΠΈΠ·ΠΎΠ»Π°ΡΠΈΡΠ°.Π½ΠΈΠ²ΠΎ = read_committed
ΠΠ° Π΄Π° Π³ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠ°ΠΌΠ΅ Π³ΡΠ΅ΡΠΊΠΈΡΠ΅ Π²ΠΎ ΠΈΠ΄Π½ΠΈΡΠ΅ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ, Π½Π°ΠΏΡΠ°Π²ΠΈΠ²ΠΌΠ΅ ΡΠΎΠΏΡΡΠ²Π΅Π½ ΠΎΠ±Π²ΠΈΠ²ΠΊΠ° ΠΏΡΠ΅ΠΊΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠ°ΡΠ° Π½Π° ΠΏΡΡΠΆΠΈΠ½Π°ΡΠ°, ΠΊΠ°Π΄Π΅ ΡΡΠΎ Π²ΡΠ΅Π΄Π½ΠΎΡΡΠΈΡΠ΅ Π·Π° Π½Π΅ΠΊΠΎΠΈ ΠΎΠ΄ Π½Π°Π²Π΅Π΄Π΅Π½ΠΈΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ ΡΠ΅ Π²Π΅ΡΠ΅ ΠΏΠΎΡΡΠ°Π²Π΅Π½ΠΈ.
ΠΠ²Π΅ Π½Π΅ΠΊΠΎΠ»ΠΊΡ ΠΌΠ°ΡΠ΅ΡΠΈΡΠ°Π»ΠΈ Π·Π° ΡΠ°ΠΌΠΎΡΡΠΎΡΠ½ΠΎ ΡΡΠ΅ΡΠ΅:
KIP-98 - Π’ΠΎΡΠ½ΠΎ Π΅Π΄Π½Π°Ρ ΠΈΡΠΏΠΎΡΠ°ΠΊΠ° ΠΈ ΡΠ°Π·ΠΌΠ΅Π½Π° Π½Π° ΠΏΠΎΡΠ°ΠΊΠΈ ΠΠΏΠΈΡ Π½Π° ΠΏΠΎΡΡΠ°Π²ΠΊΠΈΡΠ΅
ΠΠ·Π²ΠΎΡ: www.habr.com