Live blogging – zašto je to tako komplicirano ili kako postaviti dobar “live blogging” sustav

Toni Milovan

Objavljeno 10.06.2009. Objavio/la: Toni Milovan
U sekciji Škola, Članci | 20 Komentara


MacKorisniik postoji već skoro dvije godine i tijekom tog vremena popratili smo sve Apple-ove evente. Uz svako praćenje “eventa” postavljalo se pitanje zašto ne postavimo nekakav “live refresh” stranice kao što to imaju svi respektabilniji blogovi. Sad smo ga napokon implementirali, a ja ću (da ne odgovaram svima koji su pitali pojedinačno) ovdje pokušati opisati zašto to nije tako jednostavno kako se na pri pogled čini i kako to napraviti kako treba.

Klasičan pristup “live refreshu” je ili postaviti Javascriptu koja će u jednakim razmacima kod posjetitelja automatski ponovo učitati cijelu stranicu, ili koristiti “Ajax” za osvježavanje samo određenog dijela web stranice bez potrebe za stalnim učitavanjem cijelog sadržaja.

Oba pristupa rade dobro u slučajevima kad nemamo puno posjetitelja istovremeno, ili kad imamo server sa jako puno RAM-a na raspolaganju obzirom da oba zahtjevaju Apache proces za svaki zahtjev od strane posjetitelja. Jasno je da MacKorisniku ne odgovara ni jedan od navedenih primjera jer je u ponedjeljak npr., na samom početku “eventa” bilo na “stream” prijavljeno više od 480 različitih klijenata, a naš dupli VPS server od 512MB može poslužiti svega 25 procesa istovremeno. U takvoj situaciji, kad svi refreshamo stranicu s člankom ili imamo aktivan “Ajax request”" vrlo brzo dođe do potpunog zagušenja sustava, što smo u ponedjeljak i mogli osjetiti u dva navrata. To je i razlog što do sada nismo ni pokušavali s “live refreshom” jer je ručno osvježavanje stranice ipak manje opterećivalo sustav od automatskog.

Kako onda uopće postaviti takav sustav?

Rješenje je u odvajanju sustava za posluživanje stranica, od sustava za live komentare. To znači da nam treba dodatni web server koji će na sebe preuzeti live dio objavljivanja. Taj dodatni server ne može biti Apache jer je njegov “memory footprint” po procesu 30 do 50MB, a nama treba nešto što može posluživati na stotine zahtjeva istovremeno.

Na sreću, za WordPress postoji “Live blogging” plugin koji radi sa Meteor serverom. Meteor je pak specijalizirani web server napisan u Perlu koji ima vrlo male zahtjeve za resursima, a napravljen je da poslužuje relativno kratke i nezahtjevne sadržaje velikom broju spojenih klijenata. Na jednom portu Meteor prima poruke od kontrolera (u našem slučaju Lukine postove i vaše komentare) i prosljeđuje ih svim klijentima koji “ajaxom” (zapravo XMLHTTPRequest -om) “slušaju” što će ovaj objaviti, te ih umeću u web stranicu bez njenog učitavanja.

Meteor radi toliko dobro da je za vrijeme eventa njegov proces trošio oko 1% raspoloživih resursa na spomenutom VPS serveru.

Dva su problema s Live blogging pluginom i Meteorom. Prvi je što je njihovo konfiguriranje dosta slabo dokumentirano, a drugi što Meteor server, ako želimo da odgovara na zahtjeve koji dolaze sa stranice koju je poslužio Apache, mora raditi na istom portu kao i taj Apache server. To znači da ćemo, stavimo li ga na isto računalo s Apachem morati koristiti i nekakav firewall koji će preusmjeravati promet na portu 80 po potrebi prema Apache-u ili prema Meteoru.

