Gå til innhold

Webkafeen


Anbefalte innlegg

Folket her som har studert Java/andre-statiske-språk på høgare institusjonar: Korleis blei det anbefalt å utvikle message brokers/processors? Asynkront/synkront? Emnebasert eller innholdsbasert?

 

Driv med eit lite system i Python som ser ut til å fungere ganske så bra. Minnebruken er omtrent statisk på 4mb, sjølv om eg store kaster tekstfiler på den. Ein jobb har prioritet 1-4, kor 1 er høgaste prioritet utan moglegheit for å miste data. Her har vi dobbellagring (både minne og database), slik at jobben alltid blir fullført. Dei andre prioritetane ligg kun i minnet, men køene blir sjeldnare sjekka til lavare prioritet.

 

Prosessen fungerer no slik:

  • Prosess blir sendt til ein `descriptor´, som avgjer prioritet på jobben, og legg ved metadata som fortel kva for ein ´worker´ som skal ta seg av jobben. Jobben blir lagt i kø
  • Serveren køyrer som ein daemon, og sjekker dei forskjellige prioritetskøene. Om den finn ein jobb prøver den å dekode key/value-paret slik at den finn ut kva for ein ´worker´som skal ta seg av dataene
  • Serveren sender jobben til den korrekte map/reduce-funksjonen asynkront, og går vidare

Heile systemet køyrer på memcached, så det er lynkjapt i tillegg.

 

Ser dette OK ut? Er det noko vesentleg som manglar? Kva hadde dykk gjort annaleis?

Endret av Henrik Lied
Lenke til kommentar
Videoannonse
Annonse
Folket her som har studert Java/andre-statiske-språk på høgare institusjonar: Korleis blei det anbefalt å utvikle message brokers/processors? Asynkront/synkront? Emnebasert eller innholdsbasert?

 

Ser dette OK ut? Er det noko vesentleg som manglar? Kva hadde dykk gjort annaleis?

 

Ingen anelse. Har ikkje vert borti ein tøddel av nettverksapplikasjonar i Java foreløpig. Akkurat for Java sitt tilfelle er der sikkert tusenvis av ferdige klassar å bruke til ein del av det du vil der som ville gjort jobben, though.

Lenke til kommentar
Her har vi dobbellagring (både minne og database), slik at jobben alltid blir fullført.

...

Ser dette OK ut? Er det noko vesentleg som manglar? Kva hadde dykk gjort annaleis?

Er ikke helt sikker på hvordan du har implementert det, men for å være helt sikker på at en jobb alltid blir fullført må vel workeren returnere en status før meldingen fjernes, i tilfelle den skulle bli avbrutt. Message-systemet jeg benytter løser dette ved at workerne selv poller køen, låser meldingen (med en viss timeout), og sier fra når de er ferdige om de blir .

 

Om jeg forstod deg rett gjør dere det slik:

Sender => Kø => Prosessor => Worker

 

mens jeg gjør det slik:

Sender => Kø (med adgangskontroll/timer) <= Worker

 

Men ved å lytte på statusmeldinger kan dere antageligvis oppnå samme garanti. Ellers er jo dataredundans i køen en måte å øke sikkerheten ytterlige på. Uansett virket det som du har lagd et rimelig bra messaging-system.

Lenke til kommentar

Hvor stor sikkerhet har du?

Hvis det er type ett prosjekt bare ville jeg kanskje prøvd meg opp mot 60$

 

Men nå er vel lønningene i statene gennerelt dårligere enn Norge

Og du har kanskje ikke mest med utdannelse og erfaring?

-

 

Nå sitter jeg på hytta i soon og har det fantastisk.

Var 21.2 grader i vannet igår og bare sol.

 

Allerede vært og fikset stupetårnet idag morges :D

Lenke til kommentar
Det heter Son.

Neida, de som kjenner Soon, skriver det sån ;)

 

Nå sitter jeg på hytta i soon og har det fantastisk.

Var 21.2 grader i vannet igår og bare sol.

 

Allerede vært og fikset stupetårnet idag morges :D

Snakker vi Son i Vestby? Det er ikke så alt for langt unna meg, det :)

Det gjør vi,og jeg er kjempestekt idag!

 

Ligner på han på reklamen!

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...