{"id":685,"date":"2025-02-27T03:34:04","date_gmt":"2025-02-27T01:34:04","guid":{"rendered":"https:\/\/olvas.dev\/?p=685"},"modified":"2025-02-27T03:34:05","modified_gmt":"2025-02-27T01:34:05","slug":"%d1%80%d0%b0%d0%b7%d0%b2%d0%be%d1%80%d0%b0%d1%87%d0%b8%d0%b2%d0%b0%d0%b5%d0%bc-apache-kafka","status":"publish","type":"post","link":"https:\/\/olvas.dev\/?p=685","title":{"rendered":"\u0420\u0430\u0437\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0435\u043c Apache Kafka"},"content":{"rendered":"\n<p>\u0414\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 Kafka \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u043e\u043c, \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a ZooKeeper \u0438\u043b\u0438 KRaft. \u0412 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0440\u0430\u0431\u043e\u0442\u0443 \u0441 ZooKeeper. Zookeper \u044d\u0442\u043e \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u043e\u043c, \u0441\u043e\u0441\u0442\u043e\u044f\u0449\u0438\u043c \u0438\u0437 \u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0443\u0437\u043b\u043e\u0432.<\/p>\n\n\n\n<p>\u041f\u0435\u0440\u0435\u0434 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u043e\u0439 Zookeeper \u043d\u0435 \u0437\u0430\u0431\u0443\u0434\u044c\u0442\u0435 \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c Java, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0432\u043e\u0442 \u0442\u0430\u043a:<\/p>\n\n\n\n<p><code>apt -y install openjdk-8-jre<\/code><\/p>\n\n\n\n<p>\u0414\u043b\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 zookeeper \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u0435\u0440\u0435\u0439\u0434\u0435\u043c \u043d\u0430 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u0443\u044e \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u044f&nbsp;<a href=\"https:\/\/zookeeper.apache.org\/releases.html\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/zookeeper.apache.org\/releases.html<\/a>&nbsp;\u0438 \u0432\u044b\u0431\u0435\u0440\u0435\u043c \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044e\u044e \u0432\u0435\u0440\u0441\u0438\u044e.<\/p>\n\n\n\n<p>\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u043c \u0434\u0430\u043d\u043d\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e wget:<\/p>\n\n\n\n<p><code>wget https:\/\/dlcdn.apache.org\/zookeeper\/zookeeper-3.8.1\/apache-zookeeper-3.8.1-bin.tar.gz<\/code><\/p>\n\n\n\n<p>\u0414\u0430\u043b\u0435\u0435 \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043a\u0430\u0442\u0430\u043b\u043e\u0433 \u0438 \u0440\u0430\u0441\u043f\u0430\u043a\u0443\u0435\u043c \u0432 \u043d\u0435\u0433\u043e \u0430\u0440\u0445\u0438\u0432:<\/p>\n\n\n\n<p><code>mkdir \/opt\/zookeeper<\/code><\/p>\n\n\n\n<p><code>tar zxvf apache-zookeeper-3.8.1.tar.gz -C \/opt\/zookeeper --strip-components=1<\/code><\/p>\n\n\n\n<p>\u0414\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u043d\u0430\u043c \u0442\u0430\u043a\u0436\u0435 \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u044e\u0442\u0441\u044f \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0438:<\/p>\n\n\n\n<p><code>mkdir -p \/opt\/zookeeper\/data \/var\/log\/zookeeper<\/code><\/p>\n\n\n\n<p>\u0414\u0430\u043b\u0435\u0435 \u043c\u044b \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043a \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u044b. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0430\u043c \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0444\u0430\u0439\u043b \/opt\/zookeeper\/conf\/zoo.cfg.<\/p>\n\n\n\n<p>\u042d\u0442\u043e\u0442 \u0444\u0430\u0439\u043b \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043d\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u044b\u043c:<\/p>\n\n\n\n<p><code>tickTime = 2000<\/code><\/p>\n\n\n\n<p><code>maxSessionTimeout = 50000<\/code><\/p>\n\n\n\n<p><code>syncLimit = 5<\/code><\/p>\n\n\n\n<p><code>initLimit = 300<\/code><\/p>\n\n\n\n<p><code>autopurge.purgeInterval = 1<\/code><\/p>\n\n\n\n<p><code>autopurge.snapRetainCount = 5<\/code><\/p>\n\n\n\n<p><code>snapCount = 200000<\/code><\/p>\n\n\n\n<p><code>clientPort = 2181<\/code><\/p>\n\n\n\n<p><code>maxClientCnxns = 100<\/code><\/p>\n\n\n\n<p><code>4lw.commands.whitelist=stat<\/code><\/p>\n\n\n\n<p><code>dataDir = \/opt\/zookeeper\/data<\/code><\/p>\n\n\n\n<p><code>dataLogDir = \/var\/log\/zookeeper<\/code><\/p>\n\n\n\n<p>\u041c\u044b \u043d\u0435 \u0431\u0443\u0434\u0435\u043c \u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0438 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0438\u0437 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432, \u0442\u0430\u043a \u043a\u0430\u043a \u044d\u0442\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u044b\u0445\u043e\u0434\u0438\u0442 \u0437\u0430 \u0440\u0430\u043c\u043a\u0438 \u0441\u0442\u0430\u0442\u044c\u0438.<\/p>\n\n\n\n<p>\u0414\u0430\u043b\u0435\u0435 \u043c\u044b \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043c \u0437\u0430\u043f\u0443\u0441\u043a \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0441\u0435\u0440\u0432\u0438\u0441\u0430. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u0443\u044e \u0443\u0447\u0435\u0442\u043a\u0443, \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043c \u0435\u0439 \u043f\u0440\u0430\u0432\u0430 \u0438 \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0444\u0430\u0439\u043b \u044e\u043d\u0438\u0442\u0430 \u0432 systemd.<\/p>\n\n\n\n<p><code>useradd -r -c 'Zookeeper service' zookeeper<\/code><\/p>\n\n\n\n<p><code>chown -R zookeeper:zookeeper \/opt\/zookeeper \/var\/log\/zookeeper<\/code><\/p>\n\n\n\n<p>\u0424\u0430\u0439\u043b \u044e\u043d\u0438\u0442\u0430 \/etc\/systemd\/system\/zookeeper.service \u0431\u0443\u0434\u0435\u0442 \u0438\u043c\u0435\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443:<\/p>\n\n\n\n<p><code>[Unit]<\/code><\/p>\n\n\n\n<p><code>Description=ZooKeeper Service<\/code><\/p>\n\n\n\n<p><code>Documentation=https:\/\/zookeeper.apache.org\/<\/code><\/p>\n\n\n\n<p><code>Requires=network.target<\/code><\/p>\n\n\n\n<p><code>After=network.target<\/code><\/p>\n\n\n\n<p><code>[Service]<\/code><\/p>\n\n\n\n<p><code>Type=forking<\/code><\/p>\n\n\n\n<p><code>User=zookeeper<\/code><\/p>\n\n\n\n<p><code>Group=zookeeper<\/code><\/p>\n\n\n\n<p><code>WorkingDirectory=\/opt\/zookeeper<\/code><\/p>\n\n\n\n<p><code>ExecStart=\/opt\/zookeeper\/bin\/zkServer.sh start<\/code><\/p>\n\n\n\n<p><code>ExecStop=\/opt\/zookeeper\/bin\/zkServer.sh stop<\/code><\/p>\n\n\n\n<p><code>ExecReload=\/opt\/zookeeperbin\/zkServer.sh restart<\/code><\/p>\n\n\n\n<p><code>TimeoutSec=30<\/code><\/p>\n\n\n\n<p><code>Restart=on-failure<\/code><\/p>\n\n\n\n<p><code>[Install]<\/code><\/p>\n\n\n\n<p><code>WantedBy=default.target<\/code><\/p>\n\n\n\n<p>\u0417\u0430\u0442\u0435\u043c \u043d\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c system \u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c zookeper:<\/p>\n\n\n\n<p><code>systemctl daemon-reload<\/code><\/p>\n\n\n\n<p><code>systemctl enable zookeeper --now<\/code><\/p>\n\n\n\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u0438\u043c \u0441\u0442\u0430\u0442\u0443\u0441 zookepeer:<\/p>\n\n\n\n<p><code>systemctl status zookeeper<\/code><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"988\" height=\"320\" src=\"https:\/\/olvas.dev\/wp-content\/uploads\/2025\/02\/3e87e0b830e95c45e72b308840ef344c.png\" alt=\"\" class=\"wp-image-692\" srcset=\"https:\/\/olvas.dev\/wp-content\/uploads\/2025\/02\/3e87e0b830e95c45e72b308840ef344c.png 988w, https:\/\/olvas.dev\/wp-content\/uploads\/2025\/02\/3e87e0b830e95c45e72b308840ef344c-300x97.png?_mod=1740620038 300w, https:\/\/olvas.dev\/wp-content\/uploads\/2025\/02\/3e87e0b830e95c45e72b308840ef344c-768x249.png?_mod=1740620038 768w, https:\/\/olvas.dev\/wp-content\/uploads\/2025\/02\/3e87e0b830e95c45e72b308840ef344c-640x207.png?_mod=1740620038 640w\" sizes=\"auto, (max-width: 988px) 100vw, 988px\" \/><\/figure>\n\n\n\n<p>\u0411\u0430\u0437\u043e\u0432\u044b\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 Zookeeper \u043c\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043b\u0438. \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u043c\u0438 \u0443\u0437\u043b\u0430\u043c\u0438 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u043e\u043f\u044f\u0442\u044c \u0442\u0430\u043a\u0438 \u043d\u0435 \u0432\u0445\u043e\u0434\u0438\u0442 \u0432 \u0442\u0435\u043c\u0443 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u0430\u043b\u0435\u0435 \u043c\u044b \u043f\u0435\u0440\u0435\u0439\u0434\u0435\u043c \u043a \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 Kafka.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u0421\u0442\u0430\u0432\u0438\u043c \u041a\u0430\u0444\u043a\u0443<\/h2>\n\n\n\n<p>\u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0430\u043c \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044e\u044e \u0432\u0435\u0440\u0441\u0438\u044e \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430. \u0414\u0430\u043b\u0435\u0435 \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u044b\u0432\u0430\u0435\u043c \u0430\u0440\u0445\u0438\u0432 \u0438 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u0432 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u043a\u0430\u0442\u0430\u043b\u043e\u0433.<\/p>\n\n\n\n<p><code>$ tar -xzf kafka_2.13-3.4.0.tgz<\/code><\/p>\n\n\n\n<p><code>$ cd kafka_2.13-3.4.0<\/code><\/p>\n\n\n\n<p>\u0414\u0430\u043b\u0435\u0435 \u043d\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c Zookeper \u0441 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u043c\u0438, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u043c\u0438 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b Kafka.<\/p>\n\n\n\n<p><code>$ bin\/zookeeper-server-start.sh config\/zookeeper.properties<\/code><\/p>\n\n\n\n<p>\u041f\u0440\u0438 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u043c \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a\u0443\u044e &#171;\u043f\u043e\u0440\u0442\u044f\u043d\u043a\u0443&#187;.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1006\" height=\"370\" src=\"https:\/\/olvas.dev\/wp-content\/uploads\/2025\/02\/50c6deb539759812d8531cb920e5dae8.png\" alt=\"\" class=\"wp-image-693\" srcset=\"https:\/\/olvas.dev\/wp-content\/uploads\/2025\/02\/50c6deb539759812d8531cb920e5dae8.png 1006w, https:\/\/olvas.dev\/wp-content\/uploads\/2025\/02\/50c6deb539759812d8531cb920e5dae8-300x110.png?_mod=1740620039 300w, https:\/\/olvas.dev\/wp-content\/uploads\/2025\/02\/50c6deb539759812d8531cb920e5dae8-768x282.png?_mod=1740620040 768w, https:\/\/olvas.dev\/wp-content\/uploads\/2025\/02\/50c6deb539759812d8531cb920e5dae8-640x235.png?_mod=1740620040 640w, https:\/\/olvas.dev\/wp-content\/uploads\/2025\/02\/50c6deb539759812d8531cb920e5dae8-1000x368.png?_mod=1740620040 1000w\" sizes=\"auto, (max-width: 1006px) 100vw, 1006px\" \/><\/figure>\n\n\n\n<p>\u0414\u0430\u043b\u0435\u0435 \u043e\u0442\u043a\u0440\u043e\u0435\u043c \u0435\u0449\u0435 \u043e\u0434\u043d\u0443 SSH \u0441\u0435\u0441\u0441\u0438\u044e \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043c Kafka<\/p>\n\n\n\n<p><code># Start the Kafka broker service<\/code><\/p>\n\n\n\n<p><code>$ bin\/kafka-server-start.sh config\/server.properties<\/code><\/p>\n\n\n\n<p>\u0417\u0434\u0435\u0441\u044c \u043d\u0430\u0441 \u043d\u0438\u043a\u0430\u043a\u043e\u0439 \u043e\u0441\u043e\u0431\u043e\u0439 \u043f\u0441\u0435\u0432\u0434\u043e\u0433\u0440\u0430\u0444\u0438\u043a\u043e\u0439 \u043d\u0435 \u043f\u043e\u0440\u0430\u0434\u043e\u0432\u0430\u043b\u0438, \u0442\u0430\u043a \u0447\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0432\u044b\u0432\u043e\u0434 \u043d\u0430 \u043f\u0440\u0435\u0434\u043c\u0435\u0442 \u043e\u0448\u0438\u0431\u043e\u043a.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"999\" height=\"589\" src=\"https:\/\/olvas.dev\/wp-content\/uploads\/2025\/02\/9e6a6b1ce4d31aa06b631e6c8d27db17.png\" alt=\"\" class=\"wp-image-694\" srcset=\"https:\/\/olvas.dev\/wp-content\/uploads\/2025\/02\/9e6a6b1ce4d31aa06b631e6c8d27db17.png 999w, https:\/\/olvas.dev\/wp-content\/uploads\/2025\/02\/9e6a6b1ce4d31aa06b631e6c8d27db17-300x177.png?_mod=1740620041 300w, https:\/\/olvas.dev\/wp-content\/uploads\/2025\/02\/9e6a6b1ce4d31aa06b631e6c8d27db17-768x453.png?_mod=1740620041 768w, https:\/\/olvas.dev\/wp-content\/uploads\/2025\/02\/9e6a6b1ce4d31aa06b631e6c8d27db17-640x377.png?_mod=1740620041 640w, https:\/\/olvas.dev\/wp-content\/uploads\/2025\/02\/9e6a6b1ce4d31aa06b631e6c8d27db17-848x500.png?_mod=1740620042 848w\" sizes=\"auto, (max-width: 999px) 100vw, 999px\" \/><\/figure>\n\n\n\n<p>\u041a\u0430\u043a \u0432\u0438\u0434\u043d\u043e, \u043c\u044b \u0441\u043e\u0437\u0434\u0430\u043b\u0438 \u0431\u0430\u0437\u043e\u0432\u0443\u044e \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b Kafka. \u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u043f\u043b\u043e\u0434\u0438\u0442\u044c \u043e\u043a\u043d\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \u0438\u043b\u0438 SSH \u0441\u0435\u0441\u0441\u0438\u0438 \u044f \u0431\u044b \u043f\u043e\u0441\u043e\u0432\u0435\u0442\u043e\u0432\u0430\u043b \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0434\u0432\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0432 \u0444\u043e\u043d\u043e\u0432\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435, \u0442.\u0435. \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c &amp;.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0442\u043e\u043f\u0438\u043a<\/h2>\n\n\n\n<p>\u041d\u0430\u043f\u043e\u043c\u043d\u044e \u0438\u0437 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u043e\u0432 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0438, \u0447\u0442\u043e Kafka &#8212; \u044d\u0442\u043e \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0439 \u043f\u043e\u0442\u043e\u043a\u043e\u0432\u043e\u0439 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0441\u043e\u0431\u044b\u0442\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0432\u0430\u043c \u0447\u0438\u0442\u0430\u0442\u044c, \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c, \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0438 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043d\u0430 \u043c\u043d\u043e\u0433\u0438\u0445 \u0443\u0437\u043b\u0430\u0445.<\/p>\n\n\n\n<p>\u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0442\u043e\u043f\u0438\u043a quickstart-events \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u043c\u0430\u043d\u0434\u044b:<\/p>\n\n\n\n<p><code>$ bin\/kafka-topics.sh --create --topic quickstart-events --bootstrap-server localhost:9092<\/code><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"991\" height=\"86\" src=\"https:\/\/olvas.dev\/wp-content\/uploads\/2025\/02\/91623eac9772f01365726dbb660fc9ba.png\" alt=\"\" class=\"wp-image-691\" srcset=\"https:\/\/olvas.dev\/wp-content\/uploads\/2025\/02\/91623eac9772f01365726dbb660fc9ba.png 991w, https:\/\/olvas.dev\/wp-content\/uploads\/2025\/02\/91623eac9772f01365726dbb660fc9ba-300x26.png?_mod=1740620038 300w, https:\/\/olvas.dev\/wp-content\/uploads\/2025\/02\/91623eac9772f01365726dbb660fc9ba-768x67.png?_mod=1740620038 768w, https:\/\/olvas.dev\/wp-content\/uploads\/2025\/02\/91623eac9772f01365726dbb660fc9ba-640x56.png?_mod=1740620038 640w\" sizes=\"auto, (max-width: 991px) 100vw, 991px\" \/><\/figure>\n\n\n\n<p>\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0443 \u043f\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u043c\u0443 \u0442\u043e\u043f\u0438\u043a\u0443:<\/p>\n\n\n\n<p><code>$ bin\/kafka-topics.sh --describe --topic quickstart-events --bootstrap-server localhost:9092<\/code><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1000\" height=\"55\" src=\"https:\/\/olvas.dev\/wp-content\/uploads\/2025\/02\/b738a8a94d0ef45eefe970e68daabca1.png\" alt=\"\" class=\"wp-image-687\" srcset=\"https:\/\/olvas.dev\/wp-content\/uploads\/2025\/02\/b738a8a94d0ef45eefe970e68daabca1.png 1000w, https:\/\/olvas.dev\/wp-content\/uploads\/2025\/02\/b738a8a94d0ef45eefe970e68daabca1-300x17.png?_mod=1740620034 300w, https:\/\/olvas.dev\/wp-content\/uploads\/2025\/02\/b738a8a94d0ef45eefe970e68daabca1-768x42.png?_mod=1740620034 768w, https:\/\/olvas.dev\/wp-content\/uploads\/2025\/02\/b738a8a94d0ef45eefe970e68daabca1-640x35.png?_mod=1740620034 640w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><\/figure>\n\n\n\n<p>\u041a\u0430\u043a \u0432\u0438\u0434\u043d\u043e, \u043f\u043e\u043a\u0430 \u043d\u0430\u0448 \u0442\u043e\u043f\u0438\u043a \u043f\u0443\u0441\u0442 \u0438 \u0441\u0430\u043c\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u043d\u0430\u0447\u0430\u0442\u044c \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u0432 \u043d\u0435\u0433\u043e \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f. \u0414\u043b\u044f \u0437\u0430\u043f\u0438\u0441\u0438 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439 \u0432 \u0442\u043e\u043f\u0438\u043a quickstart-events \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439:<\/p>\n\n\n\n<p><code>$ bin\/kafka-console-producer.sh --topic quickstart-events --bootstrap-server localhost:9092<\/code><\/p>\n\n\n\n<p>\u041f\u043e\u0441\u043b\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0432 \u0438\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435 \u0432\u0432\u043e\u0434\u0438\u043c \u0441\u0442\u0440\u043e\u043a\u0438 (Ctrl+C \u0434\u043b\u044f \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f):<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1009\" height=\"85\" src=\"https:\/\/olvas.dev\/wp-content\/uploads\/2025\/02\/a7225bcbf5cdc96f21e3e9dce9818aac.png\" alt=\"\" class=\"wp-image-688\" srcset=\"https:\/\/olvas.dev\/wp-content\/uploads\/2025\/02\/a7225bcbf5cdc96f21e3e9dce9818aac.png 1009w, https:\/\/olvas.dev\/wp-content\/uploads\/2025\/02\/a7225bcbf5cdc96f21e3e9dce9818aac-300x25.png?_mod=1740620036 300w, https:\/\/olvas.dev\/wp-content\/uploads\/2025\/02\/a7225bcbf5cdc96f21e3e9dce9818aac-768x65.png?_mod=1740620036 768w, https:\/\/olvas.dev\/wp-content\/uploads\/2025\/02\/a7225bcbf5cdc96f21e3e9dce9818aac-640x54.png?_mod=1740620036 640w, https:\/\/olvas.dev\/wp-content\/uploads\/2025\/02\/a7225bcbf5cdc96f21e3e9dce9818aac-1000x84.png?_mod=1740620036 1000w\" sizes=\"auto, (max-width: 1009px) 100vw, 1009px\" \/><\/figure>\n\n\n\n<p>\u041a\u0430\u043a \u0432\u0438\u0434\u0438\u0442\u0435, \u044f \u043d\u0435 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0438\u043b \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0443 \u0432 \u043f\u0435\u0440\u0432\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435 \u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u043b \u0441\u0442\u0440\u043e\u043a\u0443 \u043d\u0430 \u043a\u0438\u0440\u0438\u043b\u043b\u0438\u0446\u0435. \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043a\u0430\u043a \u0435\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442 Kafka.<\/p>\n\n\n\n<p>\u0414\u043b\u044f \u0447\u0442\u0435\u043d\u0438\u044f \u0441\u043e\u0431\u044b\u0442\u0438\u0439 \u0438\u0437 \u0442\u043e\u043f\u0438\u043a\u0430 quickstart-events \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043c \u043a\u043e\u043c\u0430\u043d\u0434\u0443:<\/p>\n\n\n\n<p><code>$ bin\/kafka-console-consumer.sh --topic quickstart-events --from-beginning --bootstrap-server localhost:9092<\/code><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"995\" height=\"174\" src=\"https:\/\/olvas.dev\/wp-content\/uploads\/2025\/02\/55c5a0c0654eccd3588213b2492e2233.png\" alt=\"\" class=\"wp-image-690\" srcset=\"https:\/\/olvas.dev\/wp-content\/uploads\/2025\/02\/55c5a0c0654eccd3588213b2492e2233.png 995w, https:\/\/olvas.dev\/wp-content\/uploads\/2025\/02\/55c5a0c0654eccd3588213b2492e2233-300x52.png?_mod=1740620037 300w, https:\/\/olvas.dev\/wp-content\/uploads\/2025\/02\/55c5a0c0654eccd3588213b2492e2233-768x134.png?_mod=1740620037 768w, https:\/\/olvas.dev\/wp-content\/uploads\/2025\/02\/55c5a0c0654eccd3588213b2492e2233-640x112.png?_mod=1740620037 640w\" sizes=\"auto, (max-width: 995px) 100vw, 995px\" \/><\/figure>\n\n\n\n<p>\u041a\u0430\u043a \u0432\u0438\u0434\u0438\u0442\u0435 \u043a\u0438\u0440\u0438\u043b\u043b\u0438\u0446\u0430 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u043b\u0430\u0441\u044c \u0438 \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u043b\u0430\u0441\u044c, \u044d\u0442\u043e \u0433\u043e\u0432\u043e\u0440\u0438\u0442 \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u0443 \u043d\u0430\u0441 \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043e\u043a \u0432 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f\u0445. \u0421\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0431\u0443\u0434\u0443\u0442 \u0445\u0440\u0430\u043d\u0438\u0442\u044c\u0441\u044f \u0432 Kafka \u0441\u0442\u043e\u043b\u044c\u043a\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f. \u041f\u0440\u0438 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u044b\u0445 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f\u0445 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u043f\u043e\u0442\u043e\u043a \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u043d\u043e\u0432\u044b\u0435.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0438<\/h2>\n\n\n\n<p>\u0415\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f\u043c\u0438 \u201c\u0432\u0440\u0443\u0447\u043d\u0443\u044e\u201d \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u043c\u0430\u043b\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043c. \u0413\u043e\u0440\u0430\u0437\u0434\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0435\u0435 \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0432 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435 \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0438\u0437 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430 \u0438 \u043f\u043e\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u0438\u0445 \u0432 \u0442\u043e\u043f\u0438\u043a Kafka. \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u043c\u044b \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 \u0444\u0430\u0439\u043b\u0430 \u0432 \u0440\u0430\u0437\u0434\u0435\u043b Kafka \u0438 \u0437\u0430\u0442\u0435\u043c \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 \u0440\u0430\u0437\u0434\u0435\u043b\u0430 Kafka \u0432 \u0444\u0430\u0439\u043b.<\/p>\n\n\n\n<p>\u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0430\u043c \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0432 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430\u0445 plugin.path \u0444\u0430\u0439\u043b\u0430 config\/connect-standalone.properties \u0444\u0430\u0439\u043b connect-file-3.4.0.jar. \u041e\u0442\u043a\u0440\u043e\u0435\u043c \u044d\u0442\u043e \u0444\u0430\u0439\u043b \u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0432 \u043d\u0435\u0433\u043e \u0441\u0442\u0440\u043e\u043a\u0443:<\/p>\n\n\n\n<p><code>plugin.path=libs\/connect-file-3.4.0.jar<\/code><\/p>\n\n\n\n<p>\u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0432\u0441\u0435, \u0434\u0430\u043b\u0435\u0435 \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0439 \u0444\u0430\u0439\u043b \u0441 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0447\u0438\u0442\u0430\u0442\u044c:<\/p>\n\n\n\n<p><code>echo -e \"event1\\nevent2\\nevent3\" &gt; test.txt<\/code><\/p>\n\n\n\n<p>\u0414\u0430\u043b\u0435\u0435 \u043d\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043a\u043e\u043d\u043d\u0435\u043a\u0442\u043e\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u0447\u0438\u0442\u0430\u0442\u044c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0438\u0437 \u044d\u0442\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 \u0438 \u043a\u043e\u043d\u043d\u0435\u043a\u0442\u043e\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0432 sink \u0444\u0430\u0439\u043b\u0435. \u0412 \u043d\u0430\u0431\u043e\u0440\u0435 \u0444\u0430\u0439\u043b\u043e\u0432, \u0438\u0434\u0443\u0449\u0438\u0445 \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 Kafka \u0435\u0441\u0442\u044c \u0444\u0430\u0439\u043b\u044b config\/connect-file-source.properties \u0438 config\/connect-file-sink.properties. \u0412 \u043f\u0435\u0440\u0432\u043e\u043c \u0444\u0430\u0439\u043b\u0435 \u0443\u043a\u0430\u0437\u0430\u043d\u044b \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0434\u043b\u044f \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u0430 test txt, \u0430 \u0432\u0442\u043e\u0440\u043e\u043c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0434\u043b\u044f \u0444\u0430\u0439\u043b\u0430 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439 test.sink.txt. \u041a\u043e\u0433\u0434\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u043d\u0438\u0436\u0435 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0430 \u043a\u043e\u043d\u043d\u0435\u043a\u0442\u043e\u0440, \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u044e\u0449\u0438\u0439 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0438\u0437 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 test.txt \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u0438\u0445 \u0432 \u0442\u043e\u043f\u0438\u043a connect-test (\u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0442\u0430\u043a\u0436\u0435 \u0435\u0441\u0442\u044c \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u0430\u0445), \u0430 sink \u043a\u043e\u043d\u043d\u0435\u043a\u0442\u043e\u0440 \u043d\u0430\u0447\u043d\u0435\u0442 \u0447\u0438\u0442\u0430\u0442\u044c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0438\u0437 \u0442\u043e\u043f\u0438\u043a\u0430 connect-test \u0438 \u0437\u0430\u043f\u0438\u0448\u0435\u0442 \u0438\u0445 \u0432 \u0444\u0430\u0439\u043b test.sink.txt.<\/p>\n\n\n\n<p><code>bin\/connect-standalone.sh config\/connect-standalone.properties config\/connect-file-source.properties config\/connect-file-sink.properties<\/code><\/p>\n\n\n\n<p>\u0423\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f \u0432 \u0440\u0430\u0431\u043e\u0442\u0435 \u043a\u043e\u043d\u043d\u0435\u043a\u0442\u043e\u0440\u0430 \u043c\u043e\u0436\u043d\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e test.sink.txt:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"788\" height=\"124\" src=\"https:\/\/olvas.dev\/wp-content\/uploads\/2025\/02\/74413bb94357a158e1514506bd557083.png\" alt=\"\" class=\"wp-image-689\" srcset=\"https:\/\/olvas.dev\/wp-content\/uploads\/2025\/02\/74413bb94357a158e1514506bd557083.png 788w, https:\/\/olvas.dev\/wp-content\/uploads\/2025\/02\/74413bb94357a158e1514506bd557083-300x47.png?_mod=1740620037 300w, https:\/\/olvas.dev\/wp-content\/uploads\/2025\/02\/74413bb94357a158e1514506bd557083-768x121.png?_mod=1740620037 768w, https:\/\/olvas.dev\/wp-content\/uploads\/2025\/02\/74413bb94357a158e1514506bd557083-640x101.png?_mod=1740620037 640w\" sizes=\"auto, (max-width: 788px) 100vw, 788px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/h2>\n\n\n\n<p>\u041d\u0430 \u044d\u0442\u043e\u043c, \u044f \u043f\u043e\u043b\u0430\u0433\u0430\u044e \u0441\u0435\u0433\u043e\u0434\u043d\u044f\u0448\u043d\u044e\u044e \u0441\u0442\u0430\u0442\u044c\u044e \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u044c. \u041c\u044b \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u043b\u0438 Apache Kafka \u0438 Zookeeper, \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u043b\u0438 \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0442\u043e\u043f\u0438\u043a\u0438, \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u0438 \u0447\u0438\u0442\u0430\u0442\u044c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u043b\u0438 \u043a\u043e\u043d\u043d\u0435\u043a\u0442\u043e\u0440, \u0447\u0438\u0442\u0430\u044e\u0449\u0438\u0439 \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430.&nbsp;<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u0414\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 Kafka \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u043e\u043c, \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a ZooKeeper \u0438\u043b\u0438 KRaft. \u0412 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0440\u0430\u0431\u043e\u0442\u0443 \u0441 ZooKeeper. Zookeper \u044d\u0442\u043e \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u043e\u043c, \u0441\u043e\u0441\u0442\u043e\u044f\u0449\u0438\u043c \u0438\u0437 \u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0443\u0437\u043b\u043e\u0432. \u041f\u0435\u0440\u0435\u0434 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u043e\u0439 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":686,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10],"tags":[155,81],"class_list":["post-685","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-likbez","tag-apache-kafka","tag-kafka","entry-card--landscape"],"_links":{"self":[{"href":"https:\/\/olvas.dev\/index.php?rest_route=\/wp\/v2\/posts\/685","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/olvas.dev\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/olvas.dev\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/olvas.dev\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/olvas.dev\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=685"}],"version-history":[{"count":1,"href":"https:\/\/olvas.dev\/index.php?rest_route=\/wp\/v2\/posts\/685\/revisions"}],"predecessor-version":[{"id":695,"href":"https:\/\/olvas.dev\/index.php?rest_route=\/wp\/v2\/posts\/685\/revisions\/695"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/olvas.dev\/index.php?rest_route=\/wp\/v2\/media\/686"}],"wp:attachment":[{"href":"https:\/\/olvas.dev\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=685"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/olvas.dev\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=685"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/olvas.dev\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=685"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}