Mi smo odabrali drugi pristup i Meteor instalirali na drugo računalo (ono koje je inače MacKorisnikov database server), tako da smo Apache imali na jednom, a Meteor na drugom poslužitelju. Valja ovdje reći da drugo računalo mora biti u istoj domeni kao i glavni web poslužitelj jer će u suprotnom većina web preglednika zbog jer ćemo tako najlakše izbjeći “cross site scripting” ograničenja. odbiti prikazati Meteorove poruke.

Kako je ovo dosta slabo dokumentirano ponoviti ću: Meteor nije dovoljno samo instalirati i pokrenuti sa zadanim postavkama, već mu treba podesiti Controllerport na 81 i Subscriberport na 80, tako da ga npr. pokrenemo ovom naredbom:

./meteord -d -SubscriberPort 80 -controllerport 81

Isto tako Meteor *MORA* biti da istoj domeni kao i glavni site. Dakle ako je glavni site na adresi http://www.mackorisnik.com, Meteor mora biti na http://nesto.mackorisnik.com ako je na drugom računalu, a ako je na istom računalu moramo imati firewall koji će na portu 80 znati preusmjeriti promet prema odgovarajućoj aplikaciji .

Kad Meteor jednom proradi, potrebno je još na WordPress instalirati Live Blogging plugin, podesiti ga prema uputama i “live bloging” može početi. Sada je dovoljno da svaki posjetitelj jednom učita stranicu, a Javascript na toj stranici će redovito slati zahtjeve za novim sadržajem Meteor serveru bez da opterećuje glavni poslužitelj, ostavljajući resurse slobodne za objavanje live sadržaja, komentara i za nove posjetitelje.

Razlog zašto smo mi na početku eventa ipak zapeli je u tome što su mnogi korisnici uz ovo i dalje ručno “refresh-ali” stranicu što je dodatno opteretilo poslužitelj.

Eto, nadam se da će ovo objašnjenje pomoći onima koji su pitali, a i da je ostalima bilo koliko-toliko zanimljivo iako je skroz “off-topic”.

Ako imate pitanja, pitajte :) .

Linkovi:
Live blogging WordPress plugin
Meteor server


Tagovi: ,

 

Komentari:

20 komentara na “Live blogging – zašto je to tako komplicirano ili kako postaviti dobar “live blogging” sustav”

  1. beli u 00:04, 11.06.2009.

    ej, ljudi, super ste odradili posao.
    bez ovog mjesta crna rupa u mom lajfu.
    dugogodisnji sam macovac, i to je nacin razmisljanja i zivota.
    prosurfavao svukuda, i jedino ovdje imam taj filind da sam doma, na sigurnom.
    stvarno.
    nastavite tako, jer hardware i software trebaju ljude iz trece recenice.
    bravo i hvala.

    Slažem se/Ne slažem se: Thumb up 0 Thumb down 0 (0) Za ocjenjivanje komentara morate biti registrirani korisnik.
  2. Josip u 01:07, 11.06.2009.

    Bit će bolje do godine ! :)

    Slažem se/Ne slažem se: Thumb up 0 Thumb down 0 (0) Za ocjenjivanje komentara morate biti registrirani korisnik.
  3. Stjepko u 09:17, 11.06.2009.

    Super zanimljiv i koristan post.
    Tnx.

    Slažem se/Ne slažem se: Thumb up 0 Thumb down 0 (0) Za ocjenjivanje komentara morate biti registrirani korisnik.
  4. Ante Vekic u 10:47, 11.06.2009.

    a twitter?

    Slažem se/Ne slažem se: Thumb up 0 Thumb down 0 (0) Za ocjenjivanje komentara morate biti registrirani korisnik.
  5. Vanja T. u 11:08, 11.06.2009.

    Fuj twitter.

    Slažem se/Ne slažem se: Thumb up 0 Thumb down 0 (0) Za ocjenjivanje komentara morate biti registrirani korisnik.
  6. Luka Sučić u 11:15, 11.06.2009.
    Luka Sucic

    Imamo i twitter kalan @Mackorisnik, ali priroda twittera nije baš pogodna za ovakve evente, previše updateova koji bi zasigurno zasmetali svima koji followaju mackorisnik. Iako meteor ima opciju i paralelnog publishanja na twitter.

    twitter > all , vanja :)

    Slažem se/Ne slažem se: Thumb up 0 Thumb down 0 (0) Za ocjenjivanje komentara morate biti registrirani korisnik.
  7. Vedran u 12:18, 11.06.2009.

    @Luka – bizaran prijedlog. Otvorite acc MackorisnikLive na twitteru za ovakve stvari. :-)

    Slažem se/Ne slažem se: Thumb up 0 Thumb down 0 (0) Za ocjenjivanje komentara morate biti registrirani korisnik.
  8. Ante Vekic u 19:05, 11.06.2009.

    pa da… bilo kakav dodatni acc otvorite, u wordpress ukopčate neki twitter plugin i eto liveblogginga ;)

    Slažem se/Ne slažem se: Thumb up 0 Thumb down 0 (0) Za ocjenjivanje komentara morate biti registrirani korisnik.
  9. Toni Milovan u 12:16, 12.06.2009.
    Toni Milovan

    @Ante: ako želimo da se event prati tu na sajtu, a ne na twitteru ni jedan twitter plugin ne rješava gore opisane probleme vezane uz automatsko refreshanje.

    Slažem se/Ne slažem se: Thumb up 0 Thumb down 0 (0) Za ocjenjivanje komentara morate biti registrirani korisnik.
  10. fokstrot aLfa kiLo u 01:35, 13.06.2009.

    Je Li MOGUĆE da su ovo uspiLi prošvercati bez imaLo haLabuke i veseLja?!?!?!
    POGLEDAJTE oVAJ LINK LJUDI i onda upišite “muLti-touch” pretraživač stranice

    http://www.apple.com/macosx/refinements/enhancements-refinements.html

    Za one kojima se ne da, citiram:
    “Multi-Touch gestures in
    older Mac models.
    ALL (!!) Mac notebooks with Multi-Touch trackpads now support three- and four-finger gestures.”

    :D :D :D :D :D :D

    Slažem se/Ne slažem se: Thumb up 0 Thumb down 0 (0) Za ocjenjivanje komentara morate biti registrirani korisnik.
  11. barecomb u 17:20, 13.06.2009.

    Daj maknite ovog milovana više, dosadan je u PM!!!!!!!!!

    Nek Luka piše, a milovan nek se ode milovat negdje dosada jedna živa.

    Slažem se/Ne slažem se: Thumb up 0 Thumb down 0 (0) Za ocjenjivanje komentara morate biti registrirani korisnik.
  12. Luka Sučić u 18:21, 13.06.2009.
    Luka Sucic

    Vlatko, molim te budi pristojan. Većinu ljudi zanimaju ovakve stvari a između ostalog i mene.

    Slažem se/Ne slažem se: Thumb up 0 Thumb down 0 (0) Za ocjenjivanje komentara morate biti registrirani korisnik.
  13. Toni Milovan u 18:31, 13.06.2009.
    Toni Milovan

    Erm… hvala na iskrenoj kritici :) .

    Slažem se/Ne slažem se: Thumb up 0 Thumb down 0 (0) Za ocjenjivanje komentara morate biti registrirani korisnik.
  14. Barecomb u 21:35, 13.06.2009.

    Ispričavam se na neukusnom i nepotrebnom komentaru. Napisan je u afektu. Naime umro mi je mačić na rukama pa sam prilično loše volje.

    Ja ustvari nisam uopće Mac korisnik. Samo sam iPhone korisnik, što me čini pripadnikom porodice Jabuka frikova, ali ipak ne i kompetentnim da komentiram članke koji me ne zanimaju. Barem sad dok nemam svoj Mac.

    Ljudi u afektu najčešće govore ono što stvarno misle, no ne mislim da je čovjek dosadan, samo mi na neki način fali iPhone hype-a. To je sve.

    Još jednom isprike.

    Slažem se/Ne slažem se: Thumb up 0 Thumb down 0 (0) Za ocjenjivanje komentara morate biti registrirani korisnik.
  15. Luka Sučić u 22:19, 13.06.2009.
    Luka Sucic

    Cijenim ovako iskrene odgovore, a vjerujem da ni Toni nije uzeo za zlo. Bit će iPhone hypea opet ne brini. Sutra ide članak detaljan članak o novostima u 3.0 a i imat ćemo i recenziju iPhone 3GS odmah nakon puštanja u prodaju ( opet prvi::)

    Slažem se/Ne slažem se: Thumb up 0 Thumb down 0 (0) Za ocjenjivanje komentara morate biti registrirani korisnik.
  16. fokstrot aLfa kiLo u 02:13, 14.06.2009.

    Ma, jeste vi Ljudi ČORAVI?! :D :D
    Zar nitko nije vidia šta san posta’ gori?! :D
    Gamad je 2 godine napLaćivaLa nešto šta je naš hardver podržava!
    zato su to baciLi onako ispod tepiha!

    http://img.skitch.com/20090614-8bkyui72aiu3dc6bp8ebyt1323.jpg

    Slažem se/Ne slažem se: Thumb up 0 Thumb down 0 (0) Za ocjenjivanje komentara morate biti registrirani korisnik.
  17. Toni Milovan u 11:28, 14.06.2009.
    Toni Milovan

    Pa, malo je offtopic, a i nisam siguran da razumijem kako su to misliš da su to posebno naplaćivali? Posebno zato što ne znam nikoga tko bi kupio novo računalo samo zbog multitouch podrške… :)

    Slažem se/Ne slažem se: Thumb up 0 Thumb down 0 (0) Za ocjenjivanje komentara morate biti registrirani korisnik.
  18. fokstrot aLfa kiLo u 01:04, 15.06.2009.

    @Toni Milovan heh, samo zato šta ti nikoga neznaš nemora značit da to Ljudi nisu masovno radiLi… eto ja baš masu Ljudi šta znan koji su u zadnjih godinu dana kupovaLi MacBook odLučiLi su se na aLuminijski i muLtitouch im je bio jedan od gLavnih argumenata…

    btw., ti isti Ljudi su žeLjeLi muLtitouch na Laptopu zato šta su ga iskusiLi na mobiteLu (čitaj – iPhoneu), a njega su kupiLi isto tako radi muLtitoucha koji je jedina napredna stvar na tom uređaju…
    :/
    zato stojim iza toga da su namjerno napLaćivaLi “gestures” kao funkciju naprednih Laptopa i kao nešto šta triba MASNO nadopLatit… jer, ruku na’srce, aLuminijski MacBook je jedino po tome boLji od bijeLog i po apa-so-Lutno ničemu drugom
    tačka.

    Slažem se/Ne slažem se: Thumb up 0 Thumb down 0 (0) Za ocjenjivanje komentara morate biti registrirani korisnik.
  19. Toni Milovan u 15:45, 15.06.2009.
    Toni Milovan

    @Foxtrot: evo mislim da ovo pojašnjava situaciju: http://www.hurl.ws/39ur

    Slažem se/Ne slažem se: Thumb up 0 Thumb down 0 (0) Za ocjenjivanje komentara morate biti registrirani korisnik.
  20. fokstrot aLfa kiLo u 16:27, 16.06.2009.

    hvaLa Toni, sad sve ima smisLa :)

    Slažem se/Ne slažem se: Thumb up 0 Thumb down 0 (0) Za ocjenjivanje komentara morate biti registrirani korisnik.

Ostavi komentar




Pretplati se na odgovore bez komentiranja članka:

Tagcloud:



RSS

Newsletter

Vidi top 100