Апацхе Кафка

Поставите Апацхе Кафка користећи Доцкер Цомпосе

Поставите Апацхе Кафка користећи Доцкер Цомпосе
Обрасци дизајна оријентисани ка микро услугама учинили су наше апликације скалабилнијим него икад. АПИ сервери РЕСТфул, фронт-енд, па чак и базе података су сада хоризонтално скалабилни. Хоризонтално скалирање је чин додавања нових чворова у ваш апликативни кластер за подршку додатном радном оптерећењу. Супротно томе, такође омогућава смањење потрошње ресурса, када се обим посла смањи, како би се уштедели трошкови. Хоризонтално скалабилни системи морају бити дистрибуирани систем. Ови системи могу преживети неуспех више ВМ-ова, контејнера или мрежних веза, а и даље остају на мрежи и здрави за крајњег корисника.

Када говоримо о дистрибуираним системима као горе, наилазимо на проблем аналитике и праћења. Сваки чвор генерише пуно информација о сопственом здрављу (употреба процесора, меморија итд.) И о статусу апликације заједно са оним што корисници покушавају да ураде. Ови детаљи морају бити забележени у:

  1. Исти редослед којим су створени,
  2. Одвојено у погледу хитности (аналитика у реалном времену или серије података), и што је најважније,
  3. Механизам помоћу којег се прикупљају мора сам бити дистрибуиран и скалабилан, у супротном остаје нам само једна тачка неуспеха. Нешто што је дизајн дистрибуираног система требало да избегне.

Зашто користити Кафку?

Апацхе Кафка је представљен као дистрибуирана платформа за стриминг. Ин Кафка линго, Произвођачи континуирано генерише податке (потоци) и Потрошачи одговорни су за његову обраду, чување и анализу. Кафка Брокери одговорни су за осигуравање да у дистрибуираном сценарију подаци могу доћи од произвођача до потрошача без икакве недоследности. Скуп Кафка брокера и још један софтвер назван чувар зоолошког врта чине типично распоређивање Кафке.

Ток података од многих произвођача треба објединити, поделити и послати више потрошача, укључено је много мешања. Избегавање недоследности није лак задатак. Због тога нам је потребан Кафка.

Сценарији у којима се Кафка може користити су прилично разнолики. Било шта, од ИОТ уређаја до кластера ВМ-а до ваших сопствених голих металних сервера. Било где где много „ствари“ истовремено жели вашу пажњу .. .То није баш научно, зар не? Па, архитектура Кафке је зечја рупа за себе и заслужује независан третман. Прво да видимо примену софтвера на врло површинском нивоу.

Коришћење Доцкер Цомпосе

На који год маштовит начин одлучили да користите Кафку, једно је сигурно - нећете га користити као појединачну инстанцу. Није предвиђено да се користи на тај начин, па чак и ако је вашој дистрибуираној апликацији за сада потребан само један примерак (брокер), она ће временом расти и морате бити сигурни да Кафка може да настави.

Доцкер-цомпосе је савршен партнер за ову врсту скалабилности. Уместо да покрећемо Кафка брокере на различитим ВМ-овима, ми га садржавамо и користимо Доцкер Цомпосе за аутоматизацију примене и скалирања. Доцкер контејнери су високо скалабилни на оба појединачна Доцкер хоста, као и преко кластера ако користимо Доцкер Сварм или Кубернетес. Стога има смисла искористити га како би Кафка постала скалабилна.

Почнимо са једним брокерским случајем. Направите директоријум који се зове апацхе-кафка и у њему креирајте свој доцкер-цомпосе.имл.

$ мкдир апацхе-кафка
$ цд апацхе-кафка
$ вим доцкер-цомпосе.имл

Следећи садржај ће бити стављен у вашу доцкер-композицију.имл датотека:

верзија: '3'
услуге:
чувар зоолошког врта:
слика: вурстмеистер / чувар зоолошког врта
 
кафка:
слика: вурстмеистер / кафка
луке:
- "9092: 9092"
Животна средина:
КАФКА_АДВЕРТИСЕД_ХОСТ_НАМЕ: лоцалхост
КАФКА_ЗООКЕЕПЕР_ЦОННЕЦТ: чувар зоолошког врта: 2181

Након што сачувате горе наведени садржај у датотеци за састављање, из истог директоријума покрените:

$ доцкер-цомпосе уп -д

Ок, па шта смо радили овде?

Разумевање Доцкер-Цомпосе.имл

Састављање ће покренути две услуге како су наведене у имл датотеци. Погледајмо датотеку мало пажљивије. Прва слика је чувар зоолошког врта који Кафка захтева да би пратио разне брокере, топологију мреже као и синхронизацију других информација. Будући да ће и услуге чувара зоолошких вртова и кафка бити део исте мреже мостова (ово се ствара када покренемо доцкер-цомпосе уп), не морамо да излажемо ниједан порт. Кафка брокер може да разговара са чуваром зоолошког врта и то је све што зоолошком чувару треба.

Друга услуга је сама кафка и ми само покрећемо једну инстанцу, односно један брокер. У идеалном случају, желели бисте да користите више брокера како бисте искористили дистрибуирану архитектуру Кафке. Услуга преслушава на порту 9092 који је пресликан на исти број порта на Доцкер Хосту и на тај начин услуга комуницира са спољним светом.

Друга услуга такође има неколико променљивих околине. Прво, да ли је КАФКА_АДВЕРТИСЕД_ХОСТ_НАМЕ подешен на лоцалхост. Ово је адреса на којој Кафка ради и где је произвођачи и потрошачи могу пронаћи. Још једном, ово би требало да буде постављено на лоцалхост, већ на ИП адресу или име хоста са којим сервери могу бити доступни у вашој мрежи. Друго је име хоста и број порта ваше услуге чувара зоолошког врта. Будући да смо назвали услугу зоокеепер ... па, зоокеепер то ће бити име хоста, у оквиру мреже мостова доцкера које смо споменули.

Покретање једноставног тока поруке

Да би Кафка почео да ради, морамо у њему створити тему. Клијенти произвођача могу затим објавити токове података (порука) на наведену тему, а потрошачи могу читати наведени ток података ако су претплаћени на ту тему.

Да бисмо то урадили, морамо покренути интерактивни терминал са контејнером Кафка. Наведите контејнере да бисте добили име кафка контејнера. На пример, у овом случају наш контејнер носи име апацхе-кафка_кафка_1

$ доцкер пс

Са именом кафка контејнера, сада можемо да уђемо у овај контејнер.

$ доцкер екец -ит апацхе-кафка_кафка_1 басх
басх-4.4 #

Отворите два тако различита терминала да бисте један користили као потрошача, а другог као произвођача.

Продуцент Сиде

У један од упита (онај који сте одабрали да буде произвођач) унесите следеће команде:

## Да бисте креирали нову тему под називом тест
басх-4.4 # кафка-теме.сх --цреате --зоокеепер чувар зоолошког врта: 2181 - фактор репликације 1
--партиције 1 - тест теме
 
## За покретање произвођача који објављује ток података од стандардног уноса до кафке
басх-4.4 # кафка-произвођач конзола.сх --брокер-лист лоцалхост: 9092 - тест теме
>

Продуцент је сада спреман да преузме унос са тастатуре и објави га.

Потрошачка страна

Пређите на други терминал повезан на ваш кафка контејнер. Следећа команда покреће потрошача који се храни тест темом:

$ кафка-конзола-потрошач.сх --боотстрап-сервер лоцалхост: 9092 - тест теме

Повратак на Продуцер

Сада можете откуцати поруке у новом одзиву и сваки пут када притиснете ретурн, нови ред се исписује у одзиву за потрошача. На пример:

> Ово је порука.

Ова порука се преноси потрошачу путем Кафке, а можете је видети одштампану у корисничком одзиву.

Постављање у стварном свету

Сада имате оквирну слику о томе како функционише подешавање Кафке. За свој случај употребе, морате да поставите име хоста које није лоцалхост, потребно вам је више таквих брокера да буду део вашег кафка кластера и на крају треба да подесите потрошачке и произвођачке клијенте.

Ево неколико корисних веза:

  1. Питхон клијент компаније Цонфлуент
  2. Званична документација
  3. Корисна листа демонстрација

Надам се да ћете се забавити истражујући Апацхе Кафка.

Водич за сенку Томб Раидера за Линук
Схадов оф тхе Томб Раидер је дванаести додатак серији Томб Раидер - акцијско-авантуристичкој игри коју је створио Еидос Монтреал. И критичари и фанови...
Како појачати ФПС у Линуку?
ФПС је скраћеница за Фрејмова у секунди. Задатак ФПС-а је да мери брзину кадрова у репродукцијама видео записа или играчким перформансама. Једноставни...
Најпопуларније лабораторијске игре Оцулус Апп
Ако сте власник Оцулус слушалица, онда морате бити упознати са бочним учитавањем. Бочно учитавање је поступак инсталирања не-продавничког садржаја на ...