ΠΡΠΈΠΌ. ΠΏΠ΅ΡΠ΅Π².: Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ Banzai Cloud Π΄Π΅Π»ΠΈΡΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π΅Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ ΡΡΠΈΠ»ΠΈΡ Π΄Π»Ρ ΠΎΠ±Π»Π΅Π³ΡΠ΅Π½ΠΈΡ ΡΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΠΈ Kafka Π² ΡΠ°ΠΌΠΊΠ°Ρ Kubernetes. ΠΡΠΈΠ²ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΈΠ»Π»ΡΡΡΡΠΈΡΡΡΡ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ ΠΈ Π½Π°ΡΡΡΠΎΠΈΡΡ ΡΠ°ΠΌΡ Kafka Π΄Π»Ρ Π΄ΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΡ ΡΡΠ΅Π±ΡΠ΅ΠΌΠΎΠΉ ΠΏΡΠΎΠΏΡΡΠΊΠ½ΠΎΠΉ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ.
Apache Kafka β ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½Π°Ρ ΡΡΡΠΈΠΌΠΈΠ½Π³ΠΎΠ²Π°Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½Π°Π΄ΡΠΆΠ½ΡΡ
, ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΡΡ
ΠΈ Π²ΡΡΠΎΠΊΠΎΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΡΡ
ΠΏΠΎΡΠΎΠΊΠΎΠ²ΡΡ
ΡΠΈΡΡΠ΅ΠΌ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. ΠΡ Π²ΠΏΠ΅ΡΠ°ΡΠ»ΡΡΡΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΡΡΠΈΡΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Kubernetes. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΌΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ
ΠΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ Supertubes Π² ΡΠ²ΠΎΡΠΌ ΠΊΠ»Π°ΡΡΠ΅ΡΠ΅:
curl https://getsupertubes.sh | sh ΠΈ supertubes install -a --no-democluster --kubeconfig <path-to-eks-cluster-kubeconfig-file>
ΠΠ»ΠΈ ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ΡΡ ΠΊ
Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ . Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΈΡΠ°ΡΡ ΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ Kafka, ΡΠ°Π±ΠΎΡΠ° Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ Supertubes ΠΈ Kafka operator. Π Π½ΠΈΡ ΠΌΡ ΡΠΆΠ΅ ΠΏΠΈΡΠ°Π»ΠΈ Π² Π±Π»ΠΎΠ³Π΅:
Oh no! Yet another Kafka operator for Kubernetes ;Monitor and operate Kafka based on Prometheus metrics ;Kafka rack awareness on Kubernetes ;Running Apache Kafka over Istio β benchmark ;User authenticated and access controlled clusters with the Kafka operator ;Kafka rolling upgrade and dynamic configuration on Kubernetes ;Envoy protocol filter for Kafka, meshed .
Π Π΅ΡΠΈΠ² ΡΠ°Π·Π²Π΅ΡΠ½ΡΡΡ ΠΊΠ»Π°ΡΡΠ΅Ρ Kafka Π² Kubernetes, Π²Ρ Π½Π°Π²Π΅ΡΠ½ΡΠΊΠ° ΡΡΠΎΠ»ΠΊΠ½Π΅ΡΠ΅ΡΡ Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ° Π±Π°Π·ΠΎΠ²ΠΎΠΉ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ ΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡΡ ΡΠΎΠ½ΠΊΠΎΠΉ ΠΏΠΎΠ΄ΡΡΡΠΎΠΉΠΊΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Kafka Π΄Π»Ρ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΠ΅Π½ΠΈΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΊ ΠΏΡΠΎΠΏΡΡΠΊΠ½ΠΎΠΉ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ. ΠΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½Π°Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π±ΡΠΎΠΊΠ΅ΡΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ Π² Π΅Π³ΠΎ ΠΎΡΠ½ΠΎΠ²Π΅, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ ΠΏΠ°ΠΌΡΡΡ, ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ, ΡΠΊΠΎΡΠΎΡΡΡ Π΄ΠΈΡΠΊΠ°, ΠΏΡΠΎΠΏΡΡΠΊΠ½Π°Ρ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ ΡΠ΅ΡΠΈ ΠΈ Ρ.Π΄.
Π ΠΈΠ΄Π΅Π°Π»Π΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π±ΡΠΎΠΊΠ΅ΡΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΡΠ°ΠΊΠΎΠΉ, ΡΡΠΎΠ±Ρ Π²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈΡΡ Π½Π° ΠΌΠ°ΠΊΡΠΈΠΌΡΠΌΠ΅ ΡΠ²ΠΎΠΈΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ. ΠΠ΄Π½Π°ΠΊΠΎ Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΉ ΠΆΠΈΠ·Π½ΠΈ ΡΠ°ΠΊΠ°Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Π²Π΅ΡΡΠΌΠ° ΡΠ»ΠΎΠΆΠ½Π°. ΠΠΎΠ»Π΅Π΅ Π²Π΅ΡΠΎΡΡΠ½ΠΎ, ΡΡΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ Π±ΡΠ΄ΡΡ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π±ΡΠΎΠΊΠ΅ΡΠΎΠ² ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π΄Π²ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² (Π΄ΠΈΡΠΊΠ°, ΠΏΠ°ΠΌΡΡΠΈ ΠΈΠ»ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°). ΠΠΎΠΎΠ±ΡΠ΅ Π³ΠΎΠ²ΠΎΡΡ, Π±ΡΠΎΠΊΠ΅Ρ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ, ΠΊΠΎΠ³Π΄Π° Π΅Π³ΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ ΡΠ°ΠΌΡΠΉ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Β«ΠΏΠΎ ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅Β». Π’Π°ΠΊ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎ Π½Π°Π³ΡΡΠ·ΠΊΠ΅, Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ±Π΅Π½ ΡΠΏΡΠ°Π²ΠΈΡΡΡΡ ΠΎΠ΄ΠΈΠ½ Π±ΡΠΎΠΊΠ΅Ρ.
Π’Π΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈ, ΠΌΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠΈΠΊΠΈΠ½ΡΡΡ ΡΠΈΡΠ»ΠΎ Π±ΡΠΎΠΊΠ΅ΡΠΎΠ², Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠ΅ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ Π½Π°Π³ΡΡΠ·ΠΊΠΎΠΉ. ΠΠ΄Π½Π°ΠΊΠΎ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΡΠΎΠ²Π½ΡΡ ΡΡΠΎΠ»Ρ ΠΌΠ½ΠΎΠ³ΠΎ, ΡΡΠΎ ΠΎΡΠ΅Π½ΠΈΡΡ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π½Π΅ΠΊΠΎΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π²Π΅ΡΡΠΌΠ° ΡΠ»ΠΎΠΆΠ½ΠΎ (Π΅ΡΠ»ΠΈ Π½Π΅ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ). ΠΡΡΠ³ΠΈΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, ΠΎΡΠ΅Π½Ρ ΡΠ»ΠΎΠΆΠ½ΠΎ ΡΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ, ΠΎΡΡΠ°Π»ΠΊΠΈΠ²Π°ΡΡΡ ΠΎΡ Π½Π΅ΠΊΠΎΠΉ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ.
ΠΠ»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Supertubes ΠΌΡ ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄: Π½Π°ΡΠΈΠ½Π°Π΅ΠΌ Ρ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ (ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° + Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ), Π·Π°ΡΠ΅ΠΌ ΠΈΠ·ΠΌΠ΅ΡΡΠ΅ΠΌ Π΅Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ, ΠΊΠΎΡΡΠ΅ΠΊΡΠΈΡΡΠ΅ΠΌ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π±ΡΠΎΠΊΠ΅ΡΠ° ΠΈ ΠΏΠΎΠ²ΡΠΎΡΡΠ΅ΠΌ ΠΏΡΠΎΡΠ΅ΡΡ Π΅ΡΡ ΡΠ°Π·. ΠΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π» ΡΠ°ΠΌΠΎΠ³ΠΎ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π½.
Π’Π°ΠΊΠΈΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠΊΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎ ΡΠΎΠΌ, ΡΠΊΠΎΠ»ΡΠΊΠΎ Π±ΡΠΎΠΊΠ΅ΡΠΎΠ² Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΊΠ»Π°ΡΡΠ΅ΡΡ, ΡΡΠΎΠ±Ρ ΡΠΏΡΠ°Π²ΠΈΡΡΡΡ Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠΉ Π½Π°Π³ΡΡΠ·ΠΊΠΎΠΉ (ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π±ΡΠΎΠΊΠ΅ΡΠΎΠ² ΡΠ°ΠΊΠΆΠ΅ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ Π΄ΡΡΠ³ΠΈΡ ΡΠ°ΠΊΡΠΎΡΠΎΠ², ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΡΠ΅ΠΏΠ»ΠΈΠΊ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π΄Π»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΡΠΎΠΉΡΠΈΠ²ΠΎΡΡΠΈ, ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ partition-Π»ΠΈΠ΄Π΅ΡΠΎΠ² ΠΈ Ρ.ΠΏ.). ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎ ΡΠΎΠΌ, Π΄Π»Ρ ΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ Π²Π΅ΡΡΠΈΠΊΠ°Π»ΠΈ.
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΡΠ΅ΡΡ ΠΏΠΎΠΉΠ΄ΡΡ ΠΎ ΡΠ°Π³Π°Ρ
, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ ΠΏΡΠ΅Π΄ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅ΠΌ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Β«Π²ΡΠΆΠ°ΡΡ Π²ΡΡΒ» ΠΈΠ· ΡΠ°ΠΌΡΡ
ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΡ
ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Π² Π½Π°ΡΠ°Π»ΡΠ½ΡΡ
ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡ
ΠΈ ΠΈΠ·ΠΌΠ΅ΡΠΈΡΡ ΠΏΡΠΎΠΏΡΡΠΊΠ½ΡΡ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° Kafka. ΠΡΡΠΎΠΊΠΎΡΡΡΠΎΠΉΡΠΈΠ²Π°Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΡΡΠ΅Π±ΡΠ΅Ρ Π½Π°Π»ΠΈΡΠΈΡ ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅ ΡΡΡΡ
ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΡ
Π±ΡΠΎΠΊΠ΅ΡΠΎΠ² (min.insync.replicas=3
), ΡΠ°Π·Π½Π΅ΡΡΠ½Π½ΡΡ
ΠΏΠΎ ΡΡΡΠΌ ΡΠ°Π·Π½ΡΠΌ Π·ΠΎΠ½Π°ΠΌ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΠΈ. ΠΠ»Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ, ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π° ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ Kubernetes ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°ΠΌΠΈ Π΄Π»Ρ Π³ΠΈΠ±ΡΠΈΠ΄Π½ΡΡ
ΠΎΠ±Π»Π°ΠΊΠΎΠ² β
ΠΡΡΠ»ΠΈ ΠΏΠΎ ΠΏΠΎΠ²ΠΎΠ΄Ρ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° Kafka
ΠΠ»Ρ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ², ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½Π½ΡΡ
Π½ΠΈΠΆΠ΅, ΠΌΡ Π²ΡΠ±ΡΠ°Π»ΠΈ AWS Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠΎΡΡΠ°Π²ΡΠΈΠΊΠ° ΠΎΠ±Π»Π°ΡΠ½ΡΡ
ΡΡΠ»ΡΠ³ ΠΈ EKS Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π° Kubernetes. ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ
ΠΠΈΡΠΊ
Amazon ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅
Π’ΠΈΠΏΡ ΠΈΠ½ΡΡΠ°Π½ΡΠΎΠ²
ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Kafka ΡΠΈΠ»ΡΠ½ΠΎ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΡΡΠ°Π½ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΊΡΡΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, ΠΏΠΎΡΡΠΎΠΌΡ Π½Π°ΠΌ Π½ΡΠΆΠ½Ρ ΠΈΠ½ΡΡΠ°Π½ΡΡ Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΡΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ ΠΏΠ°ΠΌΡΡΠΈ Π΄Π»Ρ Π±ΡΠΎΠΊΠ΅ΡΠΎΠ² (JVM) ΠΈ ΡΡΡΠ°Π½ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΊΡΡΠ°. ΠΠ½ΡΡΠ°Π½Ρ c5.2xlarge β Π½Π΅ΠΏΠ»ΠΎΡ
ΠΎΠ΅ Π½Π°ΡΠ°Π»ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΈΠΌΠ΅Π΅Ρ 16 ΠΠ± ΠΏΠ°ΠΌΡΡΠΈ ΠΈ
Π‘Π΅ΡΡ
ΠΡΠΎΠΏΡΡΠΊΠ½Π°Ρ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ ΡΠ΅ΡΠΈ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΎΠΊΠ°Π·Π°ΡΡΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ ΠΈΠ½ΡΡΠ°Π½ΡΠ° VM ΠΈ Π΄ΠΈΡΠΊΠ°, Π² ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠ΅ΡΡ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΡΠ·ΠΊΠΈΠΌ ΠΌΠ΅ΡΡΠΎΠΌ. Π Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ c5.4xlarge ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠΊΠΎΡΠΎΡΡΡ Π΄ΠΎ 10 ΠΠ±/Ρ, ΡΡΠΎ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π²ΡΡΠ΅ ΠΏΡΠΎΠΏΡΡΠΊΠ½ΠΎΠΉ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ I/O ΠΈΠ½ΡΡΠ°Π½ΡΠ° VM.
Π Π°Π·Π²ΡΡΡΡΠ²Π°Π½ΠΈΠ΅ Π±ΡΠΎΠΊΠ΅ΡΠΎΠ²
ΠΡΠΎΠΊΠ΅ΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ°Π·Π²ΠΎΡΠ°ΡΠΈΠ²Π°ΡΡΡΡ (ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°ΡΡΡΡ Π² Kubernetes) Π½Π° Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΡΠ·Π»Ρ, ΡΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠΈΠΈ Ρ Π΄ΡΡΠ³ΠΈΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌΠΈ Π·Π° ΡΠ΅ΡΡΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°, ΠΏΠ°ΠΌΡΡΠΈ, ΡΠ΅ΡΠΈ ΠΈ Π΄ΠΈΡΠΊΠ°.
ΠΠ΅ΡΡΠΈΡ Java
ΠΠΎΠ³ΠΈΡΠ½ΡΠΌ Π²ΡΠ±ΠΎΡΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ Java 11, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½Π° ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠ° Ρ Docker Π² ΡΠΎΠΌ ΡΠΌΡΡΠ»Π΅, ΡΡΠΎ JVM ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΡ ΠΈ ΠΏΠ°ΠΌΡΡΡ, Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π±ΡΠΎΠΊΠ΅Ρ. ΠΠ½Π°Ρ, ΡΡΠΎ Π»ΠΈΠΌΠΈΡΡ ΠΏΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°ΠΌ Π²Π°ΠΆΠ½Ρ, JVM Π²Π½ΡΡΡΠ΅Π½Π½Π΅ ΠΈ ΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΠΎ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ² GC ΠΈ ΠΏΠΎΡΠΎΠΊΠΎΠ² JIT-ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°. ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ ΠΎΠ±ΡΠ°Π· Kafka banzaicloud/kafka:2.13-2.4.0
, Π²ΠΊΠ»ΡΡΠ°ΡΡΠΈΠΉ Π²Π΅ΡΡΠΈΡ Kafka 2.4.0 (Scala 2.13) Π½Π° Java 11.
ΠΡΠ»ΠΈ Π²Ρ ΠΆΠ΅Π»Π°Π΅ΡΠ΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΡΠ·Π½Π°ΡΡ ΠΎ Java/JVM Π½Π° Kubernetes, ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π½Π°ΡΠΈ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ:
ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΠ°ΠΌΡΡΠΈ Π±ΡΠΎΠΊΠ΅ΡΠ°
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π΄Π²Π° ΠΊΠ»ΡΡΠ΅Π²ΡΡ
Π°ΡΠΏΠ΅ΠΊΡΠ° Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠ΅ ΠΏΠ°ΠΌΡΡΠΈ Π±ΡΠΎΠΊΠ΅ΡΠ°: Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π΄Π»Ρ JVM ΠΈ Π΄Π»Ρ pod’Π° Kubernetes. ΠΡΠ΅Π΄Π΅Π» ΠΏΠ°ΠΌΡΡΠΈ, ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠΉ Π΄Π»Ρ pod’Π°, Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π±ΠΎΠ»ΡΡΠ΅, ΡΠ΅ΠΌ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ heap size, ΡΡΠΎΠ±Ρ Ρ JVM ΠΎΡΡΠ°Π²Π°Π»ΠΎΡΡ ΠΌΠ΅ΡΡΠΎ Π΄Π»Ρ ΠΌΠ΅ΡΠ°ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° Java, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ Π² ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ, ΠΈ Π΄Π»Ρ ΡΡΡΠ°Π½ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΊΡΡΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, ΠΊΠΎΡΠΎΡΡΠΉ Kafka Π°ΠΊΡΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ. ΠΡ Π² ΡΠ²ΠΎΠΈΡ
ΡΠ΅ΡΡΠ°Ρ
Π·Π°ΠΏΡΡΠΊΠ°Π»ΠΈ Π±ΡΠΎΠΊΠ΅ΡΡ Kafka Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ -Xmx4G -Xms2G
, Π° ΠΏΡΠ΅Π΄Π΅Π» ΠΏΠ°ΠΌΡΡΠΈ Π΄Π»Ρ pod’Π° ΡΠΎΡΡΠ°Π²Π»ΡΠ» 10 Gi
. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΠ°ΠΌΡΡΠΈ Π΄Π»Ρ JVM ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΎΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ -XX:MaxRAMPercentage
ΠΈ -X:MinRAMPercentage
, ΠΈΡΡ
ΠΎΠ΄Ρ ΠΈΠ· Π»ΠΈΠΌΠΈΡΠ° ΠΏΠ°ΠΌΡΡΠΈ Π΄Π»Ρ pod’Π°.
ΠΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π±ΡΠΎΠΊΠ΅ΡΠ°
ΠΠΎΠΎΠ±ΡΠ΅ Π³ΠΎΠ²ΠΎΡΡ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄Π½ΡΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ, ΠΏΠΎΠ²ΡΡΠΈΠ² ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌ Π·Π° ΡΡΡΡ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ ΡΠΈΡΠ»Π° ΠΏΠΎΡΠΎΠΊΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ
Kafka. Π§Π΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ² Π΄ΠΎΡΡΡΠΏΠ½Ρ Π΄Π»Ρ Kafka, ΡΠ΅ΠΌ Π»ΡΡΡΠ΅. Π Π½Π°ΡΠ΅ΠΌ ΡΠ΅ΡΡΠ΅ ΠΌΡ Π½Π°ΡΠ°Π»ΠΈ Ρ Π»ΠΈΠΌΠΈΡΠ° Π² 6 ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ² ΠΈ ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΎ (ΠΈΡΠ΅ΡΠ°ΡΠΈΡΠΌΠΈ) ΠΏΠΎΠ΄Π½ΡΠ»ΠΈ ΠΈΡ
ΡΠΈΡΠ»ΠΎ Π΄ΠΎ 15. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΌΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ»ΠΈ num.network.threads=12
Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ
Π±ΡΠΎΠΊΠ΅ΡΠ°, ΡΡΠΎΠ±Ρ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ², ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΠΈΡ
Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· ΡΠ΅ΡΠΈ ΠΈ ΠΏΠΎΡΡΠ»Π°ΡΡΠΈΡ
ΠΈΡ
. Π‘ΡΠ°Π·Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ², ΡΡΠΎ Π±ΡΠΎΠΊΠ΅ΡΡ-ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΠΈ Π½Π΅ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΡΠ΅ΠΏΠ»ΠΈΠΊΠΈ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π±ΡΡΡΡΠΎ, ΠΏΠΎΠ΄Π½ΡΠ»ΠΈ num.replica.fetchers
Π΄ΠΎ 4, ΡΡΠΎΠ±Ρ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ ΡΠΊΠΎΡΠΎΡΡΡ, Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ Π±ΡΠΎΠΊΠ΅ΡΡ-ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΡΠ΅ΠΏΠ»ΠΈΡΠΈΡΠΎΠ²Π°Π»ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΡ Π»ΠΈΠ΄Π΅ΡΠΎΠ².
ΠΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π°Π³ΡΡΠ·ΠΊΠΈ
Π‘Π»Π΅Π΄ΡΠ΅Ρ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π» Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠ³ΠΎ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° Π½Π°Π³ΡΡΠ·ΠΊΠΈ Π½Π΅ ΠΈΡΡΡΠΊΠ½Π΅Ρ Π΄ΠΎ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΊΠ»Π°ΡΡΠ΅Ρ Kafka (Π±Π΅Π½ΡΠΌΠ°ΡΠΊ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡΡΡ) Π΄ΠΎΡΡΠΈΠ³Π½Π΅Ρ ΡΠ²ΠΎΠ΅ΠΉ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ Π½Π°Π³ΡΡΠ·ΠΊΠΈ. ΠΡΡΠ³ΠΈΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΠΈ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΎΡΠ΅Π½ΠΊΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π°Π³ΡΡΠ·ΠΊΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ Π²ΡΠ±ΡΠ°ΡΡ Π΄Π»Ρ Π½Π΅Π³ΠΎ ΡΠΈΠΏΡ instance’ΠΎΠ² Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΡΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ² ΠΈ ΠΏΠ°ΠΌΡΡΠΈ. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π½Π°Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠ΄ΡΡΠΈΡΠΎΠ²Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ Π½Π°Π³ΡΡΠ·ΠΊΠΈ, ΡΠ΅ΠΌ ΡΠΏΠΎΡΠΎΠ±Π΅Π½ ΠΏΠ΅ΡΠ΅Π²Π°ΡΠΈΡΡ ΠΊΠ»Π°ΡΡΠ΅Ρ Kafka. ΠΠΎΡΠ»Π΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΠΎΠΏΡΡΠΎΠ², ΠΌΡ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΠ»ΠΈΡΡ Π½Π° ΡΡΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ°Ρ c5.4xlarge, Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ Π±ΡΠ» Π·Π°ΠΏΡΡΠ΅Π½ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ.
ΠΠ΅Π½ΡΠΌΠ°ΡΠΊΠΈΠ½Π³
ΠΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ β ΠΈΡΠ΅ΡΠ°ΡΠΈΠ²Π½ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ, Π²ΠΊΠ»ΡΡΠ°ΡΡΠΈΠΉ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΡΠ°Π΄ΠΈΠΈ:
- Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ (ΠΊΠ»Π°ΡΡΠ΅ΡΠ° EKS, ΠΊΠ»Π°ΡΡΠ΅ΡΠ° Kafka, ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π°Π³ΡΡΠ·ΠΊΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ Prometheus ΠΈ Grafana);
- Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π°Π³ΡΡΠ·ΠΊΠΈ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠ³ΠΎ ΠΏΠ΅ΡΠΈΠΎΠ΄Π° Π΄Π»Ρ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠΈ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ ΠΎΡΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΠΉ Π² ΡΠΎΠ±ΠΈΡΠ°Π΅ΠΌΡΡ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ;
- ΠΏΠΎΠ΄ΡΡΡΠΎΠΉΠΊΠ° ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π±ΡΠΎΠΊΠ΅ΡΠ° Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π½Π°Π±Π»ΡΠ΄Π°Π΅ΠΌΡΡ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ;
- ΠΏΠΎΠ²ΡΠΎΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠ° Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡΠ΄Π΅Ρ Π΄ΠΎΡΡΠΈΠ³Π½ΡΡ ΡΡΠ΅Π±ΡΠ΅ΠΌΡΠΉ ΡΡΠΎΠ²Π΅Π½Ρ ΠΏΡΠΎΠΏΡΡΠΊΠ½ΠΎΠΉ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° Kafka. ΠΡΠΈ ΡΡΠΎΠΌ ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌΡΠΌ ΠΈ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠ΅ Π²Π°ΡΠΈΠ°ΡΠΈΠΈ ΠΏΡΠΎΠΏΡΡΠΊΠ½ΠΎΠΉ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ.
Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΎΠΏΠΈΡΠ°Π½Ρ ΡΠ°Π³ΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ»ΠΈΡΡ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ Π±Π΅Π½ΡΠΌΠ°ΡΠΊΠ° ΡΠ΅ΡΡΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ΅ΡΠ°.
ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ
ΠΠ»Ρ Π±ΡΡΡΡΠΎΠ³ΠΎ ΡΠ°Π·Π²ΡΡΡΡΠ²Π°Π½ΠΈΡ Π±Π°Π·ΠΎΠ²ΠΎΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ, Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ Π½Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ:
-
Banzai Cloud Pipeline Π΄Π»Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° EKS ΠΎΡ Amazon cPrometheus (Π΄Π»Ρ ΡΠ±ΠΎΡΠ° ΠΌΠ΅ΡΡΠΈΠΊ Kafka ΠΈ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ) ΠΈGrafana (Π΄Π»Ρ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΡΠΈΡ ΠΌΠ΅ΡΡΠΈΠΊ). ΠΡ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈΡΡ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌΠΈ Π²Pipeline ΡΠ΅ΡΠ²ΠΈΡΠ°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ ΡΠ΅Π΄Π΅ΡΠ°ΡΠΈΠ²Π½ΡΠΉ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³, ΡΠ΅Π½ΡΡΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ±ΠΎΡ Π»ΠΎΠ³ΠΎΠ², ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠ΅ΠΉ, Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅ ΡΠ±ΠΎΠ΅Π², Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄ΡΡΠ³ΠΎΠ΅. -
Sangrenel β ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π»Ρ Π½Π°Π³ΡΡΠ·ΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° Kafka. - ΠΠ°Π½Π΅Π»ΠΈ Grafana Π΄Π»Ρ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΌΠ΅ΡΡΠΈΠΊ Kafka ΠΈ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ:
Kubernetes Kafka ,Node Exporter . - Supertubes CLI Π΄Π»Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎΠΉ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° Kafka Π² Kubernetes. Zookeeper, Kafka operator, Envoy ΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π΄ΡΡΠ³ΠΈΡ
ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Ρ ΠΈ Π΄ΠΎΠ»ΠΆΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΡΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠΎΠ²Π°Π½Ρ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° Π³ΠΎΡΠΎΠ²ΠΎΠ³ΠΎ ΠΊ production ΠΊΠ»Π°ΡΡΠ΅ΡΠ° Kafka Π² Kubernetes.
- ΠΠ»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ supertubes CLI Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΠΌΠΈ, ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΌΠΈ
Π·Π΄Π΅ΡΡ .
- ΠΠ»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ supertubes CLI Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΠΌΠΈ, ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΌΠΈ
ΠΠ»Π°ΡΡΠ΅Ρ EKS
ΠΠΎΠ΄Π³ΠΎΡΠΎΠ²ΡΡΠ΅ ΠΊΠ»Π°ΡΡΠ΅Ρ EKS Ρ Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΡΠΌΠΈ ΡΠ°Π±ΠΎΡΠΈΠΌΠΈ ΡΠ·Π»Π°ΠΌΠΈ c5.4xlarge Π² ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ Π·ΠΎΠ½Π°Ρ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΠΈ Π΄Π»Ρ pod’ΠΎΠ² Ρ Π±ΡΠΎΠΊΠ΅ΡΠ°ΠΌΠΈ Kafka, Π° ΡΠ°ΠΊΠΆΠ΅ Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΡΠ·Π»Ρ Π΄Π»Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° Π½Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ΠΎΠ²ΠΎΠΉ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ.
banzai cluster create -f https://raw.githubusercontent.com/banzaicloud/kafka-operator/master/docs/benchmarks/infrastructure/cluster_eks_202001.json
ΠΠΎΠ³Π΄Π° ΠΊΠ»Π°ΡΡΠ΅Ρ EKS Π·Π°ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, Π²ΠΊΠ»ΡΡΠΈΡΠ΅ Π΅Π³ΠΎ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
Π‘ΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Kafka
Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Kafka (Zookeeper, kafka-operator) Π² EKS Ρ ΠΏΠΎΠΌΠΎΡΡΡ supertubes CLI:
supertubes install -a --no-democluster --kubeconfig <path-to-eks-cluster-kubeconfig-file>
ΠΠ»Π°ΡΡΠ΅Ρ Kafka
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π² EKS ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠΎΠΌΠ° EBS ΡΠΈΠΏΠ° gp2, ΠΏΠΎΡΡΠΎΠΌΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΊΠ»Π°ΡΡ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠΎΠΌΠΎΠ² io1 Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° Kafka:
kubectl create -f - <<EOF
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: fast-ssd
provisioner: kubernetes.io/aws-ebs
parameters:
type: io1
iopsPerGB: "50"
fsType: ext4
volumeBindingMode: WaitForFirstConsumer
EOF
Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ Π΄Π»Ρ Π±ΡΠΎΠΊΠ΅ΡΠΎΠ² ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ min.insync.replicas=3
ΠΈ ΡΠ°Π·Π²Π΅ΡΠ½ΠΈΡΠ΅ pod’Ρ Π±ΡΠΎΠΊΠ΅ΡΠΎΠ² Π½Π° ΡΠ·Π»Π°Ρ
Π² ΡΡΡΡ
ΡΠ°Π·Π½ΡΡ
Π·ΠΎΠ½Π°Ρ
Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΠΈ:
supertubes cluster create -n kafka --kubeconfig <path-to-eks-cluster-kubeconfig-file> -f https://raw.githubusercontent.com/banzaicloud/kafka-operator/master/docs/benchmarks/infrastructure/kafka_202001_3brokers.yaml --wait --timeout 600
Π’ΠΎΠΏΠΈΠΊΠΈ
ΠΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ Π·Π°ΠΏΡΡΠΊΠ°Π»ΠΈ ΡΡΠΈ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° Π½Π°Π³ΡΡΠ·ΠΊΠΈ. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· Π½ΠΈΡ ΠΏΠΈΡΠ΅Ρ Π² ΡΠ²ΠΎΠΉ ΡΠΎΠΏΠΈΠΊ, ΡΠΎ Π΅ΡΡΡ Π²ΡΠ΅Π³ΠΎ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΡΠΈ ΡΠΎΠΏΠΈΠΊΠ°:
supertubes cluster topic create -n kafka --kubeconfig <path-to-eks-cluster-kubeconfig-file> -f -<<EOF
apiVersion: kafka.banzaicloud.io/v1alpha1
kind: KafkaTopic
metadata:
name: perftest1
spec:
name: perftest1
partitions: 12
replicationFactor: 3
retention.ms: '28800000'
cleanup.policy: delete
EOF
supertubes cluster topic create -n kafka --kubeconfig <path-to-eks-cluster-kubeconfig-file> -f -<<EOF
apiVersion: kafka.banzaicloud.io/v1alpha1
kind: KafkaTopic
metadata:
name: perftest2
spec:
name: perftest2
partitions: 12
replicationFactor: 3
retention.ms: '28800000'
cleanup.policy: delete
EOF
supertubes cluster topic create -n kafka --kubeconfig <path-to-eks-cluster-kubeconfig-file> -f -<<EOF
apiVersion: kafka.banzaicloud.io/v1alpha1
kind: KafkaTopic
metadata:
name: perftest3
spec:
name: perftest3
partitions: 12
replicationFactor: 3
retention.ms: '28800000'
cleanup.policy: delete
EOF
ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠΎΠΏΠΈΠΊΠ° ΡΠ°ΠΊΡΠΎΡ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ ΡΠ°Π²Π΅Π½ 3 β ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΌΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π½Π½ΠΎΠΌΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ Π²ΡΡΠΎΠΊΠΎΠ΄ΠΎΡΡΡΠΏΠ½ΡΡ production-ΡΠΈΡΡΠ΅ΠΌ.
ΠΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π°Π³ΡΡΠ·ΠΊΠΈ
ΠΡ Π·Π°ΠΏΡΡΠΊΠ°Π»ΠΈ ΡΡΠΈ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° Π½Π°Π³ΡΡΠ·ΠΊΠΈ (ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΏΠΈΡΠ°Π» Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΡΠΎΠΏΠΈΠΊ). ΠΠ»Ρ pod’ΠΎΠ² Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° Π½Π°Π³ΡΡΠ·ΠΊΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠΎΠΏΠΈΡΠ°ΡΡ node affinity, ΡΡΠΎΠ±Ρ ΠΎΠ½ΠΈ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π»ΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΡΠ΅ Π΄Π»Ρ Π½ΠΈΡ ΡΠ·Π»Ρ:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
labels:
app: loadtest
name: perf-load1
namespace: kafka
spec:
progressDeadlineSeconds: 600
replicas: 1
revisionHistoryLimit: 10
selector:
matchLabels:
app: loadtest
strategy:
rollingUpdate:
maxSurge: 25%
maxUnavailable: 25%
type: RollingUpdate
template:
metadata:
creationTimestamp: null
labels:
app: loadtest
spec:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: nodepool.banzaicloud.io/name
operator: In
values:
- loadgen
containers:
- args:
- -brokers=kafka-0:29092,kafka-1:29092,kafka-2:29092,kafka-3:29092
- -topic=perftest1
- -required-acks=all
- -message-size=512
- -workers=20
image: banzaicloud/perfload:0.1.0-blog
imagePullPolicy: Always
name: sangrenel
resources:
limits:
cpu: 2
memory: 1Gi
requests:
cpu: 2
memory: 1Gi
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
terminationGracePeriodSeconds: 30
ΠΠ΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠΎΠ², Π½Π° ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΎΠ±ΡΠ°ΡΠΈΡΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅:
- ΠΠ΅Π½Π΅ΡΠ°ΡΠΎΡ Π½Π°Π³ΡΡΠ·ΠΊΠΈ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π΄Π»ΠΈΠ½ΠΎΠΉ 512 Π±Π°ΠΉΡ ΠΈ ΠΏΡΠ±Π»ΠΈΠΊΡΠ΅Ρ ΠΈΡ Π² Kafka ΠΏΠ°ΡΡΠΈΡΠΌΠΈ ΠΏΠΎ 500 ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ.
- Π‘ ΠΏΠΎΠΌΠΎΡΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°
-required-acks=all
ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ ΠΏΡΠΈΠ·Π½Π°ΡΡΡΡ ΡΡΠΏΠ΅ΡΠ½ΠΎΠΉ, ΠΊΠΎΠ³Π΄Π° Π²ΡΠ΅ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ΅ΠΏΠ»ΠΈΠΊΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ»ΡΡΠ΅Π½Ρ ΠΈ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½Ρ Π±ΡΠΎΠΊΠ΅ΡΠ°ΠΌΠΈ Kafka. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π² Π±Π΅Π½ΡΠΌΠ°ΡΠΊΠ΅ ΠΌΡ ΠΈΠ·ΠΌΠ΅ΡΡΠ»ΠΈ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΊΠΎΡΠΎΡΡΡ ΡΠ°Π±ΠΎΡΡ Π»ΠΈΠ΄Π΅ΡΠΎΠ², ΠΏΠΎΠ»ΡΡΠ°ΡΡΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, Π½ΠΎ ΠΈ ΠΈΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ, ΡΠ΅ΠΏΠ»ΠΈΡΠΈΡΡΡΡΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ. Π Π·Π°Π΄Π°ΡΡ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΠ° Π½Π΅ Π²Ρ ΠΎΠ΄ΠΈΡ ΠΎΡΠ΅Π½ΠΊΠ° ΡΠΊΠΎΡΠΎΡΡΠΈ ΡΡΠ΅Π½ΠΈΡ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΌΠΈ (consumers) Π½Π΅Π΄Π°Π²Π½ΠΎ ΠΏΡΠΈΠ½ΡΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΊΠ° ΠΎΡΡΠ°ΡΡΡΡ Π² ΡΡΡΠ°Π½ΠΈΡΠ½ΠΎΠΌ ΠΊΡΡΠ΅ ΠΠ‘, ΠΈ Π΅Ρ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΡΠΎ ΡΠΊΠΎΡΠΎΡΡΡΡ ΡΡΠ΅Π½ΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, Ρ ΡΠ°Π½ΡΡΠΈΡ ΡΡ Π½Π° Π΄ΠΈΡΠΊΠ΅. - ΠΠ΅Π½Π΅ΡΠ°ΡΠΎΡ Π½Π°Π³ΡΡΠ·ΠΊΠΈ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ 20 worker’ΠΎΠ² (
-workers=20
). ΠΠ°ΠΆΠ΄ΡΠΉ worker ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ 5 producer’ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ worker’Π° ΠΊ ΠΊΠ»Π°ΡΡΠ΅ΡΡ Kafka. Π ΠΈΡΠΎΠ³Π΅ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ Π½Π°ΡΡΠΈΡΡΠ²Π°Π΅Ρ 100 producer’ΠΎΠ², ΠΈ Π²ΡΠ΅ ΠΎΠ½ΠΈ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π² ΠΊΠ»Π°ΡΡΠ΅Ρ Kafka.
ΠΠ°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ Π·Π° ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ ΠΊΠ»Π°ΡΡΠ΅ΡΠ°
ΠΠΎ Π²ΡΠ΅ΠΌΡ Π½Π°Π³ΡΡΠ·ΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° Kafka ΠΌΡ ΡΠ°ΠΊΠΆΠ΅ ΡΠ»Π΅Π΄ΠΈΠ»ΠΈ Π·Π° Π΅Π³ΠΎ Π·Π΄ΠΎΡΠΎΠ²ΡΠ΅ΠΌ, ΡΡΠΎΠ±Ρ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ Π² ΠΎΡΡΡΡΡΡΠ²ΠΈΠΈ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊΠΎΠ² pod’ΠΎΠ², ΡΠ°ΡΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠ΅ΠΏΠ»ΠΈΠΊ ΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΡΠΎΠΏΡΡΠΊΠ½ΠΎΠΉ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΌΠΈ ΡΠ»ΡΠΊΡΡΠ°ΡΠΈΡΠΌΠΈ:
- ΠΠ΅Π½Π΅ΡΠ°ΡΠΎΡ Π½Π°Π³ΡΡΠ·ΠΊΠΈ ΠΏΠΈΡΠ΅Ρ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΡ ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π΅ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½ΡΡ
ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΈ ΡΡΠΎΠ²Π½Π΅ ΠΎΡΠΈΠ±ΠΎΠΊ. ΠΡΠΎΡΠ΅Π½Ρ ΠΎΡΠΈΠ±ΠΎΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΡΡΠ°Π²Π°ΡΡΡΡ Π² Π·Π½Π°ΡΠ΅Π½ΠΈΠΈ
0,00%
. -
Cruise Control , ΡΠ°Π·Π²ΡΡΠ½ΡΡΡΠΉ kafka-operator’ΠΎΠΌ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΠ°Π½Π΅Π»Ρ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π°, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΌΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°Π±Π»ΡΠ΄Π°ΡΡ Π·Π° ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ ΠΊΠ»Π°ΡΡΠ΅ΡΠ°. ΠΠ»Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° ΡΡΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅:supertubes cluster cruisecontrol show -n kafka --kubeconfig <path-to-eks-cluster-kubeconfig-file>
- Π£ΡΠΎΠ²Π΅Π½Ρ ISR (ΡΠΈΡΠ»ΠΎ ΡΠ΅ΠΏΠ»ΠΈΠΊ Β«in-syncΒ») shrink ΠΈ expansion ΡΠ°Π²Π΅Π½ 0.
Π Π΅Π·ΡΠ»ΡΡΠ°ΡΡ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΠΉ
3 Π±ΡΠΎΠΊΠ΅ΡΠ°, ΡΠ°Π·ΠΌΠ΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ β 512 Π±Π°ΠΉΡ
Π‘ partition’Π°ΠΌΠΈ, ΡΠ°Π²Π½ΠΎΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠΌΠΈ ΠΏΠΎ ΡΡΡΠΌ Π±ΡΠΎΠΊΠ΅ΡΠ°ΠΌ, Π½Π°ΠΌ ΡΠ΄Π°Π»ΠΎΡΡ Π΄ΠΎΡΡΠΈΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ~500 ΠΠ±/Ρ (ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ 990 ΡΡΡ. ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π² ΡΠ΅ΠΊΡΠ½Π΄Ρ):
ΠΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½ΠΎΠΉ JVM Π½Π΅ ΠΏΡΠ΅Π²ΡΡΠΈΠ»ΠΎ 2 ΠΠ±:
ΠΡΠΎΠΏΡΡΠΊΠ½Π°Ρ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ Π΄ΠΈΡΠΊΠ° Π΄ΠΎΡΡΠΈΠ³Π»Π° ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΡΠΎΠΏΡΡΠΊΠ½ΠΎΠΉ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ I/O ΡΠ·Π»Π° Π½Π° Π²ΡΠ΅Ρ
ΡΡΡΡ
ΠΈΠ½ΡΡΠ°Π½ΡΠ°Ρ
, Π½Π° ΠΊΠΎΡΠΎΡΡΡ
ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ Π±ΡΠΎΠΊΠ΅ΡΡ:
ΠΠ· Π΄Π°Π½Π½ΡΡ
ΠΎΠ± ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΠ°ΠΌΡΡΠΈ ΡΠ·Π»Π°ΠΌΠΈ ΡΠ»Π΅Π΄ΡΠ΅Ρ, ΡΡΠΎ ΡΠΈΡΡΠ΅ΠΌΠ½Π°Ρ Π±ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΡ ΠΈ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π·Π°Π½ΡΠ»ΠΈ ~10-15 ΠΠ±:
3 Π±ΡΠΎΠΊΠ΅ΡΠ°, ΡΠ°Π·ΠΌΠ΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ β 100 Π±Π°ΠΉΡ
Π‘ ΡΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΏΡΠΎΠΏΡΡΠΊΠ½Π°Ρ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ ΠΏΠ°Π΄Π°Π΅Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ Π½Π° 15-20%: ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ Π²ΡΠ΅ΠΌΡ, Π·Π°ΡΡΠ°ΡΠΈΠ²Π°Π΅ΠΌΠΎΠ΅ Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π½Π°Π³ΡΡΠ·ΠΊΠ° Π½Π° ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ Π²ΡΡΠΎΡΠ»Π° ΠΏΠΎΡΡΠΈ Π²Π΄Π²ΠΎΠ΅.
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π½Π° ΡΠ·Π»Π°Ρ
Π±ΡΠΎΠΊΠ΅ΡΠΎΠ² ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ ΠΈΠΌΠ΅ΡΡΡΡ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΡΠ΄ΡΠ°, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ²ΡΡΠΈΡΡ Π·Π° ΡΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Kafka. ΠΡΠΎ Π½Π΅ΠΏΡΠΎΡΡΠ°Ρ Π·Π°Π΄Π°ΡΠ°, ΠΏΠΎΡΡΠΎΠΌΡ Π΄Π»Ρ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΏΡΡΠΊΠ½ΠΎΠΉ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ Π»ΡΡΡΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ Π±ΠΎΠ»ΡΡΠ΅Π³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ°.
4 Π±ΡΠΎΠΊΠ΅ΡΠ°, ΡΠ°Π·ΠΌΠ΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ β 512 Π±Π°ΠΉΡ
ΠΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° Kafka, ΠΏΡΠΎΡΡΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡ Π½ΠΎΠ²ΡΠ΅ Π±ΡΠΎΠΊΠ΅ΡΡ ΠΈ ΡΠΎΡ ΡΠ°Π½ΡΡ Π±Π°Π»Π°Π½Ρ partition’ΠΎΠ² (ΡΡΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΡΠ°Π²Π½ΠΎΠΌΠ΅ΡΠ½ΠΎΠ΅ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π°Π³ΡΡΠ·ΠΊΠΈ ΠΌΠ΅ΠΆΠ΄Ρ Π±ΡΠΎΠΊΠ΅ΡΠ°ΠΌΠΈ). Π Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΠΎΡΠ»Π΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π±ΡΠΎΠΊΠ΅ΡΠ° ΠΏΡΠΎΠΏΡΡΠΊΠ½Π°Ρ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° Π²ΠΎΠ·ΡΠΎΡΠ»Π° Π΄ΠΎ ~580 ΠΠ±/Ρ (~1,1 ΠΌΠ»Π½ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π² ΡΠ΅ΠΊΡΠ½Π΄Ρ). Π ΠΎΡΡ ΠΎΠΊΠ°Π·Π°Π»ΡΡ ΠΌΠ΅Π½ΡΡΠΈΠΌ, ΡΠ΅ΠΌ ΠΎΠΆΠΈΠ΄Π°Π»ΠΎΡΡ: ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ ΡΡΠΎ ΠΎΠ±ΡΡΡΠ½ΡΠ΅ΡΡΡ Π΄ΠΈΡΠ±Π°Π»Π°Π½ΡΠΎΠΌ partition’ΠΎΠ² (Π½Π΅ Π²ΡΠ΅ Π±ΡΠΎΠΊΠ΅ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π° ΠΏΠΈΠΊΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ).
ΠΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ ΠΌΠ°ΡΠΈΠ½ΠΎΠΉ JVM ΠΎΡΡΠ°Π»ΠΎΡΡ Π½ΠΈΠΆΠ΅ 2 ΠΠ±:
ΠΠ° ΡΠ°Π±ΠΎΡΠ΅ Π±ΡΠΎΠΊΠ΅ΡΠΎΠ² Ρ Π½Π°ΠΊΠΎΠΏΠΈΡΠ΅Π»ΡΠΌΠΈ ΡΠΊΠ°Π·Π°Π»ΡΡ Π΄ΠΈΡΠ±Π°Π»Π°Π½Ρ partition’ΠΎΠ²:
ΠΡΠ²ΠΎΠ΄Ρ
ΠΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΡΠΉ Π²ΡΡΠ΅ ΠΈΡΠ΅ΡΠ°ΡΠΈΠ²Π½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ Π΄Π»Ρ ΠΎΡ Π²Π°ΡΠ° Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΡ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π², Π²ΠΊΠ»ΡΡΠ°ΡΡΠΈΡ ΡΠΎΡΠ½ΠΈ consumer’ΠΎΠ², repartitioning, Π½Π°ΠΊΠ°ΡΡΠ²Π°Π΅ΠΌΡΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ, ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊΠΈ pod’ΠΎΠ² ΠΈ Ρ.Π΄. ΠΡΡ ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°ΠΌ ΠΎΡΠ΅Π½ΠΈΡΡ ΠΏΡΠ΅Π΄Π΅Π»Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° Kafka Π² ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΡΠ»ΠΎΠ²ΠΈΡΡ , Π²ΡΡΠ²ΠΈΡΡ ΡΠ·ΠΊΠΈΠ΅ ΠΌΠ΅ΡΡΠ° Π² Π΅Π³ΠΎ ΡΠ°Π±ΠΎΡΠ΅ ΠΈ Π½Π°ΠΉΡΠΈ ΡΠΏΠΎΡΠΎΠ±Ρ Π±ΠΎΡΡΠ±Ρ Ρ Π½ΠΈΠΌΠΈ.
ΠΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ Supertubes Π΄Π»Ρ Π±ΡΡΡΡΠΎΠ³ΠΎ ΠΈ Π»ΡΠ³ΠΊΠΎΠ³ΠΎ ΡΠ°Π·Π²ΡΡΡΡΠ²Π°Π½ΠΈΡ ΠΊΠ»Π°ΡΡΠ΅ΡΠ°, Π΅Π³ΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ/ΡΠ΄Π°Π»Π΅Π½ΠΈΡ Π±ΡΠΎΠΊΠ΅ΡΠΎΠ² ΠΈ ΡΠΎΠΏΠΈΠΊΠΎΠ², ΡΠ΅Π°Π³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π° ΠΎΠΏΠΎΠ²Π΅ΡΠ΅Π½ΠΈΡ ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Kafka Π² Kubernetes Π² ΡΠ΅Π»ΠΎΠΌ. ΠΠ°ΡΠ° ΡΠ΅Π»Ρ β ΠΏΠΎΠΌΠΎΡΡ ΡΠΊΠΎΠ½ΡΠ΅Π½ΡΡΠΈΡΠΎΠ²Π°ΡΡΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ Π·Π°Π΄Π°ΡΠ΅ (Β«Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡΒ» ΠΈ Β«ΠΏΠΎΡΡΠ΅Π±Π»ΡΡΡΒ» ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Kafka), Π° Π²ΡΡ ΡΡΠΆΡΠ»ΡΡ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ Supertubes ΠΈ Kafka operator’Ρ.
ΠΡΠ»ΠΈ Π²Π°ΠΌ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Ρ ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΈ Open Source-ΠΏΡΠΎΠ΅ΠΊΡΡ Banzai Cloud, ΠΏΠΎΠ΄ΠΏΠΈΡΡΠ²Π°ΠΉΡΠ΅ΡΡ Π½Π° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ Π²
P.S. ΠΎΡ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΡΠΈΠΊΠ°
Π§ΠΈΡΠ°ΠΉΡΠ΅ ΡΠ°ΠΊΠΆΠ΅ Π² Π½Π°ΡΠ΅ΠΌ Π±Π»ΠΎΠ³Π΅:
- Β«
ΠΠ΄Π½Π° ΠΈΡΡΠΎΡΠΈΡ Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ Redis Π² K8s ΠΈ ΠΌΠΈΠ½ΠΈ-ΠΎΠ±Π·ΠΎΡ ΡΡΠΈΠ»ΠΈΡ Π΄Π»Ρ Π°Π½Π°Π»ΠΈΠ·Π° Π΄Π°Π½Π½ΡΡ ΡΡΠΎΠΉ ΠΠ Β»; - Β«
ΠΠ΅ΡΠΏΡΠΎΡΡΠΎΠΉΠ½Π°Ρ ΠΌΠΈΠ³ΡΠ°ΡΠΈΡ RabbitMQ Π² Kubernetes Β»; - Β«
zetcd ΠΎΡ CoreOS: ΠΠ°ΠΌΠ΅Π½ΡΡ ZooKeeper Π½Π°β¦ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ etcd Β».
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com