apache ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ Π½ΠΎΠ²ΠΈΡΠΊΠΎΠ²
ΠΠ°ΡΠ°Π»ΠΎ ΡΠ°Π±ΠΎΡΡ
ΠΡΠ»ΠΈ Π²Ρ Π°Π±ΡΠΎΠ»ΡΡΠ½ΡΠΉ Π½ΠΎΠ²ΠΈΡΠΎΠΊ Π² ΡΠ°Π±ΠΎΡΠ΅ Ρ HTTP-ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ Apache ΠΈΠ»ΠΈ Π² Π·Π°ΠΏΡΡΠΊΠ΅ Π²Π΅Π±-ΡΠ°ΠΉΡΠΎΠ² Π²ΠΎΠΎΠ±ΡΠ΅, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π΅ Π·Π½Π°ΡΡ Ρ ΡΠ΅Π³ΠΎ Π½Π°ΡΠ°ΡΡ ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ Π²ΠΎΠΏΡΠΎΡΡ Π·Π°Π΄Π°Π²Π°ΡΡ. ΠΡΠΎΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ Π²Π°Ρ Ρ ΠΎΡΠ½ΠΎΠ²Π°ΠΌΠΈ.
Π‘ΠΌ. ΡΠ°ΠΊΠΆΠ΅
ΠΠ»ΠΈΠ΅Π½ΡΡ, ΡΠ΅ΡΠ²Π΅ΡΡ ΠΈ URL-Π°Π΄ΡΠ΅ΡΠ°
ΠΠ»ΠΈΠ΅Π½Ρ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Π΅Π±-Π±ΡΠ°ΡΠ·Π΅Ρ) ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΠΊ ΡΠ΅ΡΠ²Π΅ΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Π°ΡΠ΅ΠΌΡ HTTP-ΡΠ΅ΡΠ²Π΅ΡΡ Apache), ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠΉ ΠΏΡΠΎΡΠΎΠΊΠΎΠ», ΠΈ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ Π·Π°ΠΏΡΠΎΡ Π½Π° ΡΠ΅ΡΡΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ URL-ΠΏΡΡΡ.
URL-ΠΏΡΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°ΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π²Π΅ΡΠ΅ΠΉ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ°ΠΉΠ» (ΠΊΠ°ΠΊ getting-started.html ), ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ (ΠΊΠ°ΠΊ server-status) ΠΈΠ»ΠΈ ΡΠ°ΠΉΠ» ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ (ΠΊΠ°ΠΊ index.php ). ΠΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΡΠΎ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅ΠΉ Π½ΠΈΠΆΠ΅, Π² ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΠΎΠ½ΡΠ΅Π½Ρ Π²Π΅Π±-ΡΠ°ΠΉΡΠ°.
Π‘Π΅ΡΠ²Π΅Ρ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΠΎΡΠ²Π΅Ρ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΠΊΠΎΠ΄ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΈ, ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ, ΡΠ΅Π»ΠΎ ΠΎΡΠ²Π΅ΡΠ°. ΠΠΎΠ΄ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, Π±ΡΠ» Π»ΠΈ Π·Π°ΠΏΡΠΎΡ ΡΡΠΏΠ΅ΡΠ½ΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½, Π° Π΅ΡΠ»ΠΈ Π½Π΅Ρ, ΡΠΎ ΠΊΠ°ΠΊΠ°Ρ ΠΎΡΠΈΠ±ΠΊΠ° ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»Π°. ΠΡΠΎ Π³ΠΎΠ²ΠΎΡΠΈΡ ΠΊΠ»ΠΈΠ΅Π½ΡΡ, ΡΡΠΎ ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π΄Π΅Π»Π°ΡΡ Ρ ΠΎΡΠ²Π΅ΡΠΎΠΌ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ ΠΊΠΎΠ΄Π°Ρ ΠΎΡΠ²Π΅ΡΠ° Π½Π° ΠΠΈΠΊΠΈ HTTP-ΡΠ΅ΡΠ²Π΅ΡΠ° Apache.
ΠΠ΅ΡΠ°Π»ΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΈ ΡΡΠ»ΠΎΠ²ΠΈΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ ΠΎΡΠΈΠ±ΠΊΠΈ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡΡΡ Π² ΡΠ°ΠΉΠ»Ρ ΠΆΡΡΠ½Π°Π»ΠΎΠ². ΠΡΠΎ ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ Π½ΠΈΠΆΠ΅, Π² ΡΠ°Π·Π΄Π΅Π»Π΅ Π€Π°ΠΉΠ»Ρ ΠΆΡΡΠ½Π°Π»ΠΎΠ² ΠΈ ΡΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ Π½Π΅ΠΏΠΎΠ»Π°Π΄ΠΎΠΊ.
ΠΠΌΠ΅Π½Π° Ρ ΠΎΡΡΠΎΠ² ΠΈ DNS
ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡΡΡΡ Ρ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ, ΠΊΠ»ΠΈΠ΅Π½Ρ ΡΠ½Π°ΡΠ°Π»Π° Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ ΠΈΠΌΡ ΡΠ΅ΡΠ²Π΅ΡΠ° Π² IP-Π°Π΄ΡΠ΅Ρ β ΠΌΠ΅ΡΡΠΎ Π² ΠΠ½ΡΠ΅ΡΠ½Π΅ΡΠ΅, Π³Π΄Π΅ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΡΠ΅ΡΠ²Π΅Ρ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠΎΠ±Ρ Π²Π°Ρ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅Ρ Π±ΡΠ» Π΄ΠΎΡΡΡΠΏΠ΅Π½, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ, ΡΡΠΎΠ±Ρ ΠΈΠΌΡ ΡΠ΅ΡΠ²Π΅ΡΠ° Π±ΡΠ»ΠΎ Π² DNS.
ΠΡΠ»ΠΈ Π²Ρ Π½Π΅ Π·Π½Π°Π΅ΡΠ΅ ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ, Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΊ ΡΠ΅ΡΠ΅Π²ΠΎΠΌΡ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΡ ΠΈΠ»ΠΈ ΠΏΠΎΡΡΠ°Π²ΡΠΈΠΊΡ ΡΡΠ»ΡΠ³ ΠΠ½ΡΠ΅ΡΠ½Π΅ΡΠ° (ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΡ). ΠΠ½ΠΈ ΠΌΠΎΠ³ΡΡ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ Π΄Π»Ρ Π²Π°Ρ.
ΠΠ΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Ρ ΠΎΡΡΠΎΠ² ΠΌΠΎΠ³ΡΡ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½Π° ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ IP-Π°Π΄ΡΠ΅Ρ, Π° ΠΎΠ΄ΠΈΠ½ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ΅ΡΠ²Π΅Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ IP-Π°Π΄ΡΠ΅ΡΠ°. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ: Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠ΅ Ρ ΠΎΡΡΡ.
ΠΡΠ»ΠΈ Π²Ρ ΡΠ΅ΡΡΠΈΡΡΠ΅ΡΠ΅ ΡΠ΅ΡΠ²Π΅Ρ, Π½Π΅ ΠΈΠΌΠ΅ΡΡΠΈΠΉ Π²ΡΡ ΠΎΠ΄Π° Π² ΠΠ½ΡΠ΅ΡΠ½Π΅Ρ, ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ ΠΈΠΌΠ΅Π½Π° Ρ ΠΎΡΡΠΎΠ² Π² ΡΠ°ΠΉΠ» hosts Π΄Π»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎ Π±Ρ ΠΈΠΌΡ ΡΠ°Π·ΡΠ΅ΡΠ°Π»ΠΎΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π·Π°ΠΏΠΈΡΡ Π΄Π»Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΊ www.example.com Π½Π° Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ, Π΄Π»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΡΠ° Π·Π°ΠΏΠΈΡΡ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ°ΠΊ:
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ·Π½Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΎ ΡΠ°ΠΉΠ»Π΅ hosts ΠΈ Π±ΠΎΠ»ΡΡΠ΅ ΠΎ DNS.
Π€Π°ΠΉΠ»Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ
Π‘Π΅ΡΠ²Π΅Ρ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΡΡΡ ΠΏΡΡΡΠΌ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π² ΡΡΠΈΡ ΡΠ°ΠΉΠ»Π°Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ. ΠΠΈΡΠ΅ΠΊΡΠΈΠ²Π° β ΡΡΠΎ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ Ρ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ, ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡΠΈΠΌΠΈ Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
ΠΠΎΠ½ΡΠ΅Π½Ρ Π²Π΅Π±-ΡΠ°ΠΉΡΠ°
Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠ°ΠΉΡΠ° ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠΎΡΠΌΡ, Π½ΠΎ Π² ΡΠΈΡΠΎΠΊΠΎΠΌ ΡΠΌΡΡΠ»Π΅ ΡΠ°Π·Π΄Π΅Π»ΡΠ΅ΡΡΡ Π½Π° ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΊΠΎΠ½ΡΠ΅Π½Ρ.
Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΊΠΎΠ½ΡΠ΅Π½Ρ β ΡΡΠΎ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, HTML-ΡΠ°ΠΉΠ»Ρ, ΡΠ°ΠΉΠ»Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ, CSS-ΡΠ°ΠΉΠ»Ρ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ°ΠΉΠ»Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΎΡΡΠΎ Π»Π΅ΠΆΠ°Ρ Π½Π° Π΄ΠΈΡΠΊΠ΅. ΠΠΈΡΠ΅ΠΊΡΠΈΠ²Π° DocumentRoot ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π³Π΄Π΅ Π² Π²Π°ΡΠ΅ΠΉ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅, Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ°Π·ΠΌΠ΅ΡΡΠΈΡΡ ΡΡΠΈ ΡΠ°ΠΉΠ»Ρ. ΠΡΠ° Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π° ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎ ΠΈΠ»ΠΈ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Ρ ΠΎΡΡΠ°. ΠΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ Π² ΡΠ²ΠΎΡΠΌ ΡΠ°ΠΉΠ»Π΅(Π°Ρ ) ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ, ΡΡΠΎΠ±Ρ ΡΠ·Π½Π°ΡΡ, ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΡΠ° Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π½Π° Π²Π°ΡΠ΅ΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅.
ΠΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΊΠΎΠ½ΡΠ΅Π½Ρ β ΡΡΠΎ Π²ΡΡ ΡΡΠΎ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΡΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π·Π°ΠΏΡΠΎΡΠ° ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΡΡ ΠΎΡ Π·Π°ΠΏΡΠΎΡΠ° ΠΊ Π·Π°ΠΏΡΠΎΡΡ. Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ°. Π Π°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π΄ΠΎΡΡΡΠΏΠ½Ρ Π΄Π»Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ. ΠΠΎΠ³ΡΡ Π±ΡΡΡ Π½Π°ΠΏΠΈΡΠ°Π½Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ CGI ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π΄Π»Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ° Π½Π° ΡΠ°ΠΉΡΠ΅.
ΠΠ»Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΊΠΎΠ΄Π° Ρ ΡΠ°Π·Π½ΠΎΠΎΠ±ΡΠ°Π·Π½ΡΠΌ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΠΎΠΌ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ mod_php. ΠΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΡΠΎΡΠΎΠ½Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΡ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠ·ΡΠΊΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΈ ΡΡΠΈΠ»ΠΈΡ Π΄ΠΎΡΡΡΠΏΠ½Ρ Π΄Π»Ρ ΡΠΊΠ°ΡΠΈΠ²Π°Π½ΠΈΡ ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π½Π° Π²Π°Ρ HTTP-ΡΠ΅ΡΠ²Π΅Ρ Apache. ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΡΠΎΡΠΎΠ½Π½ΠΈΡ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ² Π²ΡΡ ΠΎΠ΄ΠΈΡ Π·Π° ΡΠ°ΠΌΠΊΠΈ ΡΡΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ. ΠΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ Π½Π°ΠΉΡΠΈ ΠΈΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΈΠ»ΠΈ ΡΠΎΡΡΠΌΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ, Π³Π΄Π΅ Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΎΡΠ²Π΅ΡΡ Π½Π° ΡΠ²ΠΎΠΈ Π²ΠΎΠΏΡΠΎΡΡ.
Π€Π°ΠΉΠ»Ρ ΠΆΡΡΠ½Π°Π»ΠΎΠ² ΠΈ ΡΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ Π½Π΅ΠΏΠΎΠ»Π°Π΄ΠΎΠΊ
ΠΠ»Ρ Π²Π°Ρ, ΠΊΠ°ΠΊ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠ° HTTP-ΡΠ΅ΡΠ²Π΅ΡΠ° Apache, ΡΠ°ΠΌΡΠ΅ ΡΠ΅Π½Π½ΡΠ΅ Π°ΠΊΡΠΈΠ²Ρ β ΡΡΠΎ ΡΠ°ΠΉΠ»Ρ ΠΆΡΡΠ½Π°Π»ΠΎΠ² (Π»ΠΎΠ³-ΡΠ°ΠΉΠ»Ρ), Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, ΠΆΡΡΠ½Π°Π» ΠΎΡΠΈΠ±ΠΎΠΊ. ΠΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π»ΡΠ±ΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π±Π΅Π· ΠΆΡΡΠ½Π°Π»Π° ΠΎΡΠΈΠ±ΠΎΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠ°Π²Π½ΠΈΡΡ Ρ Π²ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌ Π°Π²ΡΠΎΠΌΠΎΠ±ΠΈΠ»Ρ Ρ Π·Π°ΠΊΡΡΡΡΠΌΠΈ Π³Π»Π°Π·Π°ΠΌΠΈ.
ΠΠΎΠ»ΡΡΠ΅ ΠΎ Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ·Π½Π°ΡΡ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΎ ΠΆΡΡΠ½Π°Π»Π°Ρ .
Π§ΡΠΎ Π΄Π°Π»ΡΡΠ΅?
Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° Π²Ρ Π·Π½Π°ΠΊΠΎΠΌΡ Ρ ΠΎΡΠ½ΠΎΠ²Π°ΠΌΠΈ, ΠΏΠΎΡΠ° Π΄Π²ΠΈΠ³Π°ΡΡΡΡ Π΄Π°Π»ΡΡΠ΅.
ΠΡΠΎΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ Π±Π°Π·ΠΎΠ²ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ. ΠΡ Π½Π°Π΄Π΅Π΅ΠΌΡΡ, ΡΡΠΎ ΠΎΠ½Π° ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π²Π°ΠΌ Π½Π°ΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΡ, Π½ΠΎ Π΅ΡΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π΄ΡΡΠ³ΠΈΡ Π²Π΅ΡΠ΅ΠΉ, ΠΎ ΠΊΠΎΡΠΎΡΡΡ Π²Π°ΠΌ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½ΡΠΆΠ½ΠΎ ΡΠ·Π½Π°ΡΡ.
Comments
Copyright 2021 The Apache Software Foundation.
Licensed under the Apache License, Version 2.0.
Apache Kafka Π΄Π»Ρ ΡΠ°ΠΉΠ½ΠΈΠΊΠΎΠ²
ΠΠ°Π½Π½Π°Ρ ΡΡΠ°ΡΡΡ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ ΡΠ΅ΠΌ, ΠΊΡΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π½Π°ΡΠ°Π» Π·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ Ρ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΎΠΉ ΠΈ Ρ ΡΠ΅ΡΠ²ΠΈΡΠΎΠΌ Apache Kafka. ΠΠ°ΡΠ΅ΡΠΈΠ°Π» Π½Π΅ ΠΏΡΠ΅ΡΠ΅Π½Π΄ΡΠ΅Ρ Π½Π° ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΠΉ ΡΡΡΠΎΡΠΈΠ°Π», Π½ΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡΡΠΎ Π½Π°ΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΡ Ρ Π΄Π°Π½Π½ΠΎΠΉ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠ΅ΠΉ. Π― ΡΠ°ΡΡΠΊΠ°ΠΆΡ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΈ Π½Π°ΡΡΡΠΎΠΈΡΡ Kafka Π½Π° Windows 10. Π’Π°ΠΊΠΆΠ΅ ΠΌΡ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΏΡΠΎΠ΅ΠΊΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Intellij IDEA ΠΈ Spring Boot.
ΠΠ°ΡΠ΅ΠΌ?
Π’ΡΡΠ΄Π½ΠΎΡΡΠΈ Π² ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠΈ ΡΠ΅Ρ ΠΈΠ»ΠΈ ΠΈΠ½ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² ΡΠ°ΡΡΠΎ ΡΠ²ΡΠ·Π°Π½Ρ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΡΡΠ°Π»ΠΊΠΈΠ²Π°Π»ΡΡ Ρ ΡΠΈΡΡΠ°ΡΠΈΡΠΌΠΈ, Π² ΠΊΠΎΡΠΎΡΡΡ ΡΡΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡΡ. Π‘ Kafka Π²ΡΡ ΠΎΠ±ΡΡΠΎΠΈΡ ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊΠΆΠ΅. ΠΠΏΠΈΡΠ΅ΠΌ ΡΠΈΡΡΠ°ΡΠΈΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π΄Π°Π½Π½Π°Ρ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ. ΠΡΠ»ΠΈ Ρ Π²Π°Ρ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡΠ½Π°Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΠΎ ΡΠ°Π·ΡΠΌΠ΅Π΅ΡΡΡ, Π½ΠΈΠΊΠ°ΠΊΠ°Ρ Kafka Π²Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ½Π°. ΠΡΡ ΠΌΠ΅Π½ΡΠ΅ΡΡΡ Ρ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΎΠΌ Π½Π° ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΡ. ΠΠΎ ΡΡΡΠΈ, ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡ β ΡΡΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠ°Ρ ΡΡ ΠΈΠ»ΠΈ ΠΈΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΠΈ ΠΊΠΎΡΠΎΡΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°ΠΏΡΡΠ΅Π½Π° Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ Π΄ΡΡΠ³ΠΈΡ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠΎΠ². ΠΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠ°Π²Π½ΠΈΡΡ Ρ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ°ΠΌΠΈ Π² ΠΎΡΠΈΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΈΠ΄ΡΡ Π·Π° ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΌΠΈ ΡΡΠΎΠ»Π°ΠΌΠΈ ΠΈ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΠΊΠΎΠ»Π»Π΅Π³ ΡΠ΅ΡΠ°ΡΡ ΡΠ²ΠΎΡ Π·Π°Π΄Π°ΡΡ. Π Π°Π±ΠΎΡΠ° ΡΠ°ΠΊΠΎΠ³ΠΎ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠ²Π° Π½Π΅ΠΌΡΡΠ»ΠΈΠΌΠ° Π±Π΅Π· ΡΠ΅Π½ΡΡΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠΈΠΈ. Π‘ΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°ΡΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°ΠΌΠΈ ΡΠ²ΠΎΠ΅ΠΉ ΡΠ°Π±ΠΎΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΠ±ΠΎΠΉ. ΠΠΌΠ΅Π½Π½ΠΎ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΈ ΠΏΡΠΈΠ·Π²Π°Π½Π° ΡΠ΅ΡΠΈΡΡ Apache Kafka Π΄Π»Ρ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠΎΠ².
Apache Kafka ΡΠ²Π»ΡΠ΅ΡΡΡ Π±ΡΠΎΠΊΠ΅ΡΠΎΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ. Π‘ Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΡ ΠΌΠΎΠ³ΡΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Π΄ΡΡΠ³ Ρ Π΄ΡΡΠ³ΠΎΠΌ, ΠΏΠΎΡΡΠ»Π°Ρ ΠΈ ΠΏΠΎΠ»ΡΡΠ°Ρ Π²Π°ΠΆΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ. ΠΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ Π²ΠΎΠΏΡΠΎΡ, ΠΏΠΎΡΠ΅ΠΌΡ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΡΠΈΡ ΡΠ΅Π»Π΅ΠΉ ΠΎΠ±ΡΡΠ½ΡΠΉ POST β reqest, Π² ΡΠ΅Π»Π΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π½ΡΠΆΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΈ ΡΠ°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΎΡΠ²Π΅Ρ? Π£ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π° Π΅ΡΡΡ ΡΡΠ΄ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΡΡ ΠΌΠΈΠ½ΡΡΠΎΠ². ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΎΠ΄ΡΡΠ΅Ρ (ΡΠ΅ΡΠ²ΠΈΡ, ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡΠΈΠΉ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅) ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅ ΡΠΎΠ»ΡΠΊΠΎ Π² Π²ΠΈΠ΄Π΅ responseβΠ° Π² ΠΎΡΠ²Π΅Ρ Π½Π° Π·Π°ΠΏΡΠΎΡ ΠΊΠΎΠ½ΡΡΡΠΌΠ΅ΡΠ° (ΡΠ΅ΡΠ²ΠΈΡΠ°, ΠΏΠΎΠ»ΡΡΠ°ΡΡΠ΅Π³ΠΎ Π΄Π°Π½Π½ΡΠ΅). ΠΠΎΠΏΡΡΡΠΈΠΌ, ΠΊΠΎΠ½ΡΡΡΠΌΠ΅Ρ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ POST β Π·Π°ΠΏΡΠΎΡ, ΠΈ ΠΏΡΠΎΠ΄ΡΡΠ΅Ρ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π½Π° Π½Π΅Π³ΠΎ. Π ΡΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠΎΠ½ΡΡΡΠΌΠ΅Ρ ΠΏΠΎ ΠΊΠ°ΠΊΠΈΠΌ-ΡΠΎ ΠΏΡΠΈΡΠΈΠ½Π°ΠΌ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ½ΡΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΉ ΠΎΡΠ²Π΅Ρ. Π§ΡΠΎ Π±ΡΠ΄Π΅Ρ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ? ΠΠ½ΠΈ Π±ΡΠ΄ΡΡ ΠΏΠΎΡΠ΅ΡΡΠ½Ρ. ΠΠΎΠ½ΡΡΡΠΌΠ΅ΡΡ ΡΠ½ΠΎΠ²Π° ΠΏΡΠΈΠ΄ΡΡΡΡ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ Π·Π°ΠΏΡΠΎΡ ΠΈ Π½Π°Π΄Π΅ΡΡΡΡΡ, ΡΡΠΎ Π΄Π°Π½Π½ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ½ Ρ ΠΎΡΠ΅Π» ΠΏΠΎΠ»ΡΡΠΈΡΡ, Π·Π° ΡΡΠΎ Π²ΡΠ΅ΠΌΡ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈΡΡ, ΠΈ ΠΏΡΠΎΠ΄ΡΡΠ΅Ρ Π²ΡΡ Π΅ΡΡ Π³ΠΎΡΠΎΠ² ΠΏΡΠΈΠ½ΡΡΡ request.
Apache Kafka ΡΠ΅ΡΠ°Π΅Ρ ΡΡΡ ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡΠΈΠ΅ ΠΏΡΠΈ ΠΎΠ±ΠΌΠ΅Π½Π΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠ°ΠΌΠΈ. ΠΠ΅ Π»ΠΈΡΠ½ΠΈΠΌ Π±ΡΠ΄Π΅Ρ Π½Π°ΠΏΠΎΠΌΠ½ΠΈΡΡ, ΡΡΠΎ Π±Π΅ΡΠΏΠ΅ΡΠ΅Π±ΠΎΠΉΠ½ΡΠΉ ΠΈ ΡΠ΄ΠΎΠ±Π½ΡΠΉ ΠΎΠ±ΠΌΠ΅Π½ Π΄Π°Π½Π½ΡΠΌΠΈ β ΠΎΠ΄Π½Π° ΠΈΠ· ΠΊΠ»ΡΡΠ΅Π²ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, ΠΊΠΎΡΠΎΡΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΅ΡΠΈΡΡ Π΄Π»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΡΠΎΠΉΡΠΈΠ²ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ZooKeeper ΠΈ Apache Kafka Π½Π° Windows 10
ΠΠ΅ΡΠ²ΠΎΠ΅, ΡΡΠΎ Π½Π°Π΄ΠΎ Π·Π½Π°ΡΡ Π΄Π»Ρ Π½Π°ΡΠ°Π»Π° ΡΠ°Π±ΠΎΡΡ β ΡΡΠΎ ΡΠΎ, ΡΡΠΎ Apache Kafka ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΠΎΠ²Π΅ΡΡ ΡΠ΅ΡΠ²ΠΈΡΠ° ZooKeeper. ZooKeeper β ΡΡΠΎ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΡΠ΅ΡΠ²ΠΈΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ, ΠΈ ΡΡΠΎ Π²ΡΡ, ΡΡΠΎ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π·Π½Π°ΡΡ ΠΎ Π½ΡΠΌ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅. ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΊΠ°ΡΠ°ΡΡ, Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΡ Π΅Π³ΠΎ ΠΏΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ, ΠΊΠ°ΠΊ Π½Π°ΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΡ Ρ Kafka. ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ Π½Π°ΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΡ Ρ ZooKeeper, ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Ρ Π²Π°Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ ΠΈ Π½Π°ΡΡΡΠΎΠ΅Π½ JRE.
ΠΠ·Π²Π»Π΅ΠΊΠ°Π΅ΠΌ ΠΈΠ· ΡΠΊΠ°ΡΠ΅Π½Π½ΠΎΠ³ΠΎ Π°ΡΡ
ΠΈΠ²Π° ZooKeeper`Π° ΡΠ°ΠΉΠ»Ρ Π² ΠΊΠ°ΠΊΡΡ-Π½ΠΈΠ±ΡΠ΄Ρ ΠΏΠ°ΠΏΠΊΡ Π½Π° Π΄ΠΈΡΠΊΠ΅.
Π ΠΏΠ°ΠΏΠΊΠ΅ zookeeper Ρ Π½ΠΎΠΌΠ΅ΡΠΎΠΌ Π²Π΅ΡΡΠΈΠΈ, Π½Π°Ρ
ΠΎΠ΄ΠΈΠΌ ΠΏΠ°ΠΏΠΊΡ conf ΠΈ Π² Π½Π΅ΠΉ ΡΠ°ΠΉΠ» βzoo_sample.cfgβ.
ΠΠΎΠΏΠΈΡΡΠ΅ΠΌ Π΅Π³ΠΎ ΠΈ ΠΌΠ΅Π½ΡΠ΅ΠΌ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΏΠΈΠΈ Π½Π° βzoo.cfgβ. ΠΡΠΊΡΡΠ²Π°Π΅ΠΌ ΡΠ°ΠΉΠ»-ΠΊΠΎΠΏΠΈΡ ΠΈ Π½Π°Ρ
ΠΎΠ΄ΠΈΠΌ Π² Π½ΡΠΌ ΡΡΡΠΎΡΠΊΡ dataDir=/tmp/zookeeper. ΠΡΠΎΠΏΠΈΡΡΠ²Π°Π΅ΠΌ Π² Π΄Π°Π½Π½ΠΎΠΉ ΡΡΡΠΎΡΠΊΠ΅ ΠΏΠΎΠ»Π½ΡΠΉ ΠΏΡΡΡ ΠΊ Π½Π°ΡΠ΅ΠΉ ΠΏΠ°ΠΏΠΊΠ΅ zookeeper-Ρ
.Ρ
.Ρ
. Π£ ΠΌΠ΅Π½Ρ ΡΡΠΎ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ: dataDir=C:\\ZooKeeper\\zookeeper-3.6.0
Π’Π΅ΠΏΠ΅ΡΡ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΡΠ΅Π΄Ρ: ZOOKEEPER_HOME = C:\ ZooKeeper \zookeeper-3.4.9 ΠΈ Π² ΠΊΠΎΠ½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Path Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π·Π°ΠΏΠΈΡΡ: ;%ZOOKEEPER_HOME%\bin;
ΠΠ°ΠΏΡΡΠΊΠ°Π΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡΡ ΡΡΡΠΎΠΊΡ ΠΈ ΠΏΠΈΡΠ΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
ΠΡΠ»ΠΈ Π²ΡΡ ΡΠ΄Π΅Π»Π°Π½ΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ, Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅.
ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ZooKeeper ΡΡΠ°ΡΡΠ°Π½ΡΠ» Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ. ΠΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΠΌ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΊ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠ΅ ΡΠ΅ΡΠ²Π΅ΡΠ° Apache Kafka. Π‘ΠΊΠ°ΡΠΈΠ²Π°Π΅ΠΌ ΡΠ²Π΅ΠΆΡΡ Π²Π΅ΡΡΠΈΡ Ρ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΡΠ° ΠΈ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅ΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Π°ΡΡ ΠΈΠ²Π°: kafka.apache.org/downloads
Π ΠΏΠ°ΠΏΠΊΠ΅ Ρ Kafka Π½Π°Ρ ΠΎΠ΄ΠΈΠΌ ΠΏΠ°ΠΏΠΊΡ config, Π² Π½Π΅ΠΉ Π½Π°Ρ ΠΎΠ΄ΠΈΠΌ ΡΠ°ΠΉΠ» server.properties ΠΈ ΠΎΡΠΊΡΡΠ²Π°Π΅ΠΌ Π΅Π³ΠΎ.
ΠΠ°Ρ ΠΎΠ΄ΠΈΠΌ ΡΡΡΠΎΠΊΡ log.dirs= /tmp/kafka-logs ΠΈ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ Π² Π½Π΅ΠΉ ΠΏΡΡΡ, ΠΊΡΠ΄Π° Kafka Π±ΡΠ΄Π΅Ρ ΡΠΎΡ ΡΠ°Π½ΡΡΡ Π»ΠΎΠ³ΠΈ: log.dirs=c:/kafka/kafka-logs.
Π ΡΡΠΎΠΉ ΠΆΠ΅ ΠΏΠ°ΠΏΠΊΠ΅ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΡΠ΅ΠΌ ΡΠ°ΠΉΠ» zookeeper.properties. Π‘ΡΡΠΎΡΠΊΡ dataDir=/tmp/zookeeper ΠΌΠ΅Π½ΡΠ΅ΠΌ Π½Π° dataDir=c:/kafka/zookeeper-data, Π½Π΅ Π·Π°Π±ΡΠ²Π°Ρ ΠΏΡΠΈ ΡΡΠΎΠΌ, ΠΏΠΎΡΠ»Π΅ ΠΈΠΌΠ΅Π½ΠΈ Π΄ΠΈΡΠΊΠ° ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΠΏΡΡΡ ΠΊ ΡΠ²ΠΎΠ΅ΠΉ ΠΏΠ°ΠΏΠΊΠ΅ Ρ Kafka. ΠΡΠ»ΠΈ Π²Ρ Π²ΡΡ ΡΠ΄Π΅Π»Π°Π»ΠΈ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ZooKeeper ΠΈ Kafka.
ΠΠ»Ρ ΠΊΠΎΠ³ΠΎ-ΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΊΠ°Π·Π°ΡΡΡΡ Π½Π΅ΠΏΡΠΈΡΡΠ½ΠΎΠΉ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΠΎΡΡΡΡ, ΡΡΠΎ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ GUI Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Kafka Π½Π΅Ρ. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΡΠΎ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ ΡΠ΅ΡΠ²ΠΈΡ ΡΠ°ΡΡΡΠΈΡΠ°Π½ Π½Π° ΡΡΡΠΎΠ²ΡΡ Π½ΡΡΠ΄ΠΎΠ², ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΡ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Ρ ΠΊΠΎΠ½ΡΠΎΠ»ΡΡ. Π’Π°ΠΊ ΠΈΠ»ΠΈ ΠΈΠ½Π°ΡΠ΅, Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΊΠ°ΡΠΊΠΈ Π½Π°ΠΌ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½Π°Ρ ΡΡΡΠΎΠΊΠ°.
Π‘Π½Π°ΡΠ°Π»Π° Π½Π°Π΄ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ ZooKeeper. Π ΠΏΠ°ΠΏΠΊΠ΅ Ρ ΠΊΠ°ΡΠΊΠΎΠΉ Π½Π°Ρ ΠΎΠ΄ΠΈΠΌ ΠΏΠ°ΠΏΠΊΡ bin/windows, Π² Π½Π΅ΠΉ Π½Π°Ρ ΠΎΠ΄ΠΈΠΌ ΡΠ°ΠΉΠ» Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΡΠ΅ΡΠ²ΠΈΡΠ° zookeeper-server-start.bat, ΠΊΠ»ΠΈΠΊΠ°Π΅ΠΌ ΠΏΠΎ Π½Π΅ΠΌΡ. ΠΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ? Π’Π°ΠΊ ΠΈ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ. ΠΡΠΊΡΡΠ²Π°Π΅ΠΌ Π² ΡΡΠΎΠΉ ΠΏΠ°ΠΏΠΊΠ΅ ΠΊΠΎΠ½ΡΠΎΠ»Ρ ΠΈ ΠΏΠΈΡΠ΅ΠΌ:
ΠΠΏΡΡΡ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ? ΠΡΠΎ Π½ΠΎΡΠΌΠ°. ΠΡΡ ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ zookeeper-server-start.bat Π΄Π»Ρ ΡΠ²ΠΎΠ΅ΠΉ ΡΠ°Π±ΠΎΡΡ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, ΠΏΡΠΎΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π² ΡΠ°ΠΉΠ»Π΅ zookeeper.properties, ΠΊΠΎΡΠΎΡΡΠΉ, ΠΊΠ°ΠΊ ΠΌΡ ΠΏΠΎΠΌΠ½ΠΈΠΌ, Π»Π΅ΠΆΠΈΡ Π² ΠΏΠ°ΠΏΠΊΠ΅ config. ΠΠΈΡΠ΅ΠΌ Π² ΠΊΠΎΠ½ΡΠΎΠ»Ρ:
Π’Π΅ΠΏΠ΅ΡΡ Π²ΡΡ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΡΠ°ΡΡΠ°Π½ΡΡΡ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ.
ΠΡΡ ΡΠ°Π· ΠΎΡΠΊΡΡΠ²Π°Π΅ΠΌ ΠΊΠΎΠ½ΡΠΎΠ»Ρ Π² ΡΡΠΎΠΉ ΠΏΠ°ΠΏΠΊΠ΅ (ZooKeeper Π½Π΅ Π·Π°ΠΊΡΡΠ²Π°ΡΡ!) ΠΈ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ kafka:
ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π½Π΅ ΠΏΠΈΡΠ°ΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅, ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΡΠ°ΡΡΠΌ ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½Π½ΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ ΠΈ ΡΠΎΠ·Π΄Π°ΡΡ Π±Π°ΡΠ½ΠΈΠΊ ΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΡΠΌ:
Π‘ΡΡΠΎΠΊΠ° timeout 10 Π½ΡΠΆΠ½Π° Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π·Π°Π΄Π°ΡΡ ΠΏΠ°ΡΠ·Ρ ΠΌΠ΅ΠΆΠ΄Ρ Π·Π°ΠΏΡΡΠΊΠΎΠΌ zookeeper ΠΈ kafka. ΠΡΠ»ΠΈ Π²Ρ Π²ΡΡ ΡΠ΄Π΅Π»Π°Π»ΠΈ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ, ΠΏΡΠΈ ΠΊΠ»ΠΈΠΊΠ΅ Π½Π° Π±Π°ΡΠ½ΠΈΠΊ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΡΠΊΡΡΡΡΡΡ Π΄Π²Π΅ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ Ρ Π·Π°ΠΏΡΡΠ΅Π½Π½ΡΠΌ zookeeper ΠΈ kafka.Π’Π΅ΠΏΠ΅ΡΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΡΠΌΠΎ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠΎΠ΄ΡΡΠ΅ΡΠ° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΈ ΠΊΠΎΠ½ΡΡΡΠΌΠ΅ΡΠ° Ρ Π½ΡΠΆΠ½ΡΠΌΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ. ΠΠΎ, Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡΡ ΡΠ°Π·Π²Π΅ ΡΡΠΎ Π΄Π»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΡΠ²ΠΈΡΠ°. ΠΠΎΡΠ°Π·Π΄ΠΎ Π±ΠΎΠ»ΡΡΠ΅ Π½Π°Ρ Π±ΡΠ΄Π΅Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠΎΠ²Π°ΡΡ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ kafka ΠΈΠ· IDEA.
Π Π°Π±ΠΎΡΠ° Ρ kafka ΠΈΠ· IDEA
ΠΡ Π½Π°ΠΏΠΈΡΠ΅ΠΌ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΈ ΠΏΡΠΎΠ΄ΡΡΠ΅ΡΠΎΠΌ ΠΈ ΠΊΠΎΠ½ΡΡΡΠΌΠ΅ΡΠΎΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, Π° Π·Π°ΡΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π² Π½Π΅Π³ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΡΠ΅ ΡΠΈΡΠΈ. Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π½ΠΎΠ²ΡΠΉ ΡΠΏΡΠΈΠ½Π³-ΠΏΡΠΎΠ΅ΠΊΡ. Π£Π΄ΠΎΠ±Π½Π΅Π΅ Π²ΡΠ΅Π³ΠΎ Π΄Π΅Π»Π°ΡΡ ΡΡΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΏΡΠΈΠ½Π³-ΠΈΠ½ΠΈΡΠΈΠ°Π»Π°ΠΉΠ·Π΅ΡΠ°. ΠΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ org.springframework.kafka ΠΈ spring-boot-starter-web
Π ΠΈΡΠΎΠ³Π΅ ΡΠ°ΠΉΠ» pom.xml Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ°ΠΊ:
Π ΠΏΡΠΈΠ½ΡΠΈΠΏΠ΅, Π½Π°Ρ ΠΏΡΠΎΠ΄ΡΡΠ΅Ρ Π³ΠΎΡΠΎΠ². ΠΡΡ ΡΡΠΎ ΠΎΡΡΠ°Π»ΠΎΡΡ ΡΠ΄Π΅Π»Π°ΡΡ β ΡΡΠΎ Π²ΡΠ·Π²Π°ΡΡ Ρ Π½Π΅Π³ΠΎ ΠΌΠ΅ΡΠΎΠ΄ send(). ΠΠΌΠ΅Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠ΅ΡΠ΅Π³ΡΡΠΆΠ΅Π½Π½ΡΡ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π°. ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π² Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅ Π²Π°ΡΠΈΠ°Π½Ρ Ρ 3 ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ β send(String topic, K key, V data). Π’Π°ΠΊ ΠΊΠ°ΠΊ KafkaTemplate ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ String-ΠΎΠΌ, ΡΠΎ ΠΊΠ»ΡΡ ΠΈ Π΄Π°Π½Π½ΡΠ΅ Π² ΠΌΠ΅ΡΠΎΠ΄Π΅ send Π±ΡΠ΄ΡΡ ΡΠ²Π»ΡΡΡΡΡ ΡΡΡΠΎΠΊΠΎΠΉ. ΠΠ΅ΡΠ²ΡΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΠΎΠΏΠΈΠΊ, ΡΠΎ Π΅ΡΡΡ ΡΠ΅ΠΌΠ°, Π² ΠΊΠΎΡΠΎΡΡΡ Π±ΡΠ΄ΡΡ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΠΈ Π½Π° ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ΄ΠΏΠΈΡΡΠ²Π°ΡΡΡΡ ΠΊΠΎΠ½ΡΡΡΠΌΠ΅ΡΡ, ΡΡΠΎΠ±Ρ ΠΈΡ ΠΏΠΎΠ»ΡΡΠ°ΡΡ. ΠΡΠ»ΠΈ ΡΠΎΠΏΠΈΠΊ, ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ Π² ΠΌΠ΅ΡΠΎΠ΄Π΅ send Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ, ΠΎΠ½ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π½ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ. ΠΠΎΠ»Π½ΡΠΉ ΡΠ΅ΠΊΡΡ ΠΊΠ»Π°ΡΡΠ° Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ.
ΠΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ ΠΌΠ°ΠΏΠΈΡΡΡ Π½Π° localhost:8080/msg, Π² ΡΠ΅Π»Π΅ Π·Π°ΠΏΡΠΎΡΠ° ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΠΊΠ»ΡΡ ΠΈ ΡΠ°ΠΌΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ.
ΠΡΠΏΡΠ°Π²ΠΈΡΠ΅Π»Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π³ΠΎΡΠΎΠ², ΡΠ΅ΠΏΠ΅ΡΡ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΡΠ»ΡΡΠ°ΡΠ΅Π»Ρ. Spring ΡΠ°ΠΊ ΠΆΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ cΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ Π±Π΅Π· ΠΎΡΠΎΠ±ΡΡ ΡΡΠΈΠ»ΠΈΠΉ. ΠΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΈ ΠΏΠΎΠΌΠ΅ΡΠΈΡΡ Π΅Π³ΠΎ Π°Π½Π½ΠΎΡΠ°ΡΠΈΠ΅ΠΉ @KafkaListener, Π² ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠΏΠΈΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΡΠ»ΡΡΠ°ΡΡΡΡ. Π Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠΎ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ.
Π£ ΡΠ°ΠΌΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π°, ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Π½ΠΎΠ³ΠΎ Π°Π½Π½ΠΎΡΠ°ΡΠΈΠ΅ΠΉ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅ΠΌΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ, ΠΈΠΌΠ΅ΡΡΠΈΠΉ ΡΠΈΠΏ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΏΡΠΎΠ΄ΡΡΠ΅ΡΠΎΠΌ.
ΠΠ»Π°ΡΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡΡΡ ΠΊΠΎΠ½ΡΡΡΠΌΠ΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠΌΠ΅ΡΠΈΡΡ Π°Π½Π½ΠΎΡΠ°ΡΠΈΠ΅ΠΉ @EnableKafka.
Π’Π°ΠΊ ΠΆΠ΅ Π² ΡΠ°ΠΉΠ»Π΅ Π½Π°ΡΡΡΠΎΠ΅ΠΊ application.property Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΊΠΎΠ½ΡΡΡΠΌΠ΅ΡΠ° groupe-id. ΠΡΠ»ΠΈ ΡΡΠΎΠ³ΠΎ Π½Π΅ ΡΠ΄Π΅Π»Π°ΡΡ, ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ Π·Π°ΠΏΡΡΡΠΈΡΡΡ. ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΈΠΌΠ΅Π΅Ρ ΡΠΈΠΏ String ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π»ΡΠ±ΡΠΌ.
ΠΠ°Ρ ΠΏΡΠΎΡΡΠ΅ΠΉΡΠΈΠΉ ΠΊΠ°ΡΠΊΠ°-ΠΏΡΠΎΠ΅ΠΊΡ Π³ΠΎΡΠΎΠ². Π£ Π½Π°Ρ Π΅ΡΡΡ ΠΎΡΠΏΡΠ°Π²ΠΈΡΠ΅Π»Ρ ΠΈ ΠΏΠΎΠ»ΡΡΠ°ΡΠ΅Π»Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ. ΠΡΡΠ°Π»ΠΎΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ. ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ ZooKeeper ΠΈ Kafka Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π±Π°ΡΠ½ΠΈΠΊΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ Π½Π°ΠΏΠΈΡΠ°Π»ΠΈ ΡΠ°Π½Π΅Π΅, Π·Π°ΡΠ΅ΠΌ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ Π½Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠΡΠΏΡΠ°Π²Π»ΡΡΡ Π·Π°ΠΏΡΠΎΡ ΡΠ΄ΠΎΠ±Π½Π΅Π΅ Π²ΡΠ΅Π³ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Postman. Π ΡΠ΅Π»Π΅ Π·Π°ΠΏΡΠΎΡΠ° Π½Π΅ Π·Π°Π±ΡΠ²Π°Π΅ΠΌ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ msgId ΠΈ msg.
ΠΡΠ»ΠΈ ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ Π² IDEA ΡΠ°ΠΊΡΡ ΠΊΠ°ΡΡΠΈΠ½Ρ, Π·Π½Π°ΡΠΈΡ Π²ΡΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ: ΠΏΡΠΎΠ΄ΡΡΠ΅Ρ ΠΎΡΠΏΡΠ°Π²ΠΈΠ» ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΠ½ΡΡΡΠΌΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΠ» Π΅Π³ΠΎ ΠΈ Π²ΡΠ²Π΅Π» Π² ΠΊΠΎΠ½ΡΠΎΠ»Ρ.
Π£ΡΠ»ΠΎΠΆΠ½ΡΠ΅ΠΌ ΠΏΡΠΎΠ΅ΠΊΡ
Π Π΅Π°Π»ΡΠ½ΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Kafka ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ ΠΆΠ΅ ΡΠ»ΠΎΠΆΠ½Π΅Π΅, ΡΠ΅ΠΌ ΡΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ ΡΠΎΠ·Π΄Π°Π»ΠΈ. Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ ΡΠ°Π·ΠΎΠ±ΡΠ°Π»ΠΈΡΡ Ρ Π±Π°Π·ΠΎΠ²ΡΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ ΡΠ΅ΡΠ²ΠΈΡΠ°, ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊΠΈΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΎΠ½ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ. ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° ΡΡΠΎΠ²Π΅ΡΡΠ΅Π½ΡΡΠ²ΡΠ΅ΠΌ ΠΏΡΠΎΠ΄ΡΡΠ΅ΡΠ°.
ΠΡΠ»ΠΈ Π²Ρ ΠΎΡΠΊΡΡΠ²Π°Π»ΠΈ ΠΌΠ΅ΡΠΎΠ΄ send(), ΡΠΎ ΠΌΠΎΠ³Π»ΠΈ Π·Π°ΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ Ρ Π²ΡΠ΅Ρ Π΅Π³ΠΎ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² Π΅ΡΡΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ListenableFuture >. Π‘Π΅ΠΉΡΠ°Ρ ΠΌΡ Π½Π΅ Π±ΡΠ΄Π΅ΠΌ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°. ΠΠ΄Π΅ΡΡ Π±ΡΠ΄Π΅Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ ΠΎΠ½ Π½ΡΠΆΠ΅Π½ Π΄Π»Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ.
ΠΠ΅ΡΠΎΠ΄ addCallback() ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π΄Π²Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° β SuccessCallback ΠΈ FailureCallback. ΠΠ±Π° ΠΎΠ½ΠΈ ΡΠ²Π»ΡΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΌΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°ΠΌΠΈ. ΠΠ· Π½Π°Π·Π²Π°Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡΡ, ΡΡΠΎ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ Π±ΡΠ΄Π΅Ρ Π²ΡΠ·Π²Π°Π½ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΡΡΠΏΠ΅ΡΠ½ΠΎΠΉ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, Π²ΡΠΎΡΠΎΠ³ΠΎ β Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ.Π’Π΅ΠΏΠ΅ΡΡ, Π΅ΡΠ»ΠΈ ΠΌΡ Π·Π°ΠΏΡΡΡΠΈΠΌ ΠΏΡΠΎΠ΅ΠΊΡ, ΡΠΎ ΡΠ²ΠΈΠ΄ΠΈΠΌ Π½Π° ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
ΠΠΎΡΠΌΠΎΡΡΠΈΠΌ Π΅ΡΡ ΡΠ°Π· Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΠΎ Π½Π° Π½Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΄ΡΡΠ΅ΡΠ°. ΠΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ, ΡΡΠΎ Π±ΡΠ΄Π΅Ρ Π΅ΡΠ»ΠΈ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΊΠ»ΡΡΠ° Π±ΡΠ΄Π΅Ρ Π½Π΅ String, Π°, Π΄ΠΎΠΏΡΡΡΠΈΠΌ, Long, Π° Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΠΎΠ³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΈ ΡΠΎΠ³ΠΎ Ρ ΡΠΆΠ΅ β ΠΊΠ°ΠΊΠ°Ρ-Π½ΠΈΠ±ΡΠ΄Ρ ΡΠ»ΠΎΠΆΠ½Π°Ρ DTO? ΠΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ Π΄Π»Ρ Π½Π°ΡΠ°Π»Π° ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΊΠ»ΡΡ Π½Π° ΡΠΈΡΠ»ΠΎΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅β¦
ΠΡΠ»ΠΈ ΠΌΡ ΡΠΊΠ°ΠΆΠ΅ΠΌ Π² ΠΏΡΠΎΠ΄ΡΡΠ΅ΡΠ΅ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΊΠ»ΡΡΠ° Long, ΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡΡΡ, Π½ΠΎ ΠΏΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ Π²ΡΠ±ΡΠΎΡΠ΅Π½ ClassCastException ΠΈ Π±ΡΠ΄Π΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΎ, ΡΡΠΎ ΠΊΠ»Π°ΡΡ Long Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½ ΠΊ ΠΊΠ»Π°ΡΡΡ String.
Π ΠΌΠ΅ΡΠΎΠ΄Π΅ producerConfigs() ΡΠΎΠ·Π΄Π°ΡΠΌ ΠΌΠ°ΠΏΡ Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠΌΠΈ ΠΈ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠ° Π΄Π»Ρ ΠΊΠ»ΡΡΠ° ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ LongSerializer.class. ΠΠ°ΠΏΡΡΠΊΠ°Π΅ΠΌ, ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌ Π·Π°ΠΏΡΠΎΡ ΠΈΠ· Postman ΠΈ Π²ΠΈΠ΄ΠΈΠΌ, ΡΡΠΎ ΡΠ΅ΠΏΠ΅ΡΡ Π²ΡΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, ΠΊΠ°ΠΊ Π½Π°Π΄ΠΎ: ΠΏΡΠΎΠ΄ΡΡΠ΅Ρ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, Π° ΠΊΠΎΠ½ΡΡΡΠΌΠ΅Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π΅Π³ΠΎ.
Π’Π΅ΠΏΠ΅ΡΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ ΡΠΈΠΏ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. Π§ΡΠΎ Π΅ΡΠ»ΠΈ Ρ Π½Π°Ρ Π½Π΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΠΊΠ»Π°ΡΡ ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Java, Π° ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡΠ΄Ρ ΠΊΠ°ΡΡΠΎΠΌΠ½ΡΠΉ DTO. ΠΠΎΠΏΡΡΡΠΈΠΌ ΡΠ°ΠΊΠΎΠΉ.
ΠΠ»Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ DTO Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, Π½ΡΠΆΠ½ΠΎ Π²Π½Π΅ΡΡΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΏΡΠΎΠ΄ΡΡΠ΅ΡΠ°. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠ° Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΡΠΊΠ°ΠΆΠ΅ΠΌ JsonSerializer.class ΠΈ Π½Π΅ Π·Π°Π±ΡΠ΄Π΅ΠΌ Π²Π΅Π·Π΄Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠΈΠΏ String Π½Π° UserDto.
ΠΡΠΏΡΠ°Π²ΠΈΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅. Π ΠΊΠΎΠ½ΡΠΎΠ»Ρ Π±ΡΠ΄Π΅Ρ Π²ΡΠ²Π΅Π΄Π΅Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠ°Ρ ΡΡΡΠΎΠΊΠ°:
Π’Π΅ΠΏΠ΅ΡΡ Π·Π°ΠΉΠΌΡΠΌΡΡ ΡΡΠ»ΠΎΠΆΠ½Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠ½ΡΡΡΠΌΠ΅ΡΠ°. ΠΠΎ ΡΡΠΎΠ³ΠΎ Π½Π°Ρ ΠΌΠ΅ΡΠΎΠ΄ public void msgListener(String msg), ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Π½ΡΠΉ Π°Π½Π½ΠΎΡΠ°ΡΠΈΠ΅ΠΉ @KafkaListener(topics=Β«msgΒ») Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π» String ΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΠ» Π΅Π³ΠΎ Π½Π° ΠΊΠΎΠ½ΡΠΎΠ»Ρ. ΠΠ°ΠΊ Π±ΡΡΡ, Π΅ΡΠ»ΠΈ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΠΎΠ³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠ»ΡΡ ΠΈΠ»ΠΈ ΠΏΠ°ΡΡΠΈΡΠΈΡ? Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠΈΠΏ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ.
ΠΠ· ΠΎΠ±ΡΠ΅ΠΊΡΠ° ConsumerRecord ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π²ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΡΡΠΈΠ΅ Π½Π°Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ.
ΠΡ Π²ΠΈΠ΄ΠΈΠΌ, ΡΡΠΎ Π²ΠΌΠ΅ΡΡΠΎ ΠΊΠ»ΡΡΠ° Π½Π° ΠΊΠΎΠ½ΡΠΎΠ»Ρ Π²ΡΠ²ΠΎΠ΄ΡΡΡΡ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ ΠΊΡΠ°ΠΊΠΎΠ·ΡΠ±ΡΡ. ΠΡΠΎ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ Π΄Π»Ρ Π΄Π΅ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠ»ΡΡΠ° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ StringDeserializer, ΠΈ Π΅ΡΠ»ΠΈ ΠΌΡ Ρ ΠΎΡΠΈΠΌ, ΡΡΠΎΠ±Ρ ΠΊΠ»ΡΡ Π² ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΠΎΠΌ ΡΠΎΡΠΌΠ°ΡΠ΅ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π»ΡΡ, ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π΅Π³ΠΎ Π½Π° LongDeserializer. ΠΠ»Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΊΠΎΠ½ΡΡΡΠΌΠ΅ΡΠ° Π² ΠΏΠ°ΠΊΠ΅ΡΠ΅ config ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΊΠ»Π°ΡΡ KafkaConsumerConfig.
ΠΠΈΠ΄ΠΈΠΌ, ΡΡΠΎ ΡΠ΅ΠΏΠ΅ΡΡ ΠΊΠ»ΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ ΠΊΠ°ΠΊ Π½Π°Π΄ΠΎ, Π° ΡΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ Π²ΡΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ. ΠΠΎΠ½Π΅ΡΠ½ΠΎ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Apache Kafka Π΄Π°Π»Π΅ΠΊΠΎ Π²ΡΡ ΠΎΠ΄ΡΡ Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Ρ ΡΠ΅Ρ , ΡΡΠΎ ΠΎΠΏΠΈΡΠ°Π½Ρ Π² Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ°ΡΡΠ΅, ΠΎΠ΄Π½Π°ΠΊΠΎ, Π½Π°Π΄Π΅ΡΡΡ, ΠΏΡΠΎΡΠΈΡΠ°Π² Π΅Ρ, Π²Ρ ΡΠΎΡΡΠ°Π²ΠΈΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎ Π΄Π°Π½Π½ΠΎΠΌ ΡΠ΅ΡΠ²ΠΈΡΠ΅ ΠΈ, ΡΠ°ΠΌΠΎΠ΅ Π³Π»Π°Π²Π½ΠΎΠ΅, ΡΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΡ Ρ Π½ΠΈΠΌ.
ΠΠΎΠΉΡΠ΅ ΡΡΠΊΠΈ ΡΠ°ΡΠ΅, Π½ΠΎΡΠΈΡΠ΅ ΠΌΠ°ΡΠΊΠΈ, Π½Π΅ Π²ΡΡ ΠΎΠ΄ΠΈΡΠ΅ Π±Π΅Π· Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π½Π° ΡΠ»ΠΈΡΡ, ΠΈ Π±ΡΠ΄ΡΡΠ΅ Π·Π΄ΠΎΡΠΎΠ²Ρ.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅Ρ Apache ΠΈ ΠΊΠ°ΠΊ ΠΈΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ
Apache β ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ°ΠΌΡΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ Π² ΠΌΠΈΡΠ΅ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΠΎΠ². ΠΠ°ΡΠΈΠ½Π°ΡΡΠΈΠ΅ Π²Π΅Π±ΠΌΠ°ΡΡΠ΅ΡΠ° Π½Π΅ Π²ΡΠ΅Π³Π΄Π° ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ, ΡΡΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Apache ΠΈ ΠΊΠ°ΠΊ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ ΡΠ°ΠΊΠΈΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΌ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ.
ΠΠ°Π»Π΅Π΅ Ρ ΠΏΠΎΡΡΠ°ΡΠ°ΡΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΡΠ°ΡΡΠΊΠ°Π·Π°ΡΡ ΠΎ Π½Π΅ΠΌ, ΠΏΡΠΈΠ²ΠΎΠ΄Ρ ΠΎΠ±ΡΡΡΠ½Π΅Π½ΠΈΡ ΠΎΠ±ΡΠΈΠΌ ΡΠ΅ΡΠΌΠΈΠ½Π°ΠΌ.
ΠΠΎΠ½ΡΡΠΈΠ΅ Β«Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡβΒ»
ΠΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ ΠΊΠ°ΠΊ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΊ ΡΠ°Π·Π±ΠΎΡΡ Apache, ΠΊΡΠ°ΡΠΊΠΎ Π·Π°ΡΡΠΎΠ½Ρ ΠΏΠΎΠ½ΡΡΠΈΠ΅ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΠ°, Π²Π΅Π΄Ρ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΊΠΎΠ²ΡΠΌ ΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ.
ΠΠ΅Π±-ΡΠ΅ΡΠ²Π΅Ρ β ΡΡΠ΅Π΄ΡΡΠ²ΠΎ Π΄Π»Ρ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ ΡΠ°ΠΉΡΠ° Π² ΠΈΠ½ΡΠ΅ΡΠ½Π΅ΡΠ΅. ΠΠ½ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΡΠ°ΠΉΠ»Ρ, Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΈ Π²ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, Ρ ΡΠ°Π½ΡΡΡΡΡΡ Π½Π° ΡΠ΅ΡΡΡΡΠ΅. ΠΠ΅Π±-ΡΠ΅ΡΠ²Π΅Ρ Π·Π°Π½ΠΈΠΌΠ°Π΅ΡΡΡ ΡΠ΅ΠΌ, ΡΡΠΎ Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π΄Π°Π½Π½ΡΠ΅ Ρ ΡΠ΅ΡΠ²Π΅ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ° Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΠΈΠΌΠ΅Ρ Π΄ΠΎΡΡΡΠΏ ΠΊΠΎ Π²ΡΠ΅ΠΌ ΡΠ°ΠΉΠ»Π°ΠΌ. ΠΠ΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ, ΠΏΡΠΈ ΡΡΠΎΠΌ Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Ρ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠΌΠΈ Π½Π° ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ ΡΠ°Π·Π½ΡΡ ΡΠ·ΡΠΊΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΡΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ Π²ΡΠ΅ ΠΎΠ½ΠΈ ΠΏΡΠ΅Π²ΡΠ°ΡΠ°ΡΡΡΡ Π² HTML-ΠΊΠΎΠ΄ ΠΈ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡΡΡ Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ Π² Π±ΡΠ°ΡΠ·Π΅Ρ.
Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΎΡΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅Ρ ΠΊΠ°ΠΊ ΡΠ²ΠΎΠ΅ΠΎΠ±ΡΠ°Π·Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ΅Π΄Π½ΠΈΠΊΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ, Π³Π΄Π΅ Ρ ΡΠ°Π½ΡΡΡΡ Π²ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅, ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ. ΠΠ· ΡΡΠΎΠ³ΠΎ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΠΏΠΎΠ½ΡΡΠ½ΠΎ, Π΄Π»Ρ ΡΠ΅Π³ΠΎ Π½ΡΠΆΠ΅Π½ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅Ρ Apache, Π½ΠΎ ΠΏΠΎΠΊΠ° Π½Π΅ ΠΎΡΠ΅Π½Ρ ΡΡΠ½ΠΎ, ΡΠ΅ΠΌ ΠΎΠ½ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ Π΄ΡΡΠ³ΠΈΡ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠΌΠ΅Π΅Ρ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π°.
Π Π°Π±ΠΎΡΠ° Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΠ° Apache
ΠΠ΅Π±-ΡΠ΅ΡΠ²Π΅Ρ Apache β ΡΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ Π½Π° ΡΠ°ΠΌ ΡΠ΅ΡΠ²Π΅Ρ. ΠΠ°ΠΊ ΠΌΡ ΡΠΆΠ΅ ΠΏΠΎΠ½ΡΠ»ΠΈ, Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ Π΅ΠΌΡ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ·Π΅ΡΠΎΠΌ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠΌ Π±ΡΠ°ΡΠ·Π΅Ρ, ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΎΡΡΡΠ΅ΡΡΠ²ΠΈΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π΄Π°Π½Π½ΡΡ ΠΏΡΠΈ Π·Π°ΠΏΡΠΎΡΠ΅. ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡ Π½Π° ΡΡΡΠ°Π½ΠΈΡΡ, Π΄Π°Π»Π΅Π΅ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΡΠΈΠ³Π½Π°Π» Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ, Apache Π½Π°Ρ ΠΎΠ΄ΠΈΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΡΡΠΎΠ±Ρ ΡΠΎΡ ΡΠΌΠΎΠ³ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ Ρ Π½ΠΈΠΌΠΈ. Π Π°Π±ΠΎΡΠ°Π΅Ρ ΡΡΠΎ ΠΈ Π² ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΌ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ, ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΠΏΠΎ ΡΠ°ΠΊΠΎΠΌΡ ΠΆΠ΅ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ.
Π‘Π°ΠΌΠ°Ρ ΠΏΡΠΎΡΡΠ°Ρ ΡΡΡΠΎΠΊΠ° ΠΊΠΎΠ΄Π°, Π²Π²ΠΎΠ΄ΠΈΠΌΠ°Ρ Π² ΡΡΠΎΡ ΡΠ°ΠΉΠ» Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ:
ΠΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ΅ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ β ΡΠΊΠ°Π·Π°ΡΡ Apache ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π½ΡΠΆΠ½ΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΡΠ΅ΠΊΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. Π’Π°ΠΊΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π΄Π΅Π»Π°Π΅ΡΡΡ Π² ΡΠ΅Ρ ΡΠ»ΡΡΠ°ΡΡ , ΠΊΠΎΠ³Π΄Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ Π²ΡΠ²ΠΎΠ΄ Π²Π°Ρ Π½Π΅ ΡΡΡΡΠ°ΠΈΠ²Π°Π΅Ρ.
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ .htaccess Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΊΡΡΠ²Π°ΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ ΠΏΠ°ΡΠΎΠ»ΡΠΌΠΈ, ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΠΈΠ½Π΄Π΅ΠΊΡΡ ΡΠ°ΠΉΠ»ΠΎΠ², Π·Π°ΠΏΡΠ΅ΡΠ°ΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ Π½ΠΈΠΌ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π΄ΡΡΠ³ΠΈΡ Π½Π°ΡΡΡΠΎΠ΅ΠΊ. ΠΡΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΡΠΊΡΡΡΡΠ΅ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΈ ΠΈ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ, Π΅ΡΠ»ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° Π½Π°Π΄ΠΎΠ±Π½ΠΎΡΡΡ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΉΠ» ΠΏΠΎΠ΄ ΡΠ΅Π±Ρ.
ΠΡΠ»ΠΈ Π²Ρ Π½ΡΠΆΠ΄Π°Π΅ΡΠ΅ΡΡ Π² ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΌ Ρ ΠΎΡΡΠΈΠ½Π³Π΅ Ρ ΡΡΠΈΠΌ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ, ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡΡΠ΅ΡΡ Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅ΠΉ Virtual Apache Host Π½Π° ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠΌ ΡΠ°ΠΉΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΠΠ.
Π‘ΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Apache Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΠ°ΠΌΠΈ
ΠΡΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΡ, ΠΎΠ±Π»Π°Π΄Π°ΡΡΠΈΠ΅ ΡΠ²ΠΎΠΈΠΌΠΈ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π°ΠΌΠΈ ΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠ°ΠΌΠΈ. ΠΠ±ΠΎ Π²ΡΠ΅Ρ Π½ΠΈΡ Π² ΡΠ°ΠΌΠΊΠ°Ρ ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠΈ Π³ΠΎΠ²ΠΎΡΠΈΡΡ Π½Π΅ Π±ΡΠ΄Π΅ΠΌ, ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π»ΠΈΡΡ ΠΏΠ°ΡΡ Π΄ΠΎΡΡΠΎΠΉΠ½ΡΡ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠΎΠ².
ΠΠ°ΡΠ½Π΅ΠΌ Ρ ΡΠ°ΠΌΠΎΠ³ΠΎ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΡ β Nginx. ΠΠ΄Π΅ΡΡ ΡΠΊΠ°Π·Π°ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½ΠΎ β Π΅Π³ΠΎ Π³Π»Π°Π²Π½ΡΠΌ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠ΅ΠΎΠ΄ΠΎΠ»Π΅Π½ΠΈΠ΅ Π±Π°ΡΡΠ΅ΡΠ° Π² 10 000 ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ. Apache Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠ°ΠΊΠΎΠΉ Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΏΠΎΡΠΎΠΊ ΡΡΠ°ΡΠΈΠΊΠ° ΡΡΠ°Π·Ρ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π²Π΅Π±ΠΌΠ°ΡΡΠ΅ΡΠ° ΠΈ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΠ»ΠΈΡΡ Π½Π° Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Ρ, ΠΊΠΎΠ³Π΄Π° ΠΌΠ°ΡΡΡΠ°Π±Ρ ΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ²Π΅Π»ΠΈΡΠΈΠ»ΠΈΡΡ. Π‘Π²ΡΠ·Π°Π½ΠΎ ΡΡΠΎ Ρ ΠΏΠΎΡΠΎΡΠ½ΠΎΠΉ ΡΡΡΡΠΊΡΡΡΠΎΠΉ Apache ΠΈ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΎΡ ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΡΠ°ΠΊΠΎΠ³ΠΎ Π±Π°ΡΡΠ΅ΡΠ°. ΠΠ΄Π½Π°ΠΊΠΎ Π² Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΠ»Π°Π½Π΅ ΠΠΏΠ°Ρ ΠΏΡΠ΅Π²ΠΎΡΡ ΠΎΠ΄ΠΈΡ Nginx, Π΅ΡΠ»ΠΈ Π³ΠΎΠ²ΠΎΡΠΈΡΡ ΠΎ ΠΏΡΠΎΡΡΠΎΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ, ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ ΠΈ ΡΠ·Π΅ΡΡΡΠ΅Π½Π΄Π»ΠΈ-ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π΅ ΠΎΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ².
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅. Π₯ΠΎΡΡΠΈΠ½Π³ Timeweb Π½Π° ΡΠ²ΠΎΠΈΡ ΡΠ΅ΡΠ²Π΅ΡΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠ²ΡΠ·ΠΊΡ Nginx+Apache: Nginx ΠΎΡΠ΄Π°Π΅Ρ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΊΠΎΠ½ΡΠ΅Π½Ρ, Π° Apache ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΠΏΠΎΠ·ΠΆΠ΅ ΠΈ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ°.
ΠΡΠΎΡΠΎΠΉ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½Ρ β Tomcat, Π΅Π³ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π»Π° ΡΠ° ΠΆΠ΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ, ΡΡΠΎ ΠΈ Apache, Π½ΠΎ ΡΠΆΠ΅ Π΄Π»Ρ Π΄ΡΡΠ³ΠΈΡ ΡΠ΅Π»Π΅ΠΉ. ΠΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΡ Π½Π° Java, Π° Apache-ΡΠ΅ΡΠ²Π΅Ρ β ΡΡΠΎ HTTP-Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ. ΠΡΠ»ΠΈ Π²Ρ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Java, Π° ΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΠ΅ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡΠ°ΠΌΠΈ, ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΡΡΡ Π½Π° Tomcat ΡΠΎΡΠ½ΠΎ Π½Π΅ ΡΡΠΎΠΈΡ.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Apache Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ
ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ Apache, ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π² ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠΉ ΡΠ°ΠΉΡ Ρ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ, Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½ΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ, Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠΉ Π½Π° ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠΌ ΡΠ°ΠΉΡΠ΅. Π’Π°ΠΌ Π²Ρ Π½Π°ΠΉΠ΄Π΅ΡΠ΅ Π²ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π΄Π»Ρ Windows, Π°ΡΡ ΠΈΠ²Ρ ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΈΠ½ΡΡΠ°Π»Π»ΡΡΠΈΠΈ Π΄Π»Ρ Linux, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΠ±ΡΡΡΠ½Π΅Π½ΠΈΡ Π²ΡΠ΅Ρ ΡΠΎΠ½ΠΊΠΎΡΡΠ΅ΠΉ, ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΎΠΉ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°.
ΠΡΡΠ°ΡΠΈ, Π½Π° Β« ΠΠΎΠΌΡΡΠ½ΠΈΡΠΈ Β» Π΅ΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½Π°Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ, ΠΏΠΎΡΠ²ΡΡΠ΅Π½Π½Π°Ρ ΡΠΎΠΌΡ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Apache Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠΊΡΠΈ Π½Π° Ubuntu. ΠΡΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π» Π΄Π»Ρ Π²ΡΠ΅Ρ ΡΠ΅Ρ , ΠΊΡΠΎ Ρ ΠΎΡΠ΅Ρ ΡΠ·Π½Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΎ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ ΡΡΠΎΠ³ΠΎ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΠ°.
ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ Apache
Π Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΠ±Π·ΠΎΡΠ½ΠΎΠΉ ΡΡΠ°ΡΡΠΈ ΠΏΡΠΎ Apache Ρ ΠΎΡΠ΅Π»ΠΎΡΡ Π±Ρ ΡΠ°ΡΡΠΊΠ°Π·Π°ΡΡ ΠΎ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π°Ρ ΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠ°Ρ ΡΡΠΎΠ³ΠΎ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΠ°, ΡΡΠΎΠ±Ρ Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠ»ΠΎΠΆΠΈΠ»Π°ΡΡ ΠΏΠΎΠ»Π½Π°Ρ ΠΊΠ°ΡΡΠΈΠ½Π°.
ΠΠ»ΡΡΡ
ΠΠ°ΡΠ½Ρ Ρ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΌΠΎΠΌΠ΅Π½ΡΠΎΠ², ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· Π½ΠΈΡ ΡΡΠ°Π½ΠΎΠ²ΡΡΡΡ ΡΠ΅ΡΠ°ΡΡΠΈΠΌΠΈ ΠΏΡΠΈ Π²ΡΠ±ΠΎΡΠ΅ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΠ° Π΄Π»Ρ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°. ΠΠ΅ΡΠ΅ΡΠΈΡΠ»Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΌΡΠ΅ Π²Π»ΠΈΡΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ°ΠΊΡΠΎΡΡ.
ΠΠΈΠ½ΡΡΡ
Π ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, Π½Π΅ ΠΎΠ±ΠΎΡΠ»ΠΎΡΡ ΠΈ Π±Π΅Π· ΠΌΠΈΠ½ΡΡΠΎΠ², ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΈΠ΄Π΅Π°Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ Π»ΡΠ±ΡΡ ΡΠ΅Π»Π΅ΠΉ.
Apache β Π½Π΅ΡΠΎΠΌΠ½Π΅Π½Π½ΠΎ, ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π»ΡΡΡΠΈΡ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΠΎΠ², Π² ΡΠ΅ΠΌ Π²Ρ ΡΠΌΠΎΠ³Π»ΠΈ ΡΠ°ΠΌΠΈ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, Π΄ΠΎΡΠΈΡΠ°Π² ΠΌΠΎΠΉ ΠΎΠ±Π·ΠΎΡ.