Ovu stranicu je najbolje pregledavati u modernom internet pregledniku s omogućenim JavaScriptom.

[RASSUS] 2. laboratorijska vježba - 2021/2022

tata

štae ovo brt


ruza0001

NISAM ASISTENT izivljavanje nakon MI da pozelimo ispite opet da se odmorimo od labosa 😆


PiqueBlinders

je li itko skuzio kako se na windowsu + spring mogu brisati poruke na nekom topicu kada recimo ponovno pokrenem aplikaciju. Znaci prvi put pokrenem imam 4 START poruke koje pošalje kooordinator i onda kad ponovno pokrenem apk te poruke ostanu, a ja bi htio da se izbrisu. uspjeva mi kada odem preko terminala izbrisati direktno u kafki/zookeeper ali bi htio nekako iz springa


netko_tamo

zisku obrises direktorij koji si definirao u zookeeper.properties(dataDir) i pokrenes sve ispocetka i trebali bi topici biti cisti, al ak bas oces direkt kroz aplikaciju to ne znam i mislim da cak i nije moguce jer to jednostavno nije smisao kafke, ona je dizajnirana da šalje stream poruka, a ne da svako može brisat podatke ko ima informacije o nazivu topica, tak da ostaje ovo brisanje direktorija i tjt 😃


burek

Jel može netko tko je shvatio kaj treba objasniti logiku ovoga? Ne znam jesam skroz skužila kaj se treba, kolko sam ja shvatila imamo upravljački čvor koji je zapravo samo kafka producer, i imamo čvorove za senzore koji su istovremeno consumeri i produceri i u pozadini razmjenjuju očitanja, jel to ispravno?


RogerRoger

burek tako sam ja skužio. Što meni ne ide u glavu je kako ovo organizirati, u smislu što ide u zasebni thread?


burek

RogerRoger pa ja sam mislila u mainu pozvati producera čisto da se registrira, consumera za topic register i dohvatiti sve info o čvorovima, pokrenuti u zasebnom threadu taj udp dio razmjene i onda samo imati u mainu petlju koja poll-a topic command i ako dođe stop ugasiti worker thread, nez jel to ok kak su oni zamislili


RogerRoger

burek tako sam i ja zasad napravio. Mislila si stvoriti jedan thread koji šalje i jedan koji prima očitanja, uprosječuje ih i ispisuje, ili sve u isti?


burek

RogerRoger yep svaki zasebno za server,client i uprosjecivanje bi trebalo


laranotreallycroft

Možemo mijenjati ovaj njihov stupidUDPClient? Ne vidim kako bi mogli dobro očitati podatke ako se šalju jedan po jedan byte unordered. Kako bi onda uopće mogli slati i skalarne i vektorske oznake vremena?


ruza0001

laranotreallycroft ma mozemo sigurno to je samo predlozak da nam pomognu malo vj


WickyWinslow

laranotreallycroft Ja nisam imao problem sa slanjem podataka ako sam serializirao objekt koji zelim slati. Kod deserijalizacije jedino treba paziti lenght koji vrati udp paket jer se ne napuni cijeli buffer byte[] koji mu predas i velicinu tog buffera da stane cijeli serijalizirani objekt.
Serializiranjem mozes gurnuti sve u neku klasu uljucujuci te nesretne oznake vremena.


WickyWinslow

Zna li netko kako integrirati oba tipa vremenskih oznaka u ovaj labos? Pretpostavljam da je bitno jedino da se koriste kod ispisa ocitanja u zadnjih 5 min ali na koji način to napraviti?
Kako koristiti sortirati očitanja za ovaj problem?


laranotreallycroft

WickyWinslow
na kraju sam samo promjenila da ne šalje jedan byte nego da koliko ih treba pošalje odjednom. Mislim da je to skroz ok po ovom kaj sam pročitala na netu jer nisu veliki paketi.

WickyWinslow
Ja sam to vjerojatno zakomplicirala al ovak:
SortedMap<Long, Integer> scalarTime; – <vrijeme,vrijednost>
SortedMap<Map<Integer, Integer>, Integer> vectorTime; – <skup parova <id,count>,vrijednost>
Onda sam to kroz milijun raznih threadova i referenci držala u glavnoj klasi senzora i dodavala u njih svaki put kad je nešto poslano/stiglo.
Za vectorTime SortedMap sam napisala Comparator pa da se automatski sortira odma kod unosa.


WickyWinslow

Karlovsky120 Ne znam ništa za treći labos osim da su spomenuli docker da će kao biti ali za ovaj sada trebaš se spojiti na kafka broker port (default je 9092) osim ako nisi drugacije naveo u server.properties. Tradicionalno se za administraciju kafke koriste komandno linijski alati kao sto je vjerojatno navedeno u quickstartu ili neki GUI koji se ili placa ili neka free verzija koju treba nadodati. UDP se koristi za komunikaciju između nodeova (gdje kafke nije bitna). Za oznake vremena nemam blage.


RogerRoger

Vjerojatno glupo pitanje, ali kako implementirati primanje potvrde?
socket.receive() je blokirajuća metoda i ako nakon slanja paketa server ostavim da čeka potvrdu, a potvrda se izgubi negdje u mreži, neće li on čekati beskonačno dugo?


laranotreallycroft

RogerRoger
ja sam stavila i za primanje i slanje potvrde da se pokreće u novom threadu pa ne blokira


RogerRoger

laranotreallycroft da, ali blokira thread, što ne?
Imaš thread za slanje svog očitanja ostalim senzorima, kad pošalje paket s očitanjem, stvori novi thread koji čeka potvrdu (jesam dobro shvatio?), ali taj novi thread može zapeti beskonačno dugo ako se potvrda izgubila u mreži.
Metoda receive() nema nikakav timeout parametar, a po defaultu je na socketu postavljeno na inf (blokiranje bez timeouta).


ruza0001

Karlovsky120 ja ni pokrenut nemogu jer ne koristim windows, a ofc da su upute samo za to napisali…


in1

rozy Možeš preko dockera, installiraš docker i pratiš ovo: https://developer.confluent.io/quickstart/kafka-docker/. Prva 3 koraka su bitna.


ruza0001

imam vec docker tako da jako najs, hvala tii


Sljedeća stranica »