ΠΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ Π²ΡΠΏΡΡΠΊ kafkalet 0.1, Π΄Π΅ΡΠΊΡΠΎΠΏΠ½ΠΎΠ³ΠΎ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Apache Kafka. ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π² Π²ΠΈΠ΄Π΅ ΡΠ°ΠΌΠΎΠ΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎΠ³ΠΎ Π±ΠΈΠ½Π°ΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ ΠΎΠΊΠΎΠ»ΠΎ 15 ΠΠ, Π½Π΅ ΡΡΠ΅Π±ΡΠ΅Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ JVM, Docker ΠΈΠ»ΠΈ Π·Π°ΠΏΡΡΠΊΠ° ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ². ΠΠΎΠ΄ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° Go ΠΈ TypeScript ΠΈ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·ΠΈΠ΅ΠΉ MIT. Π‘Π±ΠΎΡΠΊΠΈ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½Ρ Π΄Π»Ρ macOS (Intel ΠΈ Apple Silicon), Windows ΠΈ Linux.
Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ Π²Π΅Π±-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ², ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ Kafka UI ΠΈ AKHQ, ΡΡΠ΅Π±ΡΡΡΠΈΡ ΡΠ°Π·Π²ΡΡΡΡΠ²Π°Π½ΠΈΡ ΡΠ΅ΡΠ²Π΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° Π² Docker, kafkalet ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠ½ΠΎΠ΅ Π΄Π΅ΡΠΊΡΠΎΠΏΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ β Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ DBeaver ΠΈΠ»ΠΈ DataGrip Π΄Π»Ρ Π±Π°Π· Π΄Π°Π½Π½ΡΡ . ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΌ Π΄Π΅ΡΠΊΡΠΎΠΏΠ½ΡΠΌ Kafka-ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠΌ Π΄ΠΎ ΡΠΈΡ ΠΏΠΎΡ ΠΎΡΡΠ°Π²Π°Π»ΡΡ Offset Explorer (ΡΠ°Π½Π΅Π΅ Kafka Tool), Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π½Π° Java ΠΈ Π΄Π°Π²Π½ΠΎ Π½Π΅ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ²ΡΠΈΠΉΡΡ. ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ kafkalet ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΎ Π½Π° Π±Π°Π·Π΅ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° Wails v2, ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡΡΠ΅Π³ΠΎ Go-Π±ΡΠΊΠ΅Π½Π΄ Ρ Π²Π΅Π±-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ Π½Π° React 18, TypeScript ΠΈ shadcn/ui Π² Π΅Π΄ΠΈΠ½ΡΠΉ Π½Π°ΡΠΈΠ²Π½ΡΠΉ Π±ΠΈΠ½Π°ΡΠ½ΡΠΉ ΡΠ°ΠΉΠ». ΠΠ»Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ Kafka ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° franz-go, ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Π°Ρ Π½Π° ΡΠΈΡΡΠΎΠΌ Go Π±Π΅Π· Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ librdkafka ΠΈ CGO.
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ:
- Π‘ΠΈΡΡΠ΅ΠΌΠ° ΠΏΡΠΎΡΠΈΠ»Π΅ΠΉ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡΠΌΠΈ (production, staging, dev). ΠΠ°ΠΆΠ΄ΡΠΉ Π±ΡΠΎΠΊΠ΅Ρ Π² ΠΏΡΠΎΡΠΈΠ»Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΡ ΡΡΡΡΠ½ΡΡ Π·Π°ΠΏΠΈΡΠ΅ΠΉ Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ Π±ΡΡΡΡΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ. ΠΠ°ΡΠΎΠ»ΠΈ ΠΈ ΡΠΎΠΊΠ΅Π½Ρ Ρ ΡΠ°Π½ΡΡΡΡ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π² ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΌ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ ΡΠ΅ΠΊΡΠ΅ΡΠΎΠ² ΠΠ‘ (macOS Keychain, Windows Credential Manager, libsecret Π½Π° Linux) ΠΈ Π½Π΅ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡΡΡ Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ.
- Π Π΅ΠΆΠΈΠΌ Observer β ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΈΠ· ΡΠΎΠΏΠΈΠΊΠ° Π±Π΅Π· ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊ consumer group, Π±Π΅Π· ΠΊΠΎΠΌΠΌΠΈΡΠ° ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠΉ ΠΈ Π±Π΅Π· ΠΏΠΎΠ±ΠΎΡΠ½ΡΡ ΡΡΡΠ΅ΠΊΡΠΎΠ² Π½Π° ΠΊΠ»Π°ΡΡΠ΅ΡΠ΅. ΠΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ Consumer ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡΡ ΠΊ Π³ΡΡΠΏΠΏΠ΅ ΠΈ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΡ Π²ΡΡΡΠ½ΡΡ.
- ΠΠ°Π²ΠΈΠ³Π°ΡΠΈΡ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ (seek to timestamp) β ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ ΠΊ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌ ΠΏΠΎ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π΄Π°ΡΠ΅ ΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π±Π΅Π· Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π²ΡΡΠΈΡΠ»ΡΡΡ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΡ Π²ΡΡΡΠ½ΡΡ. ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ: SASL PLAIN, SCRAM-SHA-256, SCRAM-SHA-512, OAUTHBEARER (ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠΎΠΊΠ΅Π½ ΠΈ client credentials flow), TLS Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΎΠΉ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ° ΡΠ΅ΡΠ²Π΅ΡΠ°, mTLS (Π²Π·Π°ΠΈΠΌΠ½Π°Ρ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΠΏΠΎ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ°ΠΌ).
- ΠΠΎΡΠΎΠΊΠΎΠ²ΡΠΉ ΠΏΡΠΎΡΠΌΠΎΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Ρ regex-ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠ΅ΠΉ ΠΏΠΎ ΠΊΠ»ΡΡΠ°ΠΌ ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌ Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ΅ Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ Π·Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΡΠΎΠΏΠΈΠΊΠ°ΠΌΠΈ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ Π²ΠΊΠ»Π°Π΄ΠΊΠ°Ρ . ΠΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠΏΠΈΡΠΊΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ Π±ΠΎΠ»Π΅Π΅ 50 000 ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π±Π΅Π· ΡΠ½ΠΈΠΆΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ.
- Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΠΏΠΈΠΊΠ°ΠΌΠΈ: ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅, ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ
ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ², ΠΏΡΠΎΡΠΌΠΎΡΡ ΡΠ°Π·Π΄Π΅Π»ΠΎΠ², Π»ΠΈΠ΄Π΅ΡΠΎΠ² ΠΈ Π½Π°Π±ΠΎΡΠ° ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
ΡΠ΅ΠΏΠ»ΠΈΠΊ (ISR).

- Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ consumer groups: ΠΏΡΠΎΡΠΌΠΎΡΡ ΠΎΡΡΡΠ°Π²Π°Π½ΠΈΡ (lag) ΠΏΠΎ ΡΠ°Π·Π΄Π΅Π»Π°ΠΌ, ΡΠ±ΡΠΎΡ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠΉ Π½Π° earliest, latest ΠΈΠ»ΠΈ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΌΠ΅ΡΠΊΡ, ΠΏΡΠΎΡΠΌΠΎΡΡ ΡΡΠ°ΡΡΠ½ΠΈΠΊΠΎΠ² Π³ΡΡΠΏΠΏΡ (client ID, Ρ ΠΎΡΡ, Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠ΅ ΡΠΎΠΏΠΈΠΊΠΈ), ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π³ΡΡΠΏΠΏ.
- ΠΡΠΏΡΠ°Π²ΠΊΠ° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ ΠΊΠ»ΡΡΠ°, Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² ΠΈ ΡΠ΅Π»Π΅Π²ΠΎΠ³ΠΎ ΡΠ°Π·Π΄Π΅Π»Π°.

- ΠΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ ΡΠΎΠΏΠΈΠΊΠΎΠ²: Π·Π°ΠΊΡΠ΅ΠΏΠ»Π΅Π½ΠΈΠ΅ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΡΠΎΠΏΠΈΠΊΠΎΠ², Π³ΡΡΠΏΠΏΠΈΡΠΎΠ²ΠΊΠ° Π² ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΏΠ°ΠΏΠΊΠΈ, ΠΏΠΎΠΈΡΠΊ Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠ΅ΠΉ ΠΏΠΎ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΌΡ ΡΠΈΡΠ»Ρ ΡΠ°Π·Π΄Π΅Π»ΠΎΠ².
- ΠΠΊΡΠΏΠΎΡΡ Π±ΡΡΠ΅ΡΠ° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ JSON ΠΈΠ»ΠΈ CSV.
- ΠΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ Confluent Schema Registry Π΄Π»Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ Avro.
- Π‘ΠΈΡΡΠ΅ΠΌΠ° JavaScript-ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ (Protobuf, MessagePack ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠΎΡΠΌΠ°ΡΡ).
- ΠΠΌΠΏΠΎΡΡ ΠΈ ΡΠΊΡΠΏΠΎΡΡ Π½Π°ΡΡΡΠΎΠ΅ΠΊ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ JSON, Π²ΠΊΠ»ΡΡΠ°Ρ ΠΏΡΠΎΡΠΈΠ»ΠΈ, Π³ΡΡΠΏΠΏΡ ΡΠΎΠΏΠΈΠΊΠΎΠ² ΠΈ Π·Π°ΠΊΡΠ΅ΠΏΠ»ΡΠ½Π½ΡΠ΅ ΡΠΎΠΏΠΈΠΊΠΈ.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru



