Gerai naudojamas „Akka“

Girdėjau daug nesąmonių dėl „ Akka“ sistemos („Java“ / „Scala“ paslaugų platformos), tačiau dar nemačiau daug realių naudojimo pavyzdžių, dėl kurių tai būtų naudinga. Todėl norėčiau žinoti, kad kūrėjai jį sėkmingai panaudojo.

Tik vienas apribojimas: neįtraukite pokalbių serverio rašymo. (kodėl? nes jis buvo naudojamas kaip pavyzdys daugeliui tokių dalykų)

515
20 дек. „StaxMan“ nustatė gruodžio 20 d. 2010-12-20 22:15 '10 10:15 val. 2010-12-20 22:15
@ 12 atsakymų

Iki šiol jį labai sėkmingai panaudojau dviejuose tikruose projektuose. abu yra realaus laiko eismo informacijos lauke (eismas, kaip ir automagistralėse važiuojančiuose automobiliuose), platinamas keliuose mazguose, pranešimai tarp kelių šalių, patikimos „backend“ sistemos. Neturiu teisės pateikti išsamios informacijos apie klientus, kai gausiu, galbūt ją galima pridėti kaip nuorodą.

Akka iš tikrųjų vykdė šiuos projektus, nors mes pradėjome nuo tada, kai buvo 0,7 versija. (Mes naudojame scala)

Vienas iš didžiausių privalumų yra tai, kaip lengvai galite sukurti veikėjų ir pranešimų sistemą, praktiškai be katilų, jis labai gerai matuojamas be visų rankiniu būdu sukeltų sunkumų, ir jūs gaunate asinchroninį pranešimą, kuris tarp objektų eina beveik nemokamai.

Tai labai gerai modeliuoti bet kokio tipo asinchroninį pranešimų apdorojimą. Norėčiau šį stilių parašyti bet kokio tipo (žiniatinklio paslaugų) sistemą nei bet kuris kitas stilius. (Ar jūs kada nors bandėte parašyti asinchroninę žiniatinklio paslaugą (serverio pusę) su JAX-WS? Todėl sakyčiau, kad bet kuri sistema, kuri nenori pakabinti ant vieno iš jo komponentų, nes viskas yra netiesiogiai vadinama sinchroniniais metodais ir kad vienas komponentas blokuoja kažką. Jis yra labai stabilus, o sprendimas „nesėkmė nuo nelaimingo atsitikimo“ + „dispečeris“ į nesėkmę tikrai veikia gerai. Viskas yra lengvai programuojama ir nėra sunku atlikti vieneto bandymą.

Tada yra keletas puikių priedų. „Camel“ modulis tikrai gerai jungiasi su „Akka“ ir suteikia tokį paprastą asinchroninių paslaugų kūrimą su pritaikomais parametrais.

Labai džiaugiuosi sistema ir tapau standartine prijungtų sistemų defacto sistema.

273
21 дек. atsakymą pateikė Raymond Roestenburg 21 d. 2010-12-21 01:17 '10 ne 1:17 2010-12-21 01:17

Atsakomybės apribojimas: aš esu PO už Akka

Be pasiūlymo, lygiagrečiai smorgasbord, kuris yra daug lengviau pagrįstas ir teisingas (aktoriai, agentai, duomenų srauto suderinamumas) ir naudojant lygiagretumo kontrolę STM forma.

border=0

Štai keletas naudojimo atvejų, kuriuos galite apsvarstyti:

  • Sandorių apdorojimas (internetiniai žaidimai, finansai, statistika, tarifai, socialiniai tinklai, telekomunikacijos, ...)
    • mastelio keitimas, mastelio keitimas, gedimų toleravimas / HA
  • „Backend“ paslauga (bet kuri pramonė, bet kokia programa)
    • REST, SOAP, cometd ir tt
    • veikia kaip pranešimų / integracijos centrų lygis
    • mastelio keitimas, mastelio keitimas, gedimų toleravimas / HA
  • Suderinamumas / lygiagretumas (bet kokia programa)
    • Teisė
    • Lengva veikti ir suprasti
    • Tiesiog pridėkite bankų į esamą JVM projektą (naudokite „Scala“, „Java“, „Groovy“ arba „JRuby“)
  • Partijos apdorojimas (bet kuri pramonė)
    • Camel integracija prisijungti prie paketinių duomenų šaltinių
    • Aktoriai suskaido ir užfiksuoja paketų apkrovas
  • Ryšio centras (telekomunikacijos, žiniasklaidos priemonės, mobiliosios medijos)
    • mastelio keitimas, mastelio keitimas, gedimų toleravimas / HA
  • Žaidimų serveris (internetiniai žaidimai, statymai)
    • mastelio keitimas, mastelio keitimas, gedimų toleravimas / HA
  • BI / duomenų analizė / bendrosios paskirties krizė
    • mastelio keitimas, mastelio keitimas, gedimų toleravimas / HA
  • čia įterpti kitus malonaus naudojimo atvejus.
188

Mes naudojame „Akka“ asinchroniniam REST skambučių tvarkymui - kartu su asinchroniniu žiniatinklio serveriu („Netty“) galime pasiekti 10 kartų geresnį vartotojų skaičių, aptarnaujamą mazge / serveryje, lyginant su tradiciniu srautu kiekvienam naudotojo užklausos modeliui.

Pasakykite savo viršininkui, kad jūsų AWS prieglobos sąskaita sumažės 10 kartų, o tai nėra lengva! Shh ... nesakykite „Amazon“, nors ... :)

34
17 нояб. Atsakymas pateikiamas piotrga 17 lapkričio. 2012-11-17 18:10 '12, 18:10, 2012-11-17 18:10

Jei atšaukiate pokalbių serverį iki lygio, gausite atsakymą.

Akka teikia pranešimų sistemą, kuri yra panaši į „Er>

Taigi pavyzdžiai yra dalykai, kuriems reikalingi skirtingi ilgaamžiškumo ir patikimų pranešimų siuntimo lygiai:

  • Pokalbių serveris
  • Tinklo lygis MMO
  • Finansinis siurblys
  • Pranešimų sistema „iPhone“ / mobiliesiems / bet kuriai programai
  • REST serveris
  • Galbūt kažkas panašaus į „WebMachine“ (atspėti)

Geras dalykas, susijęs su Akka, yra pasirinkimas, kurį jis suteikia taupymui, jo STM diegimui, REST serveriui ir klaidų tolerancijai.

Negalima nuliūdinti pokalbių serverio pavyzdžiu, manau, kad tai yra tam tikros klasės sprendimų pavyzdys.

Su visais puikiais dokumentais manau, kad ši erdvė yra tikslus klausimas, naudojimo pavyzdžiai ir pavyzdžiai. Turint omenyje, kad pavyzdžiai yra nereikšmingi.

(Rašydamas tik žiūrint vaizdo įrašus ir žaidžiant su šaltiniu, nieko nepadariau su akka.)

32
21 дек. atsakymas duotas tylerweir gruodžio 21 d. 2010-12-21 00:54 '10, 0:54, 2010-12-21 00:54

Mes naudojame „Akka“ dideliame „Telco“ projekte (deja, negaliu atskleisti daugelio detalių). Akka aktyvūs nariai yra dislokuojami ir pasiekiami nuotoliniu būdu naudojant žiniatinklio programą. Taigi, mes turime supaprastintą RPC modelį, pagrįstą „Google“ protobuffer, ir mes pasiekiame lygiagretumą naudojant „Akka Futures“. Iki šiol šis modelis veikė puikiai. Viena pastaba: mes naudojame „Java“ API.

32
21 дек. atsakymą pateikė Luciano Fiandesio . 2010-12-21 15:34 '10, 15:34, 2010-12-21 15:34

Mes naudojame „Akka“ keliose projektuose darbe, iš kurių įdomiausia yra susijusi su automobilių remontu. Visų pirma Jungtinėje Karalystėje, bet dabar ji platinama Jungtinėse Amerikos Valstijose, Azijoje, Australijoje ir Europoje. Mes naudojame dalyvius, kad būtų užtikrinta, jog informacija apie nelaimės atsigavimą būtų teikiama realiu laiku, kad būtų užtikrintas saugus ir ekonomiškas transporto priemonių remontas.

Klausimas su „Akka“ iš tikrųjų yra daugiau „ką jūs negalite daryti su„ Akka “. Jo gebėjimas integruotis su galingomis sistemomis, jos galingomis abstrakcijomis ir visais atsparumo aspektais daro jį labai išsamų įrankių rinkinį.

21
21 дек. Atsakymas pateikiamas rossputin 21 d. 2010-12-21 18:55 '10, 18:55, 2010-12-21 18:55

Akka galite naudoti keliems skirtingiems dalykams.

Dirbau tinklalapyje, kur perkeliau technologijų steką į „Scala“ ir „Akka“. Mes jį panaudojome beveik viskas, kas įvyko svetainėje. Net jei manote, kad pokalbio pavyzdys yra blogas, jie visi iš esmės yra tokie patys:

  • Tiesioginiai atnaujinimai svetainėje (pavyzdžiui, nuomonės, mėgstami, ...)
  • Rodyti komentarus realiu laiku
  • Pranešimų paslaugos
  • Paieška ir visos kitos paslaugos

Visų pirma, tiesioginiai atnaujinimai yra paprasti, nes jie susilieja su tuo, kad pokalbių pavyzdys yra. Dalis šios paslaugos yra dar viena įdomi tema, nes galite tiesiog naudoti nuotolinius vykdytojus, ir net jei jūsų programa nėra suskirstyta į grupes, ją galite lengvai įdiegti skirtingose ​​mašinose.

Aš taip pat naudoju „Akka“ PCR automatinio važiavimo taikomojoje programoje su idėja, kad galiu skaluoti nuo nešiojamojo kompiuterio iki duomenų centro. Kuo daugiau duosite, tuo geriau bus rezultatas. Tai labai sunku įgyvendinti, jei bandote naudoti įprastą sutapimą, nes „Akka“ taip pat suteikia jums vietos skaidrumą.

Šiuo metu, kaip laisvalaikio projektas, sukuriu interneto struktūrą, kurioje naudojami tik dalyviai. Vėlgi, nauda yra mastelio keitimas iš vienos mašinos į visą mašinų grupę. Be to, naudojant į žinią orientuotą požiūrį, jūsų programinė įranga orientuota nuo pat pradžių. Jūs turite visus šiuos gražus komponentus vienas su kitu, bet nebūtinai žinodami vienas kitą, gyvenantys toje pačioje mašinoje, net tame pačiame duomenų centre.

Ir kadangi „Google Reader“ uždarė, pradėjau skaityti RSS, žinoma, naudojant „Akka“. Mano nuomone, tai yra suapvalintos paslaugos. Apibendrinant: paties aktoriaus modelis yra tai, ką turėtumėte pirmas priimti, o „Akka“ - tai labai patikima struktūra, padedanti suprasti ją su daugeliu privalumų, kuriuos galėsite pasiekti.

20
09 авг. Joa Ebert atsakymas, rugpjūčio 9 d. 2013-08-09 15:00 '13 15:00 val. 2013-08-09 15:00

Naudojame akka su kupranugariu, kad galėtume platinti savo analizę ir tendencijų apdorojimą „ twimpact.com“ . Mes turime apdoroti nuo 50 iki 1000 pranešimų per sekundę. Be daugelio mazgų apdorojimo su kupranugariu, jis taip pat naudojamas darbui platinti vienu procesoriumi su keliais darbuotojais maksimaliam našumui. Jis veikia gerai, tačiau reikalauja tam tikro supratimo, kaip tvarkyti grupes.

17
21 дек. atsakymą pateikė Matthias L. Jugel 21 d. 2010-12-21 16:10 '10, 16:10, 2010-12-21 16:10

Aš bandžiau savo rankas ant Akkos (java api). Bandžiau lyginti lygiagretumo modelį su „acc-actor“, atsižvelgiant į Java modelį (java.util.concurrent).

Naudojimo atvejis buvo paprastas kanoninis žemėlapis, sumažinantis simbolių skaičiaus įgyvendinimą. Duomenų rinkinys buvo atsitiktinai sugeneruotų styginių rinkinys (400 simbolių ilgio) ir skaičiuojamas jų balsių skaičius.

„Akka“ aš naudoju „BalancedDispatcher“ (apkrovos balansavimui tarp sriegių) ir „RoundRobinRouter“ (siekiant apriboti mano veikėjų galimybes). „Java“ naudojome paprastą šakutės sujungimo techniką (įgyvendinta be darbo algoritmo vagystės), kuris padėtų susieti žemėlapį / sumažinti našumą ir sujungti rezultatus. Tarpiniai rezultatai buvo atlikti blokavimo eilėse, kad galimas sujungimas būtų kuo lygiagretesnis. Galbūt, jei neklystu, tai kažkaip pakeis Akka veikėjų „pašto dėžutės“ sąvoką, kur jie gaus pranešimus.

Stebėjimas: Iki vidutinių apkrovų (~ 50 000 įvesties linijų) rezultatai buvo panašūs, šiek tiek skirtingi skirtingose ​​iteracijose. Tačiau, kai padidinome apkrovą iki ~ 100 000, jis pakabino „Java“ sprendimą. Šioje būsenoje aš sukonfigūravau „Java“ sprendimą su 20–30 gijų, ir jis visose iteracijose nepavyko.

Padidinus apkrovą iki 1 000 000, Akka buvo mirtinas. Šį kodą galiu pasidalinti su kitais, kurie domisi kryžminiu patikrinimu.

Taigi, man atrodo, kad Akka gerokai geriau nei tradicinis „Java“ sprendimas. Ir tikriausiai priežastis yra ta, kad pagal Scala gaubto magiją.

Jei aš galiu modeliuoti probleminę sritį kaip įvykį, kuris yra perduodamas įvykiui, manau, kad Akka yra geras pasirinkimas JVM.

Atliktas testas: „Java“ versija: 1.6 IDE: „Eclipse 3.7“ „Windows Vista 32 bit“. 3 GB. „Intel Core i5“ procesorius, 2,5 GHz

Atkreipkite dėmesį, kad bandyme naudojamas probleminis domenas gali būti aptartas ir bandžiau būti tokie pat teisingi kaip „Java“ žinios: -)

16
21 июня '12 в 23:37 2012-06-21 23:37 atsakymas duotas sutanu dalui birželio 21 d., 12 val. 23:37 2012-06-21 23:37

Mes naudojame Akka verbalinių pokalbių sistemose ( primetalk ). Tiek viduje, tiek išorėje. Norint vienu metu paleisti didelį skaičių telefono ryšio kanalų viename mazgo klasteryje, akivaizdu, kad reikia turėti keletą sriegių struktūrą. Akka veikia puikiai. Turėjome ankstesnį košmarą su java-sutikimu. O su Akka, atrodo, yra sūpynės - tai tiesiog veikia. Patikimas ir patikimas. 24 * 7, be sustojimo.

Kanalo viduje yra realaus laiko įvykių srautas, apdorojamas lygiagrečiai. Visų pirma: - ilgalaikis automatinis kalbos atpažinimas - atliekamas dalyvaujant aktoriui; - garso duomenų gamintojas, kuris sujungia kelis garso šaltinius (įskaitant sintezuotą kalbą); - Tekstas į kalbą yra atskiras dalyvių rinkinys, bendrai naudojamasi kanalais; - semantinis ir žinių apdorojimas.

Sudaryti sudėtingus signalų apdorojimo ryšius, mes naudojame „ SynapseGrid“ . Jis turi pranašumą, nes duomenų rinkimas yra sudėtingas žaidimų sistemas.

15
09 авг. atsakymą pateikė Arseniy Zhizhelev 09 rug . 2013-08-09 10:36 '13, 10:36, 2013-08-09 10:36

Neseniai įgyvendinau kanoninio žemėlapio rodymo pavyzdį Akka: žodis. Taigi tai yra vienas „Akka“ naudojimo atvejis: geresnis našumas. Tai buvo JRuby ir Akka eksperimentas, o ne kitas, bet taip pat rodo, kad Akka yra ne tik „Scala“, ar „Java“: ji veikia visomis kalbomis ant JVM.

13
21 дек. Atsakymas duotas Daniel Ribeiro 21 d. 2010-12-21 15:48 '10, 15:48, 2010-12-21 15:48

Kiti klausimai apie „ žymenis arba „ Klauskite“