
così uno della cosa comune ho voluto
risolvi tra le cose più importanti
era che volevo avere un modo
di ridimensionamento sia verso l’alto che verso l’esterno
essenzialmente entrambi scalando in alto intendo
ridimensionamento o Hardware in scala in a
singola macchina su una scatola multi-core a destra
c’è anche il ridimensionamento è solo un
invece di avere più macchine come
stai avendo in scala come
orizzontalmente e sono nel vero
senso che stai effettivamente ridimensionando
bocca per più processori e ed io
significa che fai dove e quando
non dovrebbe davvero importare penso che ci sia
qualcosa che dovresti effettivamente
esternalizzare in una decisione di dispiegamento
questo fondamentalmente come dovrebbero essere le tue scuse
essere quello era una delle cose chiave del design
Volevo fare e che ero così che ho visto
manca la gente usa diverso
strumenti diversi prima per come trattare
con concorrenza e diversi strumenti per
occuparsi del calcolo distribuito
quindi come possiamo farlo adesso?
quindi usiamo qualcosa chiamato attori giusto
quando gli attori sono il tipo di comune
tema in tutto questo talk archivi mamma
è molto più di attori attrici uno
come lo chiamiamo uno strumento nella casella degli strumenti
è un ottimo strumento che intendo molto
applicazioni che usano i casi e tu puoi
quindi penso che l’ 80% di tutti i problemi sia così
Vedo là fuori usando attori ma il
l’altro 20% è difficile da risolvere con gli attori
non è un proiettile d’argento ed è per questo
abbiamo molti altri strumenti che farò
copertina ma alla fine basta citarli
brevemente ma questo costruisce pietra angolare in
ARCA è il suo messaggio che passa
valuta come chiama anche extra-base pro
base di programmazione extra-base quindi cosa io
significa bene quindi cos’è un attore, sì, lo sono
non parlando di attori come John
Goodman anche se intendo nel nostro team
abbiamo chiunque abbia un comune dei comuni per a
evento ricorrente in cui guardiamo questo
il film è il grande lebowski
invece quello che intendo è che così al
livello base un attore è il codice di utilizzo
l’unità di codice in un interno e attore
sistema e
naturalmente poi in akka che ha
somiglianze con il classico come je e
sur les session beans etc è un modello per
come organizzare il tuo codice esternalizzando
fuori come cose come le politiche di distribuzione
decisioni di implementazione nella configurazione
il file actor non è nulla di nuovo è stato
circa dal 1973 come coniato da Carl
Hewitt in un foglio per cercarlo più tardi se
sei interessato a nel
la storia era che era stata catturata
come a livello di mondo reale di
Erlang nei primi anni ’80 e lo era stato
usato per trent’anni
nel settore delle telecomunicazioni usando l’Erlang
linguaggio di programmazione e altri tipi di
più o meno lingue più oscure
giuste ma queste idee sono combo
estremamente sano indipendentemente da
implementazione e penso che loro
avrà molto da imparare lì nel
come abbiamo visto un problema in Java
Spazio aziendale e o Scala qualunque
intendiamo o c-sharp reverse
siamo ancora bloccati usando le idee e
strumenti e costrutti che sono come da allora
dal momento che intendo che stiamo iniziando a usare nel
Anni 60 fondamentalmente con Fortran e roba così
Penso che ci sia anche questo
davvero non nuove tecniche ci potrebbero essere
nuovo per molte persone ma sono vecchie
e dimostrato e ciò che gli attori danno
sei un modo di programmare ad un livello più alto
livello in modo da non lamentarmi a lungo
minaccia dei problemi con i thread e
serrature anche se potrei pensare solo a me
Lo lascerò solo a quello che penso
il modo in cui le persone fanno come noi
concurrency in Java e c-sharp c-sharp
Ambito C ++ è completamente rotto penso
è il modo assolutamente sbagliato di
avvicinarsi a un problema da quando siamo cosa
facciamo è che lavoriamo con le cose sono
fuoriuscita dal
sistema operativo giusto è il modo
sono i primitivi di livello più basso in
l’intera applicazione nel suo complesso
stack hardware effettivamente in uso con
problema che si estende fino al
modello di programmazione e diventa il
il modo predefinito con cui affrontiamo i problemi
un’altra volta in altre aree in cui lavoriamo
musulmano
astrazioni molto più alte e penso che noi
necessità di elevare il livello di astrazione quattro
quattro quattro quattro quattro concorrenti
parallelismo e calcolo distribuito come
bene così invece di affrontare questo
tubature di basso livello di cui si è sicuri
fare quando lavori con
blocca e blocca ciò che invece fai
che pensi nel flusso di lavoro che sei
pensando a come è il mio messaggio
scorrendo nel sistema va bene
e questa è logica di business giusta
fondamentalmente più o meno almeno questo è
come I componenti interagiscono e come
come gli eventi come flusso e richiesta
risposta e cose del genere e se tu
fallo quando progetti il nostro sistema
questo preoccupa queste idee di flusso di lavoro allora
allora ottieni una risorsa estremamente buona
utilizzo si ottiene il parallelismo
la concorrenza si ottiene praticamente deadlock
codice gratuito a meno che non si blocchi effettivamente
su un livello concettuale sicuro se puoi
è possibile creare una situazione di stallo per l’altro
i tuoi messaggi trasmettono il sistema e quindi
allora in realtà poi mi hai pensato
significa fare quindi stupido il tuo pensiero
completamente sbagliato invece di quello senza
i tronchi morti dell’impianto idraulico per esempio in
l’abbraccio mortale si stringono dentro
l’acqua sbagliata giusta e loro mmm e
allora e la cosa cattiva con quello è quello
in Java se si verifica un deadlock in Java
poi hai perso due thread scusami
non c’è modo di tornare indietro, ma se tu se lo fosse
solo il flusso di lavoro che può introdurre
cose come Time House e uscire da
il problema ecc, quindi è fantastico
è anche al di sopra di tutta questa grandezza
che penso intendo con
concorrenza e vento e con il
rendimento estremamente elevato che puoi
ottenere come il Ludmila maxing sul vostro
l’hardware viene anche con penso che sia
modello superiore per affrontare il fallimento
gestione degli errori e ripristino degli errori
che vedremo dopo ok è anche
distribuibile dal design e in mano qui
viene loro voglio dire che è in realtà il
stessi strumenti gli stessi componenti che
si sta utilizzando può essere utilizzato per il ridimensionamento
e fuori a prescindere non c’è nulla di te
pensare a voi di scrivere il
componenti giusto e poi te
potrebbe capire se loro
Ron in lavorazione o se uno dei
le sorelle dovrebbero tornare su un’altra macchina
ecc abbiamo quello che viene chiamato posizione
la trasparenza va bene che non è così
importa dove sei dove i tuoi componenti
correre c’è qualcosa che può anche
cambia in runtime che il sistema può rilevare
che va bene questo componente non è idealmente
qui è fondamentalmente l’ unico utilizzo
risorsa qui quindi un sistema può effettivamente
sposta l’istanza della corsa
esempio al volo per il consumatore di
avvicinarlo al contesto è
effettivamente utilizzato in oo o nell’altro modo
in giro in modo da ottenere la scala e fuori come
libero come parte del modello se tu se tu
pensa e lavora in attori e io
penso che questo sia il tessuto perfetto per il
cloud in realtà corrisponde molto con
questo con caratteristiche simili a te
avere nel cloud computing hai a
sistema che è come ereditare elastico
gli attori possono andare e venire
come sa può andare e venire in cloud
calcolare un mondo molto dinamico che hai
tolleranza d’errore costruita a va bene così
i sistemi possono effettivamente guarire se stessi come noi
cercherò in seguito e abbiamo anche aggiunto
in cima al modello di azione molto di più o
meno concetti di alto livello come il carico
bilanciamento del routing pooling e di tutto il
cose di cui potresti aver bisogno okay
quindi dove è il nostro attualmente usato qui qui
è la selezione sorgente di alcuni alcuni
una sorta di alcune delle aziende che sono
attualmente usando ARCA e come puoi vedere
è come se fosse la grande varietà di
industrie che ti piacciono per le telecomunicazioni
avere l’ e-commerce hai indietro gli investimenti
nella simulazione dei dati del merchant banking
trading di scommesse su tutti i tipi di giochi
roba giusta anche più di questo
social media e TV e così via e il
tema comune attraverso tutti questi
industrie è che hanno dietro di loro
hanno bisogno di un alto rendimento basso
latenza con molto molto con molto alto come
il pizzo più stretto il pizzo sopra
la resilienza va bene quale è in realtà
tutta la ragione per il pieno per il
esistenza di vodka quindi cosa puoi usare
attori per se ora noi uomini proviamo a prendere
fare un passo indietro e come prendere ciò che già
conosci e prova a mapparlo ad un attore
okay, così puoi vedere un attore a
un po ‘come a volte come un filo
per esempio è brutto è molto brutto
commissario di paragone come vedremo
perché gli attori sono molto più leggeri di
discussioni e così via ma il concettuale
possono essere guardati un po ‘come a
thread fa un po ‘la macchina come un
istanza dell’oggetto o un normale raggiungere il tuo
componente possono essere utilizzati come callback
o l’ascoltatore userà la luce anonima
classe o chiusura può essere un singleton
o rappresentare una sorta di servizio che può
essere usato invece di essere solo un singolo
Africano come un rosso rappresenta un router
o fortunato può funzionare come bilanciamento del carico o
una piscina può essere molto simile alla tua
bean a messaggio o anche se
questo sta costringendo il modello piuttosto a
molto e può rappresentare un esterno
il servizio di elaborazione come il tracciamento
qualcosa del genere può essere uno stato
macchina come vedremo
così l’ attrice è davvero una bestia diversa
giusto può essere molte delle cose che noi
sappi che ci vuole davvero un po ‘
avvolgere la testa intorno a ciò che è veramente un
attore o che attore è davvero così se noi
fare anche un passo indietro, sì più indietro
e vedi voglio dire guardare le definizioni
bene fare ciò che è il modello dell’attore come a esso
come il suo marchio definito da Carl Hewitt the
ragazzo la storia che abbiamo inventato il modello così
è un attendente chiamarti è è un
unità fondamentale di computazione scusa
che incarna tre cose di elaborazione
questo è il comportamento della cosa che gira
le cose che eseguono cicli su on
la memoria giusta della cpu è lo stato
questa è la roba sul mucchio giusto
comunicazione queste sono le tre cose
che l’attore è il modello fonte o incarna
giusto e abbiamo tre diversi assiomi
quando un messaggio viene inviato a un attore e
in realtà può fare una delle tre cose
va bene, può creare nuovi attori che puoi
posso così ottenere i riferimenti al
nuovo pomeriggio a nuovi attori che puoi inviare
messaggi a l’attore che sa ed è
può anche diventare qualcos’altro che puoi
leggi se ti piace prova
formare i propri interni il proprio comportamento
la sua interfaccia così è così
qualcosa così è effettivamente girato
a se stesso per qualcos’altro per il prossimo
messaggio che quello che arriva e questo
l’ultima cosa è una specie di tutto
questo rende il modello medico così estremamente
dinamico e flessibile se guarderemo
più tardi , quindi se vuoi prenderli
come rompere questo in questi primi o
in questi come tre tre diversi
il diritto degli assiomi crea e diventa diventato
è come trasformare te stesso Sono
andando ad aggiungere una quarta che penso
appartiene nel modello attore pur
non è non fa parte di Carl Hewitt
o definizione originale e cioè
supervisionato è così che il modello di errore
come puoi gestire un fallimento un poliziotto
entra nella foto bene così se lo siamo
non vedremo come possiamo definire
un attore prima di iniziare a creare
usandoli la prima cosa che facciamo è quella
creiamo un messaggio il messaggio è a
Saluto classe laggiù ok
quindi un messaggio è l’attrice pubblica
API okay se questo è ciò che puoi fare
con un attore puoi mandargli questi
ai metodi piace pensare ai messaggi
che può essere visto il blocco dei metodi
in un’interfaccia giusta questo è ciò che il
l’attore espone quindi crea il tuo attore
e tu pensi che in Java sia solo un
classe normale vedi X che stai estendendo
il Nama chiama l’attore non codificato in naka
abbiamo due tipi di attori che eseguiamo digitati
nei tuoi attori dattilografati attori dattilografati
espone effettivamente una tipizzazione statica
interfaccia così alta che è molto di più
tipo di componente tipicamente staticamente
hai perso la legge perdi molto del
città dinamica nel modello con quello e
non è come il tipo tradizionale di
attore è più come l’attivo o un grande
modello ma alcune persone del genere, ma
Ora parlerò di loro
come originale il detrusore degli attori
che penso siano più o più loro
sono più potenti di così flessibili
l’unica cosa che devi fare quando tu
creare un attore è estendere il reale
inizia attore e poi te
sostituisci il loro metodo di ricezione se
hai visto il messaggio guidato da esso
sembra molto bene okay
ma non essere ingannato, gli attori sono molto di più
potente e hanno molto più ricco
semantica di messaggi trivia sono
non solo un richiamo come il fondamentalmente
il più importante bean message driven ZAR
così qui possiamo ricevere il
metodo il messaggio che ci sono stati inviati
quindi dobbiamo controllare che tipo di
messaggio che è in dentro in Java, abbiamo bisogno di
usa come tabella di esempio in Scala lì
sono altre API, devo solo dire questo
API sembra molto più pulito e Scala
ha pattern matching così effettivamente
ti permette di introspettare l’orbita proprio dentro
lì nel caso poi dichiarazione
direction.i in realtà possiamo sbirciare
l’oggetto direttamente e vincola certo
cose di cui non ho un esempio
ora da quando mi concentro sull’API Java ma
ma è it’s o nelle partite light di Scala
meglio penso con il vero modello dell’attore
da una prospettiva di sintassi ha di più
come lo zucchero sintattico per questo tipo di
le cose sostanzialmente vanno bene così ora abbiamo un
attore è fondamentalmente così se noi ora
crea un attore okay
gli attori sono estremamente leggeri come me
ha detto che non si può pensare a un attore uno a uno
con un filo su un attore ha circa 300
byte e quindi puoi creare
vicino a tre milioni di attori su uno
gigabyte di RAM questo significa che sei tu
bisogno di lasciare come modello le cose che è
estremamente difficile da modellare utilizzando thread
puoi facilmente avere come per esempio a
10 milioni di utenti simultanei in esecuzione in
il sistema allo stesso tempo che è
davvero difficile fare cose del genere
che usa i thread così anche un attore
incapsulamento molto forte ha molto
incapsulamento più forte rispetto alle classi o
istanze di classi in Java o C a
c-sharp
ci sono più vicini all’originale
definizione dell’orientamento dell’oggetto rispetto a
quindi le classi o le istanze così classi
destra
quindi incapsulano il comportamento dello stato come a
oggetto normale ma hanno anche un
la coda dei messaggi va bene, questo è ciò che chiamiamo
la casella di posta in modo che ogni attore abbia una casella di posta
dove tutti i messaggi stanno ricevendo
l’attore e finisce finisce proprio così come
possiamo creare un attore ora così noi per il
prima cosa che dobbiamo fare è che dobbiamo
creare il sistema dell’attore okay così noi
creare un sistema di attori che è dove il nostro
applicazione puoi pensarci a
un po ‘come fabbrica di fasci di luce se
hai usato per profondere la primavera o come me
non ricordo quasi ricordare dove sia
Cole questo contesto egb o qualcosa di te
hai bisogno che tu sia giusto così e poi quando tu
avere un sistema è possibile utilizzare un sistema di
per utilizzare tutti gli attori del metodo factory
attore o crea attori bene così dentro
questo ma in attore di te ne stanno passando due
le cose prima devono essere nel golf
articolo di configurazione oggetti di scena puoi essere un
tipo di configurazione abbastanza ricco lo faremo
usalo più tardi ma qui ti diciamo
di che colore che tipo di attore vogliamo
e anche noi diamo un nome
i nomi sono importanti in ARCA qui ora
Arriva un attore, non un noi questo
non restituisce l’istanza di saluto
attore qui ok e questo è molto
importante questo disaccoppiamento consente molto
delle cose prima è come la sicurezza
a cui vuoi aggiungere metodi pubblici
il saluto ap saluto attore e chiama
dal di fuori, come ignorando la
intero modello e tornare alla malvagità
e condividerà la concorrenza continua
non vogliamo quello ed è per questo che noi
restituisci agli attori con un’API pulita che noi
può usare ora per interagire con l’attore
l’altra l’altra cosa è anche quella
vedremo che questo codice è anche tutto
abbiamo bisogno di eseguire questo in un distribuito
ambiente non abbiamo bisogno di cambiarne uno
singola riga di codice
questa cosa che è tornata qui il
l’attore F può anche cessare di rissalah
rappresentano un componente in esecuzione su un altro
macchina in un altro data center o
qualunque cosa ed era ancora più carino da quando io
solo avere il riferimento significa questo
l’ istanza in esecuzione può effettivamente spostarsi
mossa
e anche tutti dipendono da come il
applicazione viene utilizzata e come il
runtime di sistema tenta di ottimizzare il file
ci sono le caratteristiche di runtime quindi
questo disaccoppiamento è buono anche se
deve potrebbe sembrare strano
okay, così gli attori formano le gerarchie di solito
Ricordo che abbiamo detto che l’attore di sistema Rob quando io
faccio così creo un attore di primo livello
che si trova proprio sotto qualcosa di un
attore invisibile che chiamiamo il sistema
guardiano che è dentro il nostro sistema di attori
va bene così quando dici attore di sistema di foo
poi si ottiene se un figlio del nostro stregone
sistema di replica Guardian okay questo è
questa sarà anche questa gerarchia
roba è molto importante quando si tratta di
il modello di fallimento ma per ora abbiamo solo
parlarne in termini di open a o
soluzione namer va bene così ora dentro questo
cibo extra c’è un campo membro andare
contesto che è quello che dovrei usare di più
del tempo va bene non usare il sistema
perché se un sistema di creazione lo è
creando un sacco di livelli di alto livello
attori e mi sto perdendo o tutto il
bontà, quindi se ora uso il contesto
attore di quello che sto facendo, allora sono io
creare un bambino qui o il mio attore e se
Continuo a usare il contesto tutto il tempo
dall’interno di attrice attore così creo
Sto creando un bambino e divento il
genitore di quello va bene così poi si arriva a
come una gerarchia di attori simile a questo
quindi questo è importante ora quando usiamo
Nathan la soluzione vicina perché tu
usato abbiamo parlato di attori come e là
e il loro nome è molto simile a un file
Sistema questo assomiglia molto a un file
sistema giusto con la radice e poi tu
Ho bla bla che è esattamente come me
riferimento anche a loro, quindi per favore
esempio che è / foo è il livello più alto
attore nel sistema interiore interiore dell’attore
va bene
questo è un quattro di questa barra dalla barra a
taglia quattro taglia una barra B e così via e
quando e abbiamo un dove abbiamo un
attore etico per quello che puoi guardare
attori in modo da poter ottenere tracker di riferimento
che non hai creato e poi e poi
usi questi percorsi va bene anche tu usi
questo percorso quando configura gli attori
dall’esterno ecc e questi siamo noi
e noi possiamo anche usare cose come
potresti accettare se io se sono dentro
qui l’ attore attore I Hughes per dot dot
Slash Star cosa succederà allora io sono
ottenere tutti i miei fratelli proprio sul
stesso livello sono in corso sulla nostra gerarchia
e poi ho preso tutti quelli
incluso me stesso, sarà un
selezione attiva che puoi usare
lavorare con gruppi di attori e così via
puoi davvero navigare in questo modo
che è penso che sia abbastanza intuitivo
se tu guadagnassi nel modo in cui intendo noi
abbiamo preso alcune delle parti migliori
della nostra linea penso che abbiamo anche aggiunto
alcune di alcune cose in più
e ha cambiato un sacco di cose che non ho
non ci piaceva che gli utenti trovassero
non intuitivo e che non si adattava al
immagine più grande il secondo serve
costrutto è inviato in modo che possiamo creare
attori che possiamo inviare attori che possiamo inviare
messaggio agli attori scusa la cosa bella
con send è che è completamente
alcuni ok asincroni e non bloccanti
la gente chiama anche questo fuoco, dimenticalo così dentro
tutto in Akka nella latta i termini
del dispacciamento quando si invia un
messaggio a un attore non c’è un singolo
bloccare tutto il percorso caldo tutto è
completamente bloccato meno che ci dà
estremamente buono per le prestazioni e
throughput giusto ma ancora di più
importante rispetto a quello di una semantica
prospettiva tutto accade per reagire
riattivare giusto così tutto è
servito di default, tutto è LaCie
gli piace non sta facendo nulla e quando un
attrice che non fa nulla che non consuma
qualsiasi supporto di risorse dalla memoria lui
non si siede su una discussione proprio così c’è
no, non c’è motivo per cui tu
utilizzo a parte la memoria così
un’attrice non fa niente fino a
messaggio viene inviato a lui proprio allora lui
si sveglia per iniziare a fare cose così in a
i messaggi di modo come facilmente è come il
energia cinetica in un sistema di attori così
gli attori possono avere un sacco di tipi
mantengono l’energia potenziale accumulata
come se fosse pronto a fare un sacco di cose importanti
cose giuste che conquistano il mondo anche
ma non faranno nulla se non loro
in realtà alcune cose li innescano
iniziare a fare cose creare nuovi attori
mandando messaggi al loro malikul giù
nel sistema e poi tutto va
giù come passivo di nuovo così è
estremamente pizzo estremamente
risorsa Saurabh Posso dire che è davvero
cerco davvero di minimizzare la ragione del tuo
utilizzo il più possibile così come
mandiamo un messaggio quindi usiamo
questo attore ref l’attore ha un ref
metodo di chiamata dire che fondamentalmente lo fa
quello che dice dice a un altro attore di
fare qualcosa di okay, quindi possiamo dire greeter
dire e quindi inviare il comando e
questo è un messaggio ora questo ritorna
immediatamente questo non aspetta il
attore per piacere mettilo per mettere gli italiani
La cassetta delle lettere di Millan e per loro hanno il
mailbox da processato per avere la
il messaggio implica semplicemente l’attore e questo
ritorna immediatamente dopo aver inserito il file
messaggio sulla casella di posta ok
allora abbiamo un concetto di scheduler si
questo è ciò che abbiamo chiamato il
dispatcher
in realtà siamo molti diversi
i dispatcher di default è di solito
meglio ma ne abbiamo un’altra specializzata
che funziona benissimo in altri in
altri ambienti quindi c’è il
concetto di questo schedulatore globale che
hai detto che usi un algoritmo diverso per
che si ottiene un’effettiva sintonia per l’equità
e quanto più alto e più alto come te
lo voglio ma in realtà prende il
messaggio dall’attore e lo sveglia
mette lui mette nel messaggio ci lascia
lui in giro e poi torna a sospendere
va bene lo fa tutto il tempo così
l’attrice ovviamente deve essere legata a
thread per eseguire effettivamente in modo che possiamo dire
gli attori vengono eseguiti in un pool di thread condivisi
oppure n il numero di post condividi discussione
dipende da come vuoi configurare il tuo
sistema quindi questo è l’esempio completo I
mostra questo è tutto ciò di cui hai bisogno per iniziare
creare qualsiasi sistema di attori in questo momento così
questo è tutto se tu se non lo fai
qualsiasi cosa ora se non hai
file di configurazione tutto questo solo
corre in corso crea un attore in
processo in questa città in esecuzione
proprio sulla singola JVM ma suoniamo
ora noi stampiamo vogliamo voler dire oh questo
attore dovrebbe questo attore chiamato lettore
qui dovrebbe funzionare solo su un’altra macchina
voglio iniziare a creare un cluster ok
succederà, allora è dentro
Per fare in modo che ciò accada, noi
devo scrivere un pezzo
ecco un file di configurazione questo è un
File di configurazione COS in realtà
diversi tipi di skin è possibile utilizzarlo
sembra che tu stia usando direttamente Jason
questo stile di Jason e più sintattico
zucchero puoi usare i file di proprietà e così via
ed è tutto scritto in Java dal
modo perché lo usiamo per eseguire il boot di Scala
quindi abbiamo lo stesso formato di configurazione
per Scala sono in grado di suonare nel complesso
impilare così anche se l’unica cosa che usi
da questo discorso è questa configurazione
biblioteca, penso che tu sia stato avvertito molto
è davvero bello comunque così il primo
cosa dobbiamo fare che ci piace fare
una distribuzione remota a questo voglio
modificare la topologia per l’esecuzione su un cluster
diciamo che voglio l’attore remoto se
fornitore che è il creatore di
l’attrice dovrebbe essere abilitata a distanza
quindi vedi qui nella sezione Diploma noi
usa di nuovo il nome qui, te lo ricordi
era più verde è fuori dai sistemi è a
attore di alto livello quindi usiamo la barra
greeter se è un bambino ad essere d’accordo
è stato un creatore di barre tagliami, facciamolo
il bambino il nome del bambino o
qualunque cosa usiamo questi nomi qui quando
vogliamo configurare il sistema in modo che il
l’unica cosa che dobbiamo fare ora è dire ok
Volevo che fosse distribuito a distanza e
non dicono dove va bene
il protocollo ARCA quindi sto definendo il
sistema il mio sistema e ricorda se tu
non ricordo se ti ricordi di noi
posso effettivamente nominare il sistema lì mio
sistema giusto, così tutti i nomi contano
okay, quindi abbiamo il mio sistema lì
gira su questa macchina su questa porta e
è qualcosa che configuro
altrove nella configurazione tutto il
porte che dovrebbero essere aperte per tutti i tipi
di quercia su tutto il sistema giusto
è così ora quando creo questo
questo attore questo attore cosa sta per succedere
capita ora è ora non sarà
creato localmente in realtà sta andando a
essere distribuito su un’altra macchina e
istanziarlo lì e il riferimento I
ottenere punti per quel ragazzo, quindi se inizio
mandandogli un messaggio , viaggerà
attraverso il filo oltre a quel ragazzo così questo
è ciò che chiamo per trasparenza della posizione
e ancora meglio il sistema può effettivamente
ottimizzare le cose
per esempio l’abbiamo usato per
adattare i router per esempio che noi
avere dei router che o tipo di adattarsi
secondo le metriche di runtime in
sistema e quindi possono farlo
in realtà spostare l’attrice attorno al ragazzo
usarli non lo sa tesoro
non importa che lui voglia di più
rendimento giusto la terza cosa che voglio
parlare di lui è diventato ok diventa è
dove è era siamo cose per ottenere troppo
un po ‘funky in un certo senso e le mie persone
potrebbe voler veramente perché mai dovrei
voglio fare questa bestia che risulta essere
molto utile
quindi quello che diventa fa è come
ridefinisce di più l’attore è se tu
guardalo da un sistema di tipi
prospettiva è come se fosse l’attore
completamente cambiato sia l’interfaccia e
l’implementazione diventa davvero
qualcosa di completamente diverso e perché
vorrei fare una cosa giusta?
Voglio aggiungere prima di iniziare a dare
esempi del perché e dove è veramente
davvero utile è che i comportamenti come loro
li chiamano o impilati bene così io
può spingere i comportamenti in pila e poi
Posso tornare al mio originale
implementazione ma sta spuntando il
impilare è qualcosa che è anche molto
bello così perché dovrei farlo sì
diciamo per esempio che io sono
creando il mio sistema tutto ciò che sembri
piacciono leggermente i singoli attori che corrono bene
potrebbe poi girare a risultare che
questo attore è estremamente conteso
Non mi aspettavo che potesse essere giusto
mi aspettavo che fosse solo la maggior parte di
l’ anno è sessione o meno ma oltre
Chrisman per andare dritto attraverso il tetto
okay, il bravo ragazzo, allora posso solo
configura anche il mio attore non appena sono
caricando la mia casella postale raggiunge a
certa dimensione o I qualunque sia la metrica I
usato all’interno dell’attore per intendo
capisco che sono sovraccarico che posso
solo trasformarmi di mettere in comune sono a posto
diventare la piscina e poi nascere come
5 10 100 ragazzi e alcune altre macchine
sono in corso o qualsiasi cosa e per
il tizio che usa me non sa che io
mi sono trasformato in una piscina che è giusta
qualcosa che posso fare internamente e quando
il carico va giù ha fatto esplodere lo stack
e tornare a diventare un attore singolare
di nuovo e puoi previs chiudere il
aec per notare che tu
– Ho corso solo durante questo picco per
esempio giusto lo uso anche per
implementare macchine state state per
esempio inizia con esso con il comportamento
o con questa interfaccia su una sola
metodo un messaggio chiamato avvio per
esempio quando ricevo che sto diventando
correndo allora potrei avere il mio pieno
implementazione sul servizio come cinque
dieci messaggi potrebbero essere ripresi da uno di essi
o sospendere in giro per un po ‘e poi io
voleva qualcosa mi deve sospendere um esso
corri sospendi e sto diventando sospeso
questa è un’interfaccia singola a quella
la chiamata al metodo singolo riprende quando arrivo
riprendo il mio popping lo stack tornando indietro
a correre di nuovo e poi potrei
avere qualcosa che posso tornare a
piace fermarsi e questa è la fine di questo
giusto in modo che tu possa effettivamente implementare
macchine di stato perché non solo il comportamento
iniziare deve passare nello stato attuale
nei comportamenti manterrà il lock pick
mantenere il comportamento e dichiarare attraverso questi
diverse fasi questo è molto intuitivo
modo molto carino di trattare con visibile
le macchine statali e l’attore sono spesso di stato
macchine questo attore dovrebbe avere stato
gli attori completamente apolidi sono davvero
utile il giusto ma ma ma dove il
davvero brillare è in realtà stato di disaccoppiamento
e comportamento perché ciò che non ho detto
è che se hai uno stato mutabile dentro
un attore che è completamente bene niente
cattivo può succedere è che è ed è it’s
come imposto dal modello per averlo
okay completamente sicuro per i thread che puoi avere
puoi avere stato mutabile e hash da
iPod o qualsiasi altra cosa e non hai mai bisogno di
guardati bene, il che è molto
è molto bello puoi anche implementarlo
cose come il degrado grazioso invece
di trasformarti in topi di Ralph
invece iniziare a lanciare accetta le eccezioni
come dire oh sto sovraccarico o si
potrebbe portarmi voglia di iniziare a cadere
messaggi li piping su un file di registro
o qualsiasi cosa vedere è in realtà
preoccupato lei o tu puoi mandarli a
jackass dead letter Q dobbiamo avere a
lettera morta o F che hanno fatto
tutti ti devono gestire perché tu
perché puoi inviarli a questo e
quindi puoi aggiungerli e poi uscire
e agisco come bus di eventi che abbiamo anche noi
implementato per te così puoi farlo
Ascolta questo Dead Letter messaggi uomo
prendili da qualche altra parte o qualsiasi altra cosa
okay, puoi fare cose del genere
generando un sacco di vuoto
lavoratori completamente vuoti con no
comportamento immobiliare e poi tu
può generare un master che è appena il primo
inizia a distinguere l’implementazione
a tutti questi attori, giusto e poi
inizia a usarli inviando
lo scenario dei messaggi che cancella quindi il risultato
quando ha finito, basta tutto
verso il basso e fare in modo che i POP attore
i loro comportamenti sono tutti di nuovo amplificati
un nuovo server può entrare nelle impostazioni di avvio
il suo comportamento è completo
compagnia puoi crearlo completamente
mondo dinamico quindi è davvero davvero
affascinante usa la tua immaginazione ma
ci sono molti più casi d’ uso di questo
ma questi sono alcuni dei più ovvi
quelli giusti e come si fa allora
sì, in Java non abbiamo ancora chiusure
giusto così è un po ‘brutto di cui hai bisogno
per creare una classe anonima con uno
metodo ma in Java 8 questo sarà bello
ci saranno rottami tutto questo boilerplate
ma per ora abbiamo bisogno di creare un
istanza di questa procedura con il
metodo con il metodo si applica e qui è
dove aggiungi il tuo nuovo comportamento nuovo
ok e abbiamo anche la procedura che io
sentire può prendere può prendere lo stato in questo modo
puoi passare lo stato a lungo e in mezzo
anche i nostri stadi
così il bilanciamento del carico e voglio solo
parlare un po ‘solo un basso bilanciamento
quindi ora per esempio se hai questo
l’attore F e tu Mon e ora lo crei come
vuoi piangere l’eternità così nei tuoi
percorso probabile o immediatamente dopo
puoi semplicemente usare il puntello – ma
vedi con il router e stai passando
nel router il numero di Rockies per
esempio puoi anche fare tutto da questo
il file di configurazione o puoi farlo
questo in fase di esecuzione
dipende da come lo vuoi fare tu
può anche aggiungere, ad esempio, pool a a
router dire che voglio avere un limite inferiore
e il limite superiore lo passano semplicemente nel
round-robin rotta attraverso qui e poi
ottieni un percorso a cui sei sostenuto da una piscina
e così via e ne abbiamo molti diversi
implementazioni router come a caso casuali
trasmissione hashing coerente mi chiami
molto carico di adattivo una volta esaminato
la stessa CPU rilasciata dalla memoria rilasciata
numero minimo di messaggi nella casella di posta
quindi è bello nel cluster, quindi ora lo sono
andando a parlare dal vivo ma per un lavoro di Java
7 concorrenza e ti mostro solo come
usando la concorrenza Java 7 c’era molto
di belle cose che sono state aggiunte e che
ci ha davvero permesso di ottenere il loro
numero di prestazioni e velocità effettiva
numeri sul tetto così come prima
alcune delle nuove utilità che hai
in Java 7 o in una delle cose chiave
il framework fork / join che è
qualcosa su cui ora ci basiamo molto
ARCA non l’avevamo fatto prima, in altre parole
è filo-locale intorno a loro e faccia
e così via, vogliamo concentrarci ora sul
fork / join framework ok così l’algoritmo
è piuttosto semplice avere la forchetta e
ti sei iscritto a ok fork significa che tu
davvero ricorsivamente dare una svolta a cose come
fondamentalmente come vedi qui hai un
compito che qui i Forks si spengano l’un l’altro
compito qui in uno sbagliato e un altro compito
lì e succede tutto in modo ricorsivo
giù come un albero e poi aspetta il
calcolo e quando il calcolo
è fatto si unisce a sua volta
ai genitori piacciono i trickle fino in fondo
finché non ottieni il risultato finale è
ottimo per come dividere Kong nel tuo stile
algoritmi ok
esso uso anche negli usi mare eterno
qualcosa chiamato il furto del lavoro
giusto così ognuno di questi lavori sono questi
questi lavoratori hanno la propria coda di lavoro
e quando uno degli operai finisce
questi messaggi cerca di rubare
gli altri lavoratori così questo e quello
in realtà risulta che questo ha avuto un po ‘
un po ‘ migliori prestazioni e velocità effettiva
rispetto alle classiche standard come standard
servizio thread executor che hai
un altro modo in cui penso che sia così
un esempio di come usare la parola
il pool fork / join è per questo questo
array parallelo altri altri esempi di
fork / join per questo è come i punteggi
le collezioni parallele fanno molto affidamento
loro significa che puoi prenderne uno qualsiasi
collezione nell’elenco delle mappe della libreria Scala
store o set o tree map o qualunque cosa tu
voglio e puoi solo dire punto per punto siamo
creerò una proiezione parallela e
allora significa che tutta la trasformazione
metodi se stai passando come per
Ognuno o qualunque cosa tu faccia ora verrà eseguito
in parallelo ci sono
parlando se Java dovrebbe aggiungere quello
avrebbe fatto cose in ambito Java mai e poi mai
tutta la roba buona in Scala
quindi questo è davvero questo era un po ‘
atteso quindi abbiamo parlato di loro
dovrebbe aggiungerlo a Java otto o
qualcosa del genere l’abbiamo anche usato come me
detto in ARCA quindi come lo usiamo
tutto è iniziato con il benchmark
il nostro 48 per scatola giù a Losanna noi
ho comprato questa scatola muscolosa per davvero intendo
Capisco, intendo, come si può esibire molto
ottimo hardware molto molto buono e noi
gestiva il nostro benchmark e ne valeva la pena
davvero contento che non ti dica che combini
questo ma ti darò qualcosa di più
così si può vedere un bar vedi Penso che in
contesto, ma per questo tip è tipico
per benchmark puoi vedere completamente
si appiattisce dopo circa sette otto
attori o così non siamo riusciti a capirlo allora
qualsiasi altra cosa così così poi noi
passare al pool congiunto completo e quello
dargli che questo in realtà non ha dato
anche noi molto di più, quindi lasciami iniziare
affondando pensando bene qual è il problema
si scopre che il cane Leah è il ragazzo
lui è il tipo che lo ha scritto lui
ha scritto la maggior parte di java.util contemporaneamente
su o un comitato consultivo un tipo sicuro così
abbiamo buone buone connessioni
con lui va bene per prima cosa intendo solo noi
per mostrarti in dettaglio cosa fosse
che problema eravamo noi quando abbiamo corso
perché non so se riesci a vedere
qui ma questo è tutto letto qui questo è
cercando di evidenziare che il contesto
che è dove di più oltre il tetto
di 70 mila interruttori di contesto per
secondo che è come molto più di
dovrebbe essere qualcosa in realtà
il bottlenecking della domanda era cosa
così così che quello che abbiamo effettivamente fatto è stato quello
noi mandiamo siamo andati al cane e detto
cosa succede con questo intendo che tu sei ma
eri una bottiglia priva del tuo per
quadro piscina comune e ha detto sì io
mi aspettavo che succedesse davvero
semplicemente aspettando che qualcuno lo faccia
imbattersi in questo grande ora ho un caso di prova
risolviamolo e sarà effettivamente girato
fuori che nessuno si era imbattuto in questo
perché nessuno aveva effettivamente ottimizzato
la realtà tutto il codice mi piace
Per esercitare l’inferno fuori di per
mostrandoci così tanto come abbiamo fatto nel nostro
casino dove dovrei colpire questo ma cosa
cosa cane che ha fatto invece del o
l’oro per la piscina sotterranea comune aveva avuto
per decidere che è un singolo singolo
coda globale allora aveva circa
in ogni lavoratore ha avuto la sua coda okay
da allora correva come una specie a caso
ognuno dei lavoratori o preso ciascuno
lavori dal globale ma ogni volta che tu
utilizzare la spedizione ti invio nel vostro lavoro
si va alla coda globale allora si
hanno anche questa cosa del
rubare il lavoro è il primo di
prima hai il problema che hai
collo di bottiglia nella singola coda globale
e in secondo luogo hai questo piccolo tipo
di una sparatoria decisionale per la settimana
lavoro dovrei provare a rubare lavoro da
lavori da qualche altro o dovrei
prendere dalla coda globale quando io quando io
corri a correre quando ho finito i lavori
quindi quale cane era fondamentalmente giusto
completamente sbarazzarsi del globale
coda di fila è l’unica così facile
il lavoratore aveva solo il suo e usa il
filo casuale locale così come Brandon Lee
assegnato a questi e cosa e cosa e
cosa e cosa ha fatto accadere, vedi
ecco il vecchio benchmark quindi è come
supera dopo 15 milioni a 1.5
milioni di messaggi al secondo con questo
modifica che in realtà non è ancora stata spedita
in Java un Java 7 lo abbiamo incorporato
la nostra propria forcella / join
versione interna al nostro che ha questo fisso
vedi che va fino in fondo
20 milioni 20 milioni di messaggi al secondo
poi dopo un po ‘più di benchmarking
come puoi vedere qui sopra così il
il cambio di contesto è ora pari a 1000
al secondo che è dove realmente
dovrebbe essere e con se qualcuno ancora di più
tweking buh-buh-buh su entrambi internamente
in per piscina giunto pure è in
la nostra macchina siamo stati in grado di spingere più di
collegare 50 milioni di messaggi con una media di cinquanta
milioni di messaggi al secondo e questo
era tutto come la cosa bella è quella
questo non sarebbe successo se noi
non sarebbe stato in grado di utilizzare la forcella
strumento di filato e corse in questo bug così debole
potrebbe essere risolto e questo è qualcosa
come ogni storia tornata può
Beneficio ora questa correzione verrà naturalmente
in Java 7 quindi vedere quanto tempo ho
inizi la storia con cinque minuti di ritardo, quindi 10
pochi minuti ok voglio solo parlare
riguardo l’ultima cosa e questo è
come tu come gestisci l’errore
recupero recupero fallito in in in
Akka quindi prima voglio dire se tu se guardi
al ripristino di un errore da un Java
prospettiva ok, penso che sia completamente
Devo dire che almeno il lavoro fuori
con il diverso credo superiore
modo di affrontare con fallimento
il problema è che in Java C C ++ e così via
su tutto ciò che usa come discussioni come
come l’unità principale di costruzione di
il calcolo che puoi dire è che lo sei
dando un singolo thread di controllo okay
questo significa che se qualcosa esplode dentro
il tuo thread cosa sta succedendo se tu se
non ti sei custodito si vuole
arrivare lì come fondamentalmente l’ unica cosa
che si ottiene è una pila traccia tutta la strada fino
alla tua discussione nuova discussione o Java
servizio dell’esecutore quindi è un silenzio morto
è impossibile scoprire no
altri thread potrà mai scoprire che
questo il thread di disturbo è esploso perché
le eccezioni non si propagano tra loro
discussioni che significa che per giocare
sicuro devi fare tutto il tuo recupero in
questo singolo thread lo stesso thread di
fate il vostro calcolo è necessario fare
il tuo recupero degli errori va bene alla cosa cattiva
è che questo porta ad estremamente
programmazione difensiva hai praticamente
per aggiungere le tue cache di prova su tutto il
posto giusto per sentirsi al sicuro ok così è così
la tua logica di business diventa molto intricata
con con la tua logica di gestione degli errori e
è anche dappertutto sin da allora
qualcosa di brutto può praticamente accadere
ovunque nella classe nel programma Java
devi averlo per avere questo tentativo
prendilo errore gestendo tutto il
posto inquina completamente il tuo intero
l’architettura del software va bene, davvero
penso che possiamo fare meglio possiamo fare meglio
di questo e quello è il tipo di
tentativo modesto dell’attore di plasmare
risolvere e penso che realmente offrire
la gente chiama su lascia che si schianti chieda
soluzione orribile al problema e
è lì che piace il quarto tipo
di costruzione viene supervisionato così con
la supervisione che ricordi l’attore aveva
è come un albero o creato come alberi ciascuno
genitore supervisiona è i suoi figli ben
ciò significa fondamentalmente questo
ogni volta che succede qualcosa di brutto, il
il ragazzo che in realtà sta eseguendo il codice
a lui non importa che muore solo allora a
la notifica verrà inviata al suo
genitore e lui può agire su quello
quindi la logica di business è completamente gratuita
dal codice di gestione degli errori in secondo luogo è
configurato piuttosto che codificato è tutto
configurato in modo dichiarativo in
all’interno di ciascuno di ciascun diritto genitore
quindi un modo per vederlo è che tu
creare sistemi come una cipolla va bene così
sei il tuo stato più importante il
affermare che non puoi perdere, è così
come il gioco per l’applicazione che tu
metti dentro la parte più interna di questo
cipolla che ci siamo messi bene e poi
a livello di difesa livelli intorno a quello
stato giusto così l’idea è che se io sono
aggrappandosi a qualcosa di prezioso e e
ora e voglio fare qualche calcolo o
chiedi ad un ragazzo che potrebbe piacere ad urlo e
urlo contro di me o qualcosa che non faccio mai
che io stesso invece sto creando un nuovo
attore lo sto delegando a lui se lui
si esaurisce su questo campo minato e soffia
se stesso che è appena discreto, almeno in
la mia prospettiva è giusta perché posso solo
crea un nuovo ragazzo che prova o prova di nuovo
qui e se questo non funziona si
potrebbe essere meglio generare su un altro
la macchina potrebbe essere qualcosa di funky con I
non so con quello con Nick
qui se stiamo parlando di lanciare un
servizio esterno o qualcosa del genere
giusto così puoi mettere questi livelli
di difesa non fai mai niente
tu stesso deleghi tutto così, invece
crei il tuo sistema di texture chiave
simile a questo abbiamo parlato
qualcosa chiamato kernel di errore se tu
google per esso troverete che è come
che è una sorta di modo di parlare
questo questo centro della cipolla è mio
Eric Carles questa roba che loro non possono
perdere e poi dentro e poi io solo
creare livelli di difesa così anche adesso
se la richiesta arriva qui esempio
accade qualcosa di terribile
quello che accadrà sarà una notifica
essere inviato al suo genitore che corre dentro
un altro thread ora così eccezioni
si propagano attraverso le discussioni piacevolmente sono
probabilmente lei dovrebbe lui può agire
su questo e basta riavviare il ragazzo
potrebbe essere
quel gruppo di attori insieme
implementare alcuni tipi di servizi che sono
come implicitamente accoppiato potrebbe essere quello
Non posso semplicemente ucciderne uno, okay
allora puoi raggrupparli e dire se tu
con uno poi tutto è chiamato tutto per
una strategia come nei tre
moschettieri potrebbe essere davvero quello
questo ragazzo è suo genitore e lui non può
affrontarlo con errore potrebbe essere
al di sopra del suo livello di retribuzione per fare effettivamente
qualcosa su ciò che sta succedendo
capita allora che avrà ucciso il suo
intero sottostrato e intensificare con speranza
qualcuno più in alto avrà il
potere della conoscenza o qualsiasi altra cosa da affrontare
il problema va bene potrebbe essere che questo
è come se la nostra area della cupola fosse fuori
errore di memoria quindi colpirà l’ errore
colonnello non ha davvero nessuna possibilità di farlo
recuperare da questo, ma che è molto a dire
che è come un’eccezione è molto
insolito normalmente e la maggior parte degli errori sono
in grado di recuperare e si doveva ottenere
qui allora è un sistema che può guarire
stesso si può effettivamente fare con questo
fallimento di buddha da solo ma se lo è
colpisce l’aria che si verifica in quel momento se tu
eseguire più di una scatola, quindi sei ancora
va bene perché puoi effettivamente collegare
attraverso le macchine in modo da poter effettivamente prendere
il vostro albero attore e metterli su
scatole diverse puoi collegarle e
e loro riceveranno una notifica anche
anche se marciscono o anche se lo sono
in esecuzione su macchine diverse e da
default ogni attore in realtà dimezza e
default come strategia di supervisione che
se non fai nulla sei
di solito va bene con le impostazioni predefinite ma è così
può essere sopravvalutato e il modo in cui lo fai
è così è un po ‘brutto da Java
dovrò dire di essere abituato a cicatrizzare
ma fondamentalmente il DSL qui l’essenza
di esso è qui giusto nell’arresto delle forniture
è fondamentalmente solo un boilerplate, quindi puoi farlo
vedere se un se l’eccezione arriva il
l’interno è o è un’eccezione artistica
le necessità di riprendere questo è il
una sorta di direttiva era come dovrebbe
trattare con l’attore che ha fallito se lo è
ora puntatore qui dovrebbe riavviare altro
dovrebbe aumentare la propagazione del
eccezione fino e oltre a questo è solo
un normale è un attore normale e il
ragazzo in realtà questo vale allora per il
ragazzo che è stato creato da questo
contesto e ai suoi figli va bene e
da dall’attrice ragazzi
prospettiva questo è uno studioso a proposito
non ho avuto il tempo di riscrivere
Mi scuso ma in fondo sembra molto
in pratica hai delle possibilità
agganciare interessi ai callback che puoi fare
qualcosa quando sono iniziato ma dopo che sono
è iniziato dopo che sono stato riavviato prima di me
riavviato dopo che sono guarito prima di me
guarito e così via così da poterti agganciare
come fare cose come pulire
risorse prima e reinizializzazione
Lei dopo il riavvio e così via così
questo era akka 2x almeno quando arriva
per la prospettiva degli attori siamo lì
c’è molto di più in esso
Non ho tempo di passare attraverso tutti
che oggi visto da quando corre un po ‘
un po ‘ indietro ma ha molto ha il
modulo cluster completamente nuovo di zecca per
esempio che sta uscendo in due in
uno che ti dà l’ elasticità il
irreale in quelli può andare e venire solo
appartenenza al cluster, così puoi iscriverti
sugli eventi ha tutto questo adattivo
router che verranno automaticamente se a
il fuoco sa venire ma solo
genera automaticamente il tuo nuovo nuovo
roba su quelli che se non li portano
dovrebbero poter essere spostati e roba
Mi piace solo un bus di eventi che testate
come una grande integrazione con un sacco di
corniciai come Apache Campbell per il campione
se usi i nostri attori del cast come
Campbell si limita a parlare
li consegnano a un cammello
messaggi attraverso cammello o tu Cirie sono
una chiave per esempio e ne abbiamo molti
diversi modi per affrontare la concorrenza
anche noi siamo attori, quindi non è una buona idea
per i ricordi transessuali che abbiamo
qualcosa chiamato concorrenza dataflow noi
avere una grande libreria di futuri che è
niente vicino al estremamente storpio
la versione è in Java utilizza contemporaneamente
o incoraggiarti a dare un’occhiata a così
questo era fondamentalmente ho alcune diapositive su
anche il clustering, ma non lo farò
è il momento di attraversare quelli così in pratica se
vuoi saperne di più vai a un codice o io
oh abbiamo circa 400 pagine di riferimento
documentazione così praticamente tutto
dovrebbe essere lì iscriviti alla mailing list
fai domande a tutte quelle stupide domande
sono i benvenuti ci piacerebbe avere
parte di essa c’è un sacco di
grandi blog là fuori dovevamo pensare
beh, penso che tutti akka estate un blog noi
incoraggiare la comunità durante il
estate per scrivere blog per il team di ARCA
blog e siamo venuti lì era più simile
otto o nove diversi grandi blog
su come usare akka nel mondo reale
come le persone effettivamente utilizzare
il mondo e così via se vuoi guardare
per più piace sostenere la formazione noi
avere il nostro allenamento e roba se vuoi
questo per pagare ovviamente tutto il resto
fino ad ora è gratis ho detto a proposito
questa è l’unica cosa che puoi trovare
roba in realtà dobbiamo pagare come
supporto come allenamento e cose che potrei
essere utile oltre a livellare tutto
prova stavo progettando di condividere yeah I’m
qui resto del giorno non pensiamo che tipo
di domande ora ma per favore vieni su
io fuori qui o mi prenderesti
alla festa stasera o così farò
spiega di più se vuoi grazie
risolvi tra le cose più importanti
era che volevo avere un modo
di ridimensionamento sia verso l’alto che verso l’esterno
essenzialmente entrambi scalando in alto intendo
ridimensionamento o Hardware in scala in a
singola macchina su una scatola multi-core a destra
c’è anche il ridimensionamento è solo un
invece di avere più macchine come
stai avendo in scala come
orizzontalmente e sono nel vero
senso che stai effettivamente ridimensionando
bocca per più processori e ed io
significa che fai dove e quando
non dovrebbe davvero importare penso che ci sia
qualcosa che dovresti effettivamente
esternalizzare in una decisione di dispiegamento
questo fondamentalmente come dovrebbero essere le tue scuse
essere quello era una delle cose chiave del design
Volevo fare e che ero così che ho visto
manca la gente usa diverso
strumenti diversi prima per come trattare
con concorrenza e diversi strumenti per
occuparsi del calcolo distribuito
quindi come possiamo farlo adesso?
quindi usiamo qualcosa chiamato attori giusto
quando gli attori sono il tipo di comune
tema in tutto questo talk archivi mamma
è molto più di attori attrici uno
come lo chiamiamo uno strumento nella casella degli strumenti
è un ottimo strumento che intendo molto
applicazioni che usano i casi e tu puoi
quindi penso che l’ 80% di tutti i problemi sia così
Vedo là fuori usando attori ma il
l’altro 20% è difficile da risolvere con gli attori
non è un proiettile d’argento ed è per questo
abbiamo molti altri strumenti che farò
copertina ma alla fine basta citarli
brevemente ma questo costruisce pietra angolare in
ARCA è il suo messaggio che passa
valuta come chiama anche extra-base pro
base di programmazione extra-base quindi cosa io
significa bene quindi cos’è un attore, sì, lo sono
non parlando di attori come John
Goodman anche se intendo nel nostro team
abbiamo chiunque abbia un comune dei comuni per a
evento ricorrente in cui guardiamo questo
il film è il grande lebowski
invece quello che intendo è che così al
livello base un attore è il codice di utilizzo
l’unità di codice in un interno e attore
sistema e
naturalmente poi in akka che ha
somiglianze con il classico come je e
sur les session beans etc è un modello per
come organizzare il tuo codice esternalizzando
fuori come cose come le politiche di distribuzione
decisioni di implementazione nella configurazione
il file actor non è nulla di nuovo è stato
circa dal 1973 come coniato da Carl
Hewitt in un foglio per cercarlo più tardi se
sei interessato a nel
la storia era che era stata catturata
come a livello di mondo reale di
Erlang nei primi anni ’80 e lo era stato
usato per trent’anni
nel settore delle telecomunicazioni usando l’Erlang
linguaggio di programmazione e altri tipi di
più o meno lingue più oscure
giuste ma queste idee sono combo
estremamente sano indipendentemente da
implementazione e penso che loro
avrà molto da imparare lì nel
come abbiamo visto un problema in Java
Spazio aziendale e o Scala qualunque
intendiamo o c-sharp reverse
siamo ancora bloccati usando le idee e
strumenti e costrutti che sono come da allora
dal momento che intendo che stiamo iniziando a usare nel
Anni 60 fondamentalmente con Fortran e roba così
Penso che ci sia anche questo
davvero non nuove tecniche ci potrebbero essere
nuovo per molte persone ma sono vecchie
e dimostrato e ciò che gli attori danno
sei un modo di programmare ad un livello più alto
livello in modo da non lamentarmi a lungo
minaccia dei problemi con i thread e
serrature anche se potrei pensare solo a me
Lo lascerò solo a quello che penso
il modo in cui le persone fanno come noi
concurrency in Java e c-sharp c-sharp
Ambito C ++ è completamente rotto penso
è il modo assolutamente sbagliato di
avvicinarsi a un problema da quando siamo cosa
facciamo è che lavoriamo con le cose sono
fuoriuscita dal
sistema operativo giusto è il modo
sono i primitivi di livello più basso in
l’intera applicazione nel suo complesso
stack hardware effettivamente in uso con
problema che si estende fino al
modello di programmazione e diventa il
il modo predefinito con cui affrontiamo i problemi
un’altra volta in altre aree in cui lavoriamo
musulmano
astrazioni molto più alte e penso che noi
necessità di elevare il livello di astrazione quattro
quattro quattro quattro quattro concorrenti
parallelismo e calcolo distribuito come
bene così invece di affrontare questo
tubature di basso livello di cui si è sicuri
fare quando lavori con
blocca e blocca ciò che invece fai
che pensi nel flusso di lavoro che sei
pensando a come è il mio messaggio
scorrendo nel sistema va bene
e questa è logica di business giusta
fondamentalmente più o meno almeno questo è
come I componenti interagiscono e come
come gli eventi come flusso e richiesta
risposta e cose del genere e se tu
fallo quando progetti il nostro sistema
questo preoccupa queste idee di flusso di lavoro allora
allora ottieni una risorsa estremamente buona
utilizzo si ottiene il parallelismo
la concorrenza si ottiene praticamente deadlock
codice gratuito a meno che non si blocchi effettivamente
su un livello concettuale sicuro se puoi
è possibile creare una situazione di stallo per l’altro
i tuoi messaggi trasmettono il sistema e quindi
allora in realtà poi mi hai pensato
significa fare quindi stupido il tuo pensiero
completamente sbagliato invece di quello senza
i tronchi morti dell’impianto idraulico per esempio in
l’abbraccio mortale si stringono dentro
l’acqua sbagliata giusta e loro mmm e
allora e la cosa cattiva con quello è quello
in Java se si verifica un deadlock in Java
poi hai perso due thread scusami
non c’è modo di tornare indietro, ma se tu se lo fosse
solo il flusso di lavoro che può introdurre
cose come Time House e uscire da
il problema ecc, quindi è fantastico
è anche al di sopra di tutta questa grandezza
che penso intendo con
concorrenza e vento e con il
rendimento estremamente elevato che puoi
ottenere come il Ludmila maxing sul vostro
l’hardware viene anche con penso che sia
modello superiore per affrontare il fallimento
gestione degli errori e ripristino degli errori
che vedremo dopo ok è anche
distribuibile dal design e in mano qui
viene loro voglio dire che è in realtà il
stessi strumenti gli stessi componenti che
si sta utilizzando può essere utilizzato per il ridimensionamento
e fuori a prescindere non c’è nulla di te
pensare a voi di scrivere il
componenti giusto e poi te
potrebbe capire se loro
Ron in lavorazione o se uno dei
le sorelle dovrebbero tornare su un’altra macchina
ecc abbiamo quello che viene chiamato posizione
la trasparenza va bene che non è così
importa dove sei dove i tuoi componenti
correre c’è qualcosa che può anche
cambia in runtime che il sistema può rilevare
che va bene questo componente non è idealmente
qui è fondamentalmente l’ unico utilizzo
risorsa qui quindi un sistema può effettivamente
sposta l’istanza della corsa
esempio al volo per il consumatore di
avvicinarlo al contesto è
effettivamente utilizzato in oo o nell’altro modo
in giro in modo da ottenere la scala e fuori come
libero come parte del modello se tu se tu
pensa e lavora in attori e io
penso che questo sia il tessuto perfetto per il
cloud in realtà corrisponde molto con
questo con caratteristiche simili a te
avere nel cloud computing hai a
sistema che è come ereditare elastico
gli attori possono andare e venire
come sa può andare e venire in cloud
calcolare un mondo molto dinamico che hai
tolleranza d’errore costruita a va bene così
i sistemi possono effettivamente guarire se stessi come noi
cercherò in seguito e abbiamo anche aggiunto
in cima al modello di azione molto di più o
meno concetti di alto livello come il carico
bilanciamento del routing pooling e di tutto il
cose di cui potresti aver bisogno okay
quindi dove è il nostro attualmente usato qui qui
è la selezione sorgente di alcuni alcuni
una sorta di alcune delle aziende che sono
attualmente usando ARCA e come puoi vedere
è come se fosse la grande varietà di
industrie che ti piacciono per le telecomunicazioni
avere l’ e-commerce hai indietro gli investimenti
nella simulazione dei dati del merchant banking
trading di scommesse su tutti i tipi di giochi
roba giusta anche più di questo
social media e TV e così via e il
tema comune attraverso tutti questi
industrie è che hanno dietro di loro
hanno bisogno di un alto rendimento basso
latenza con molto molto con molto alto come
il pizzo più stretto il pizzo sopra
la resilienza va bene quale è in realtà
tutta la ragione per il pieno per il
esistenza di vodka quindi cosa puoi usare
attori per se ora noi uomini proviamo a prendere
fare un passo indietro e come prendere ciò che già
conosci e prova a mapparlo ad un attore
okay, così puoi vedere un attore a
un po ‘come a volte come un filo
per esempio è brutto è molto brutto
commissario di paragone come vedremo
perché gli attori sono molto più leggeri di
discussioni e così via ma il concettuale
possono essere guardati un po ‘come a
thread fa un po ‘la macchina come un
istanza dell’oggetto o un normale raggiungere il tuo
componente possono essere utilizzati come callback
o l’ascoltatore userà la luce anonima
classe o chiusura può essere un singleton
o rappresentare una sorta di servizio che può
essere usato invece di essere solo un singolo
Africano come un rosso rappresenta un router
o fortunato può funzionare come bilanciamento del carico o
una piscina può essere molto simile alla tua
bean a messaggio o anche se
questo sta costringendo il modello piuttosto a
molto e può rappresentare un esterno
il servizio di elaborazione come il tracciamento
qualcosa del genere può essere uno stato
macchina come vedremo
così l’ attrice è davvero una bestia diversa
giusto può essere molte delle cose che noi
sappi che ci vuole davvero un po ‘
avvolgere la testa intorno a ciò che è veramente un
attore o che attore è davvero così se noi
fare anche un passo indietro, sì più indietro
e vedi voglio dire guardare le definizioni
bene fare ciò che è il modello dell’attore come a esso
come il suo marchio definito da Carl Hewitt the
ragazzo la storia che abbiamo inventato il modello così
è un attendente chiamarti è è un
unità fondamentale di computazione scusa
che incarna tre cose di elaborazione
questo è il comportamento della cosa che gira
le cose che eseguono cicli su on
la memoria giusta della cpu è lo stato
questa è la roba sul mucchio giusto
comunicazione queste sono le tre cose
che l’attore è il modello fonte o incarna
giusto e abbiamo tre diversi assiomi
quando un messaggio viene inviato a un attore e
in realtà può fare una delle tre cose
va bene, può creare nuovi attori che puoi
posso così ottenere i riferimenti al
nuovo pomeriggio a nuovi attori che puoi inviare
messaggi a l’attore che sa ed è
può anche diventare qualcos’altro che puoi
leggi se ti piace prova
formare i propri interni il proprio comportamento
la sua interfaccia così è così
qualcosa così è effettivamente girato
a se stesso per qualcos’altro per il prossimo
messaggio che quello che arriva e questo
l’ultima cosa è una specie di tutto
questo rende il modello medico così estremamente
dinamico e flessibile se guarderemo
più tardi , quindi se vuoi prenderli
come rompere questo in questi primi o
in questi come tre tre diversi
il diritto degli assiomi crea e diventa diventato
è come trasformare te stesso Sono
andando ad aggiungere una quarta che penso
appartiene nel modello attore pur
non è non fa parte di Carl Hewitt
o definizione originale e cioè
supervisionato è così che il modello di errore
come puoi gestire un fallimento un poliziotto
entra nella foto bene così se lo siamo
non vedremo come possiamo definire
un attore prima di iniziare a creare
usandoli la prima cosa che facciamo è quella
creiamo un messaggio il messaggio è a
Saluto classe laggiù ok
quindi un messaggio è l’attrice pubblica
API okay se questo è ciò che puoi fare
con un attore puoi mandargli questi
ai metodi piace pensare ai messaggi
che può essere visto il blocco dei metodi
in un’interfaccia giusta questo è ciò che il
l’attore espone quindi crea il tuo attore
e tu pensi che in Java sia solo un
classe normale vedi X che stai estendendo
il Nama chiama l’attore non codificato in naka
abbiamo due tipi di attori che eseguiamo digitati
nei tuoi attori dattilografati attori dattilografati
espone effettivamente una tipizzazione statica
interfaccia così alta che è molto di più
tipo di componente tipicamente staticamente
hai perso la legge perdi molto del
città dinamica nel modello con quello e
non è come il tipo tradizionale di
attore è più come l’attivo o un grande
modello ma alcune persone del genere, ma
Ora parlerò di loro
come originale il detrusore degli attori
che penso siano più o più loro
sono più potenti di così flessibili
l’unica cosa che devi fare quando tu
creare un attore è estendere il reale
inizia attore e poi te
sostituisci il loro metodo di ricezione se
hai visto il messaggio guidato da esso
sembra molto bene okay
ma non essere ingannato, gli attori sono molto di più
potente e hanno molto più ricco
semantica di messaggi trivia sono
non solo un richiamo come il fondamentalmente
il più importante bean message driven ZAR
così qui possiamo ricevere il
metodo il messaggio che ci sono stati inviati
quindi dobbiamo controllare che tipo di
messaggio che è in dentro in Java, abbiamo bisogno di
usa come tabella di esempio in Scala lì
sono altre API, devo solo dire questo
API sembra molto più pulito e Scala
ha pattern matching così effettivamente
ti permette di introspettare l’orbita proprio dentro
lì nel caso poi dichiarazione
direction.i in realtà possiamo sbirciare
l’oggetto direttamente e vincola certo
cose di cui non ho un esempio
ora da quando mi concentro sull’API Java ma
ma è it’s o nelle partite light di Scala
meglio penso con il vero modello dell’attore
da una prospettiva di sintassi ha di più
come lo zucchero sintattico per questo tipo di
le cose sostanzialmente vanno bene così ora abbiamo un
attore è fondamentalmente così se noi ora
crea un attore okay
gli attori sono estremamente leggeri come me
ha detto che non si può pensare a un attore uno a uno
con un filo su un attore ha circa 300
byte e quindi puoi creare
vicino a tre milioni di attori su uno
gigabyte di RAM questo significa che sei tu
bisogno di lasciare come modello le cose che è
estremamente difficile da modellare utilizzando thread
puoi facilmente avere come per esempio a
10 milioni di utenti simultanei in esecuzione in
il sistema allo stesso tempo che è
davvero difficile fare cose del genere
che usa i thread così anche un attore
incapsulamento molto forte ha molto
incapsulamento più forte rispetto alle classi o
istanze di classi in Java o C a
c-sharp
ci sono più vicini all’originale
definizione dell’orientamento dell’oggetto rispetto a
quindi le classi o le istanze così classi
destra
quindi incapsulano il comportamento dello stato come a
oggetto normale ma hanno anche un
la coda dei messaggi va bene, questo è ciò che chiamiamo
la casella di posta in modo che ogni attore abbia una casella di posta
dove tutti i messaggi stanno ricevendo
l’attore e finisce finisce proprio così come
possiamo creare un attore ora così noi per il
prima cosa che dobbiamo fare è che dobbiamo
creare il sistema dell’attore okay così noi
creare un sistema di attori che è dove il nostro
applicazione puoi pensarci a
un po ‘come fabbrica di fasci di luce se
hai usato per profondere la primavera o come me
non ricordo quasi ricordare dove sia
Cole questo contesto egb o qualcosa di te
hai bisogno che tu sia giusto così e poi quando tu
avere un sistema è possibile utilizzare un sistema di
per utilizzare tutti gli attori del metodo factory
attore o crea attori bene così dentro
questo ma in attore di te ne stanno passando due
le cose prima devono essere nel golf
articolo di configurazione oggetti di scena puoi essere un
tipo di configurazione abbastanza ricco lo faremo
usalo più tardi ma qui ti diciamo
di che colore che tipo di attore vogliamo
e anche noi diamo un nome
i nomi sono importanti in ARCA qui ora
Arriva un attore, non un noi questo
non restituisce l’istanza di saluto
attore qui ok e questo è molto
importante questo disaccoppiamento consente molto
delle cose prima è come la sicurezza
a cui vuoi aggiungere metodi pubblici
il saluto ap saluto attore e chiama
dal di fuori, come ignorando la
intero modello e tornare alla malvagità
e condividerà la concorrenza continua
non vogliamo quello ed è per questo che noi
restituisci agli attori con un’API pulita che noi
può usare ora per interagire con l’attore
l’altra l’altra cosa è anche quella
vedremo che questo codice è anche tutto
abbiamo bisogno di eseguire questo in un distribuito
ambiente non abbiamo bisogno di cambiarne uno
singola riga di codice
questa cosa che è tornata qui il
l’attore F può anche cessare di rissalah
rappresentano un componente in esecuzione su un altro
macchina in un altro data center o
qualunque cosa ed era ancora più carino da quando io
solo avere il riferimento significa questo
l’ istanza in esecuzione può effettivamente spostarsi
mossa
e anche tutti dipendono da come il
applicazione viene utilizzata e come il
runtime di sistema tenta di ottimizzare il file
ci sono le caratteristiche di runtime quindi
questo disaccoppiamento è buono anche se
deve potrebbe sembrare strano
okay, così gli attori formano le gerarchie di solito
Ricordo che abbiamo detto che l’attore di sistema Rob quando io
faccio così creo un attore di primo livello
che si trova proprio sotto qualcosa di un
attore invisibile che chiamiamo il sistema
guardiano che è dentro il nostro sistema di attori
va bene così quando dici attore di sistema di foo
poi si ottiene se un figlio del nostro stregone
sistema di replica Guardian okay questo è
questa sarà anche questa gerarchia
roba è molto importante quando si tratta di
il modello di fallimento ma per ora abbiamo solo
parlarne in termini di open a o
soluzione namer va bene così ora dentro questo
cibo extra c’è un campo membro andare
contesto che è quello che dovrei usare di più
del tempo va bene non usare il sistema
perché se un sistema di creazione lo è
creando un sacco di livelli di alto livello
attori e mi sto perdendo o tutto il
bontà, quindi se ora uso il contesto
attore di quello che sto facendo, allora sono io
creare un bambino qui o il mio attore e se
Continuo a usare il contesto tutto il tempo
dall’interno di attrice attore così creo
Sto creando un bambino e divento il
genitore di quello va bene così poi si arriva a
come una gerarchia di attori simile a questo
quindi questo è importante ora quando usiamo
Nathan la soluzione vicina perché tu
usato abbiamo parlato di attori come e là
e il loro nome è molto simile a un file
Sistema questo assomiglia molto a un file
sistema giusto con la radice e poi tu
Ho bla bla che è esattamente come me
riferimento anche a loro, quindi per favore
esempio che è / foo è il livello più alto
attore nel sistema interiore interiore dell’attore
va bene
questo è un quattro di questa barra dalla barra a
taglia quattro taglia una barra B e così via e
quando e abbiamo un dove abbiamo un
attore etico per quello che puoi guardare
attori in modo da poter ottenere tracker di riferimento
che non hai creato e poi e poi
usi questi percorsi va bene anche tu usi
questo percorso quando configura gli attori
dall’esterno ecc e questi siamo noi
e noi possiamo anche usare cose come
potresti accettare se io se sono dentro
qui l’ attore attore I Hughes per dot dot
Slash Star cosa succederà allora io sono
ottenere tutti i miei fratelli proprio sul
stesso livello sono in corso sulla nostra gerarchia
e poi ho preso tutti quelli
incluso me stesso, sarà un
selezione attiva che puoi usare
lavorare con gruppi di attori e così via
puoi davvero navigare in questo modo
che è penso che sia abbastanza intuitivo
se tu guadagnassi nel modo in cui intendo noi
abbiamo preso alcune delle parti migliori
della nostra linea penso che abbiamo anche aggiunto
alcune di alcune cose in più
e ha cambiato un sacco di cose che non ho
non ci piaceva che gli utenti trovassero
non intuitivo e che non si adattava al
immagine più grande il secondo serve
costrutto è inviato in modo che possiamo creare
attori che possiamo inviare attori che possiamo inviare
messaggio agli attori scusa la cosa bella
con send è che è completamente
alcuni ok asincroni e non bloccanti
la gente chiama anche questo fuoco, dimenticalo così dentro
tutto in Akka nella latta i termini
del dispacciamento quando si invia un
messaggio a un attore non c’è un singolo
bloccare tutto il percorso caldo tutto è
completamente bloccato meno che ci dà
estremamente buono per le prestazioni e
throughput giusto ma ancora di più
importante rispetto a quello di una semantica
prospettiva tutto accade per reagire
riattivare giusto così tutto è
servito di default, tutto è LaCie
gli piace non sta facendo nulla e quando un
attrice che non fa nulla che non consuma
qualsiasi supporto di risorse dalla memoria lui
non si siede su una discussione proprio così c’è
no, non c’è motivo per cui tu
utilizzo a parte la memoria così
un’attrice non fa niente fino a
messaggio viene inviato a lui proprio allora lui
si sveglia per iniziare a fare cose così in a
i messaggi di modo come facilmente è come il
energia cinetica in un sistema di attori così
gli attori possono avere un sacco di tipi
mantengono l’energia potenziale accumulata
come se fosse pronto a fare un sacco di cose importanti
cose giuste che conquistano il mondo anche
ma non faranno nulla se non loro
in realtà alcune cose li innescano
iniziare a fare cose creare nuovi attori
mandando messaggi al loro malikul giù
nel sistema e poi tutto va
giù come passivo di nuovo così è
estremamente pizzo estremamente
risorsa Saurabh Posso dire che è davvero
cerco davvero di minimizzare la ragione del tuo
utilizzo il più possibile così come
mandiamo un messaggio quindi usiamo
questo attore ref l’attore ha un ref
metodo di chiamata dire che fondamentalmente lo fa
quello che dice dice a un altro attore di
fare qualcosa di okay, quindi possiamo dire greeter
dire e quindi inviare il comando e
questo è un messaggio ora questo ritorna
immediatamente questo non aspetta il
attore per piacere mettilo per mettere gli italiani
La cassetta delle lettere di Millan e per loro hanno il
mailbox da processato per avere la
il messaggio implica semplicemente l’attore e questo
ritorna immediatamente dopo aver inserito il file
messaggio sulla casella di posta ok
allora abbiamo un concetto di scheduler si
questo è ciò che abbiamo chiamato il
dispatcher
in realtà siamo molti diversi
i dispatcher di default è di solito
meglio ma ne abbiamo un’altra specializzata
che funziona benissimo in altri in
altri ambienti quindi c’è il
concetto di questo schedulatore globale che
hai detto che usi un algoritmo diverso per
che si ottiene un’effettiva sintonia per l’equità
e quanto più alto e più alto come te
lo voglio ma in realtà prende il
messaggio dall’attore e lo sveglia
mette lui mette nel messaggio ci lascia
lui in giro e poi torna a sospendere
va bene lo fa tutto il tempo così
l’attrice ovviamente deve essere legata a
thread per eseguire effettivamente in modo che possiamo dire
gli attori vengono eseguiti in un pool di thread condivisi
oppure n il numero di post condividi discussione
dipende da come vuoi configurare il tuo
sistema quindi questo è l’esempio completo I
mostra questo è tutto ciò di cui hai bisogno per iniziare
creare qualsiasi sistema di attori in questo momento così
questo è tutto se tu se non lo fai
qualsiasi cosa ora se non hai
file di configurazione tutto questo solo
corre in corso crea un attore in
processo in questa città in esecuzione
proprio sulla singola JVM ma suoniamo
ora noi stampiamo vogliamo voler dire oh questo
attore dovrebbe questo attore chiamato lettore
qui dovrebbe funzionare solo su un’altra macchina
voglio iniziare a creare un cluster ok
succederà, allora è dentro
Per fare in modo che ciò accada, noi
devo scrivere un pezzo
ecco un file di configurazione questo è un
File di configurazione COS in realtà
diversi tipi di skin è possibile utilizzarlo
sembra che tu stia usando direttamente Jason
questo stile di Jason e più sintattico
zucchero puoi usare i file di proprietà e così via
ed è tutto scritto in Java dal
modo perché lo usiamo per eseguire il boot di Scala
quindi abbiamo lo stesso formato di configurazione
per Scala sono in grado di suonare nel complesso
impilare così anche se l’unica cosa che usi
da questo discorso è questa configurazione
biblioteca, penso che tu sia stato avvertito molto
è davvero bello comunque così il primo
cosa dobbiamo fare che ci piace fare
una distribuzione remota a questo voglio
modificare la topologia per l’esecuzione su un cluster
diciamo che voglio l’attore remoto se
fornitore che è il creatore di
l’attrice dovrebbe essere abilitata a distanza
quindi vedi qui nella sezione Diploma noi
usa di nuovo il nome qui, te lo ricordi
era più verde è fuori dai sistemi è a
attore di alto livello quindi usiamo la barra
greeter se è un bambino ad essere d’accordo
è stato un creatore di barre tagliami, facciamolo
il bambino il nome del bambino o
qualunque cosa usiamo questi nomi qui quando
vogliamo configurare il sistema in modo che il
l’unica cosa che dobbiamo fare ora è dire ok
Volevo che fosse distribuito a distanza e
non dicono dove va bene
il protocollo ARCA quindi sto definendo il
sistema il mio sistema e ricorda se tu
non ricordo se ti ricordi di noi
posso effettivamente nominare il sistema lì mio
sistema giusto, così tutti i nomi contano
okay, quindi abbiamo il mio sistema lì
gira su questa macchina su questa porta e
è qualcosa che configuro
altrove nella configurazione tutto il
porte che dovrebbero essere aperte per tutti i tipi
di quercia su tutto il sistema giusto
è così ora quando creo questo
questo attore questo attore cosa sta per succedere
capita ora è ora non sarà
creato localmente in realtà sta andando a
essere distribuito su un’altra macchina e
istanziarlo lì e il riferimento I
ottenere punti per quel ragazzo, quindi se inizio
mandandogli un messaggio , viaggerà
attraverso il filo oltre a quel ragazzo così questo
è ciò che chiamo per trasparenza della posizione
e ancora meglio il sistema può effettivamente
ottimizzare le cose
per esempio l’abbiamo usato per
adattare i router per esempio che noi
avere dei router che o tipo di adattarsi
secondo le metriche di runtime in
sistema e quindi possono farlo
in realtà spostare l’attrice attorno al ragazzo
usarli non lo sa tesoro
non importa che lui voglia di più
rendimento giusto la terza cosa che voglio
parlare di lui è diventato ok diventa è
dove è era siamo cose per ottenere troppo
un po ‘funky in un certo senso e le mie persone
potrebbe voler veramente perché mai dovrei
voglio fare questa bestia che risulta essere
molto utile
quindi quello che diventa fa è come
ridefinisce di più l’attore è se tu
guardalo da un sistema di tipi
prospettiva è come se fosse l’attore
completamente cambiato sia l’interfaccia e
l’implementazione diventa davvero
qualcosa di completamente diverso e perché
vorrei fare una cosa giusta?
Voglio aggiungere prima di iniziare a dare
esempi del perché e dove è veramente
davvero utile è che i comportamenti come loro
li chiamano o impilati bene così io
può spingere i comportamenti in pila e poi
Posso tornare al mio originale
implementazione ma sta spuntando il
impilare è qualcosa che è anche molto
bello così perché dovrei farlo sì
diciamo per esempio che io sono
creando il mio sistema tutto ciò che sembri
piacciono leggermente i singoli attori che corrono bene
potrebbe poi girare a risultare che
questo attore è estremamente conteso
Non mi aspettavo che potesse essere giusto
mi aspettavo che fosse solo la maggior parte di
l’ anno è sessione o meno ma oltre
Chrisman per andare dritto attraverso il tetto
okay, il bravo ragazzo, allora posso solo
configura anche il mio attore non appena sono
caricando la mia casella postale raggiunge a
certa dimensione o I qualunque sia la metrica I
usato all’interno dell’attore per intendo
capisco che sono sovraccarico che posso
solo trasformarmi di mettere in comune sono a posto
diventare la piscina e poi nascere come
5 10 100 ragazzi e alcune altre macchine
sono in corso o qualsiasi cosa e per
il tizio che usa me non sa che io
mi sono trasformato in una piscina che è giusta
qualcosa che posso fare internamente e quando
il carico va giù ha fatto esplodere lo stack
e tornare a diventare un attore singolare
di nuovo e puoi previs chiudere il
aec per notare che tu
– Ho corso solo durante questo picco per
esempio giusto lo uso anche per
implementare macchine state state per
esempio inizia con esso con il comportamento
o con questa interfaccia su una sola
metodo un messaggio chiamato avvio per
esempio quando ricevo che sto diventando
correndo allora potrei avere il mio pieno
implementazione sul servizio come cinque
dieci messaggi potrebbero essere ripresi da uno di essi
o sospendere in giro per un po ‘e poi io
voleva qualcosa mi deve sospendere um esso
corri sospendi e sto diventando sospeso
questa è un’interfaccia singola a quella
la chiamata al metodo singolo riprende quando arrivo
riprendo il mio popping lo stack tornando indietro
a correre di nuovo e poi potrei
avere qualcosa che posso tornare a
piace fermarsi e questa è la fine di questo
giusto in modo che tu possa effettivamente implementare
macchine di stato perché non solo il comportamento
iniziare deve passare nello stato attuale
nei comportamenti manterrà il lock pick
mantenere il comportamento e dichiarare attraverso questi
diverse fasi questo è molto intuitivo
modo molto carino di trattare con visibile
le macchine statali e l’attore sono spesso di stato
macchine questo attore dovrebbe avere stato
gli attori completamente apolidi sono davvero
utile il giusto ma ma ma dove il
davvero brillare è in realtà stato di disaccoppiamento
e comportamento perché ciò che non ho detto
è che se hai uno stato mutabile dentro
un attore che è completamente bene niente
cattivo può succedere è che è ed è it’s
come imposto dal modello per averlo
okay completamente sicuro per i thread che puoi avere
puoi avere stato mutabile e hash da
iPod o qualsiasi altra cosa e non hai mai bisogno di
guardati bene, il che è molto
è molto bello puoi anche implementarlo
cose come il degrado grazioso invece
di trasformarti in topi di Ralph
invece iniziare a lanciare accetta le eccezioni
come dire oh sto sovraccarico o si
potrebbe portarmi voglia di iniziare a cadere
messaggi li piping su un file di registro
o qualsiasi cosa vedere è in realtà
preoccupato lei o tu puoi mandarli a
jackass dead letter Q dobbiamo avere a
lettera morta o F che hanno fatto
tutti ti devono gestire perché tu
perché puoi inviarli a questo e
quindi puoi aggiungerli e poi uscire
e agisco come bus di eventi che abbiamo anche noi
implementato per te così puoi farlo
Ascolta questo Dead Letter messaggi uomo
prendili da qualche altra parte o qualsiasi altra cosa
okay, puoi fare cose del genere
generando un sacco di vuoto
lavoratori completamente vuoti con no
comportamento immobiliare e poi tu
può generare un master che è appena il primo
inizia a distinguere l’implementazione
a tutti questi attori, giusto e poi
inizia a usarli inviando
lo scenario dei messaggi che cancella quindi il risultato
quando ha finito, basta tutto
verso il basso e fare in modo che i POP attore
i loro comportamenti sono tutti di nuovo amplificati
un nuovo server può entrare nelle impostazioni di avvio
il suo comportamento è completo
compagnia puoi crearlo completamente
mondo dinamico quindi è davvero davvero
affascinante usa la tua immaginazione ma
ci sono molti più casi d’ uso di questo
ma questi sono alcuni dei più ovvi
quelli giusti e come si fa allora
sì, in Java non abbiamo ancora chiusure
giusto così è un po ‘brutto di cui hai bisogno
per creare una classe anonima con uno
metodo ma in Java 8 questo sarà bello
ci saranno rottami tutto questo boilerplate
ma per ora abbiamo bisogno di creare un
istanza di questa procedura con il
metodo con il metodo si applica e qui è
dove aggiungi il tuo nuovo comportamento nuovo
ok e abbiamo anche la procedura che io
sentire può prendere può prendere lo stato in questo modo
puoi passare lo stato a lungo e in mezzo
anche i nostri stadi
così il bilanciamento del carico e voglio solo
parlare un po ‘solo un basso bilanciamento
quindi ora per esempio se hai questo
l’attore F e tu Mon e ora lo crei come
vuoi piangere l’eternità così nei tuoi
percorso probabile o immediatamente dopo
puoi semplicemente usare il puntello – ma
vedi con il router e stai passando
nel router il numero di Rockies per
esempio puoi anche fare tutto da questo
il file di configurazione o puoi farlo
questo in fase di esecuzione
dipende da come lo vuoi fare tu
può anche aggiungere, ad esempio, pool a a
router dire che voglio avere un limite inferiore
e il limite superiore lo passano semplicemente nel
round-robin rotta attraverso qui e poi
ottieni un percorso a cui sei sostenuto da una piscina
e così via e ne abbiamo molti diversi
implementazioni router come a caso casuali
trasmissione hashing coerente mi chiami
molto carico di adattivo una volta esaminato
la stessa CPU rilasciata dalla memoria rilasciata
numero minimo di messaggi nella casella di posta
quindi è bello nel cluster, quindi ora lo sono
andando a parlare dal vivo ma per un lavoro di Java
7 concorrenza e ti mostro solo come
usando la concorrenza Java 7 c’era molto
di belle cose che sono state aggiunte e che
ci ha davvero permesso di ottenere il loro
numero di prestazioni e velocità effettiva
numeri sul tetto così come prima
alcune delle nuove utilità che hai
in Java 7 o in una delle cose chiave
il framework fork / join che è
qualcosa su cui ora ci basiamo molto
ARCA non l’avevamo fatto prima, in altre parole
è filo-locale intorno a loro e faccia
e così via, vogliamo concentrarci ora sul
fork / join framework ok così l’algoritmo
è piuttosto semplice avere la forchetta e
ti sei iscritto a ok fork significa che tu
davvero ricorsivamente dare una svolta a cose come
fondamentalmente come vedi qui hai un
compito che qui i Forks si spengano l’un l’altro
compito qui in uno sbagliato e un altro compito
lì e succede tutto in modo ricorsivo
giù come un albero e poi aspetta il
calcolo e quando il calcolo
è fatto si unisce a sua volta
ai genitori piacciono i trickle fino in fondo
finché non ottieni il risultato finale è
ottimo per come dividere Kong nel tuo stile
algoritmi ok
esso uso anche negli usi mare eterno
qualcosa chiamato il furto del lavoro
giusto così ognuno di questi lavori sono questi
questi lavoratori hanno la propria coda di lavoro
e quando uno degli operai finisce
questi messaggi cerca di rubare
gli altri lavoratori così questo e quello
in realtà risulta che questo ha avuto un po ‘
un po ‘ migliori prestazioni e velocità effettiva
rispetto alle classiche standard come standard
servizio thread executor che hai
un altro modo in cui penso che sia così
un esempio di come usare la parola
il pool fork / join è per questo questo
array parallelo altri altri esempi di
fork / join per questo è come i punteggi
le collezioni parallele fanno molto affidamento
loro significa che puoi prenderne uno qualsiasi
collezione nell’elenco delle mappe della libreria Scala
store o set o tree map o qualunque cosa tu
voglio e puoi solo dire punto per punto siamo
creerò una proiezione parallela e
allora significa che tutta la trasformazione
metodi se stai passando come per
Ognuno o qualunque cosa tu faccia ora verrà eseguito
in parallelo ci sono
parlando se Java dovrebbe aggiungere quello
avrebbe fatto cose in ambito Java mai e poi mai
tutta la roba buona in Scala
quindi questo è davvero questo era un po ‘
atteso quindi abbiamo parlato di loro
dovrebbe aggiungerlo a Java otto o
qualcosa del genere l’abbiamo anche usato come me
detto in ARCA quindi come lo usiamo
tutto è iniziato con il benchmark
il nostro 48 per scatola giù a Losanna noi
ho comprato questa scatola muscolosa per davvero intendo
Capisco, intendo, come si può esibire molto
ottimo hardware molto molto buono e noi
gestiva il nostro benchmark e ne valeva la pena
davvero contento che non ti dica che combini
questo ma ti darò qualcosa di più
così si può vedere un bar vedi Penso che in
contesto, ma per questo tip è tipico
per benchmark puoi vedere completamente
si appiattisce dopo circa sette otto
attori o così non siamo riusciti a capirlo allora
qualsiasi altra cosa così così poi noi
passare al pool congiunto completo e quello
dargli che questo in realtà non ha dato
anche noi molto di più, quindi lasciami iniziare
affondando pensando bene qual è il problema
si scopre che il cane Leah è il ragazzo
lui è il tipo che lo ha scritto lui
ha scritto la maggior parte di java.util contemporaneamente
su o un comitato consultivo un tipo sicuro così
abbiamo buone buone connessioni
con lui va bene per prima cosa intendo solo noi
per mostrarti in dettaglio cosa fosse
che problema eravamo noi quando abbiamo corso
perché non so se riesci a vedere
qui ma questo è tutto letto qui questo è
cercando di evidenziare che il contesto
che è dove di più oltre il tetto
di 70 mila interruttori di contesto per
secondo che è come molto più di
dovrebbe essere qualcosa in realtà
il bottlenecking della domanda era cosa
così così che quello che abbiamo effettivamente fatto è stato quello
noi mandiamo siamo andati al cane e detto
cosa succede con questo intendo che tu sei ma
eri una bottiglia priva del tuo per
quadro piscina comune e ha detto sì io
mi aspettavo che succedesse davvero
semplicemente aspettando che qualcuno lo faccia
imbattersi in questo grande ora ho un caso di prova
risolviamolo e sarà effettivamente girato
fuori che nessuno si era imbattuto in questo
perché nessuno aveva effettivamente ottimizzato
la realtà tutto il codice mi piace
Per esercitare l’inferno fuori di per
mostrandoci così tanto come abbiamo fatto nel nostro
casino dove dovrei colpire questo ma cosa
cosa cane che ha fatto invece del o
l’oro per la piscina sotterranea comune aveva avuto
per decidere che è un singolo singolo
coda globale allora aveva circa
in ogni lavoratore ha avuto la sua coda okay
da allora correva come una specie a caso
ognuno dei lavoratori o preso ciascuno
lavori dal globale ma ogni volta che tu
utilizzare la spedizione ti invio nel vostro lavoro
si va alla coda globale allora si
hanno anche questa cosa del
rubare il lavoro è il primo di
prima hai il problema che hai
collo di bottiglia nella singola coda globale
e in secondo luogo hai questo piccolo tipo
di una sparatoria decisionale per la settimana
lavoro dovrei provare a rubare lavoro da
lavori da qualche altro o dovrei
prendere dalla coda globale quando io quando io
corri a correre quando ho finito i lavori
quindi quale cane era fondamentalmente giusto
completamente sbarazzarsi del globale
coda di fila è l’unica così facile
il lavoratore aveva solo il suo e usa il
filo casuale locale così come Brandon Lee
assegnato a questi e cosa e cosa e
cosa e cosa ha fatto accadere, vedi
ecco il vecchio benchmark quindi è come
supera dopo 15 milioni a 1.5
milioni di messaggi al secondo con questo
modifica che in realtà non è ancora stata spedita
in Java un Java 7 lo abbiamo incorporato
la nostra propria forcella / join
versione interna al nostro che ha questo fisso
vedi che va fino in fondo
20 milioni 20 milioni di messaggi al secondo
poi dopo un po ‘più di benchmarking
come puoi vedere qui sopra così il
il cambio di contesto è ora pari a 1000
al secondo che è dove realmente
dovrebbe essere e con se qualcuno ancora di più
tweking buh-buh-buh su entrambi internamente
in per piscina giunto pure è in
la nostra macchina siamo stati in grado di spingere più di
collegare 50 milioni di messaggi con una media di cinquanta
milioni di messaggi al secondo e questo
era tutto come la cosa bella è quella
questo non sarebbe successo se noi
non sarebbe stato in grado di utilizzare la forcella
strumento di filato e corse in questo bug così debole
potrebbe essere risolto e questo è qualcosa
come ogni storia tornata può
Beneficio ora questa correzione verrà naturalmente
in Java 7 quindi vedere quanto tempo ho
inizi la storia con cinque minuti di ritardo, quindi 10
pochi minuti ok voglio solo parlare
riguardo l’ultima cosa e questo è
come tu come gestisci l’errore
recupero recupero fallito in in in
Akka quindi prima voglio dire se tu se guardi
al ripristino di un errore da un Java
prospettiva ok, penso che sia completamente
Devo dire che almeno il lavoro fuori
con il diverso credo superiore
modo di affrontare con fallimento
il problema è che in Java C C ++ e così via
su tutto ciò che usa come discussioni come
come l’unità principale di costruzione di
il calcolo che puoi dire è che lo sei
dando un singolo thread di controllo okay
questo significa che se qualcosa esplode dentro
il tuo thread cosa sta succedendo se tu se
non ti sei custodito si vuole
arrivare lì come fondamentalmente l’ unica cosa
che si ottiene è una pila traccia tutta la strada fino
alla tua discussione nuova discussione o Java
servizio dell’esecutore quindi è un silenzio morto
è impossibile scoprire no
altri thread potrà mai scoprire che
questo il thread di disturbo è esploso perché
le eccezioni non si propagano tra loro
discussioni che significa che per giocare
sicuro devi fare tutto il tuo recupero in
questo singolo thread lo stesso thread di
fate il vostro calcolo è necessario fare
il tuo recupero degli errori va bene alla cosa cattiva
è che questo porta ad estremamente
programmazione difensiva hai praticamente
per aggiungere le tue cache di prova su tutto il
posto giusto per sentirsi al sicuro ok così è così
la tua logica di business diventa molto intricata
con con la tua logica di gestione degli errori e
è anche dappertutto sin da allora
qualcosa di brutto può praticamente accadere
ovunque nella classe nel programma Java
devi averlo per avere questo tentativo
prendilo errore gestendo tutto il
posto inquina completamente il tuo intero
l’architettura del software va bene, davvero
penso che possiamo fare meglio possiamo fare meglio
di questo e quello è il tipo di
tentativo modesto dell’attore di plasmare
risolvere e penso che realmente offrire
la gente chiama su lascia che si schianti chieda
soluzione orribile al problema e
è lì che piace il quarto tipo
di costruzione viene supervisionato così con
la supervisione che ricordi l’attore aveva
è come un albero o creato come alberi ciascuno
genitore supervisiona è i suoi figli ben
ciò significa fondamentalmente questo
ogni volta che succede qualcosa di brutto, il
il ragazzo che in realtà sta eseguendo il codice
a lui non importa che muore solo allora a
la notifica verrà inviata al suo
genitore e lui può agire su quello
quindi la logica di business è completamente gratuita
dal codice di gestione degli errori in secondo luogo è
configurato piuttosto che codificato è tutto
configurato in modo dichiarativo in
all’interno di ciascuno di ciascun diritto genitore
quindi un modo per vederlo è che tu
creare sistemi come una cipolla va bene così
sei il tuo stato più importante il
affermare che non puoi perdere, è così
come il gioco per l’applicazione che tu
metti dentro la parte più interna di questo
cipolla che ci siamo messi bene e poi
a livello di difesa livelli intorno a quello
stato giusto così l’idea è che se io sono
aggrappandosi a qualcosa di prezioso e e
ora e voglio fare qualche calcolo o
chiedi ad un ragazzo che potrebbe piacere ad urlo e
urlo contro di me o qualcosa che non faccio mai
che io stesso invece sto creando un nuovo
attore lo sto delegando a lui se lui
si esaurisce su questo campo minato e soffia
se stesso che è appena discreto, almeno in
la mia prospettiva è giusta perché posso solo
crea un nuovo ragazzo che prova o prova di nuovo
qui e se questo non funziona si
potrebbe essere meglio generare su un altro
la macchina potrebbe essere qualcosa di funky con I
non so con quello con Nick
qui se stiamo parlando di lanciare un
servizio esterno o qualcosa del genere
giusto così puoi mettere questi livelli
di difesa non fai mai niente
tu stesso deleghi tutto così, invece
crei il tuo sistema di texture chiave
simile a questo abbiamo parlato
qualcosa chiamato kernel di errore se tu
google per esso troverete che è come
che è una sorta di modo di parlare
questo questo centro della cipolla è mio
Eric Carles questa roba che loro non possono
perdere e poi dentro e poi io solo
creare livelli di difesa così anche adesso
se la richiesta arriva qui esempio
accade qualcosa di terribile
quello che accadrà sarà una notifica
essere inviato al suo genitore che corre dentro
un altro thread ora così eccezioni
si propagano attraverso le discussioni piacevolmente sono
probabilmente lei dovrebbe lui può agire
su questo e basta riavviare il ragazzo
potrebbe essere
quel gruppo di attori insieme
implementare alcuni tipi di servizi che sono
come implicitamente accoppiato potrebbe essere quello
Non posso semplicemente ucciderne uno, okay
allora puoi raggrupparli e dire se tu
con uno poi tutto è chiamato tutto per
una strategia come nei tre
moschettieri potrebbe essere davvero quello
questo ragazzo è suo genitore e lui non può
affrontarlo con errore potrebbe essere
al di sopra del suo livello di retribuzione per fare effettivamente
qualcosa su ciò che sta succedendo
capita allora che avrà ucciso il suo
intero sottostrato e intensificare con speranza
qualcuno più in alto avrà il
potere della conoscenza o qualsiasi altra cosa da affrontare
il problema va bene potrebbe essere che questo
è come se la nostra area della cupola fosse fuori
errore di memoria quindi colpirà l’ errore
colonnello non ha davvero nessuna possibilità di farlo
recuperare da questo, ma che è molto a dire
che è come un’eccezione è molto
insolito normalmente e la maggior parte degli errori sono
in grado di recuperare e si doveva ottenere
qui allora è un sistema che può guarire
stesso si può effettivamente fare con questo
fallimento di buddha da solo ma se lo è
colpisce l’aria che si verifica in quel momento se tu
eseguire più di una scatola, quindi sei ancora
va bene perché puoi effettivamente collegare
attraverso le macchine in modo da poter effettivamente prendere
il vostro albero attore e metterli su
scatole diverse puoi collegarle e
e loro riceveranno una notifica anche
anche se marciscono o anche se lo sono
in esecuzione su macchine diverse e da
default ogni attore in realtà dimezza e
default come strategia di supervisione che
se non fai nulla sei
di solito va bene con le impostazioni predefinite ma è così
può essere sopravvalutato e il modo in cui lo fai
è così è un po ‘brutto da Java
dovrò dire di essere abituato a cicatrizzare
ma fondamentalmente il DSL qui l’essenza
di esso è qui giusto nell’arresto delle forniture
è fondamentalmente solo un boilerplate, quindi puoi farlo
vedere se un se l’eccezione arriva il
l’interno è o è un’eccezione artistica
le necessità di riprendere questo è il
una sorta di direttiva era come dovrebbe
trattare con l’attore che ha fallito se lo è
ora puntatore qui dovrebbe riavviare altro
dovrebbe aumentare la propagazione del
eccezione fino e oltre a questo è solo
un normale è un attore normale e il
ragazzo in realtà questo vale allora per il
ragazzo che è stato creato da questo
contesto e ai suoi figli va bene e
da dall’attrice ragazzi
prospettiva questo è uno studioso a proposito
non ho avuto il tempo di riscrivere
Mi scuso ma in fondo sembra molto
in pratica hai delle possibilità
agganciare interessi ai callback che puoi fare
qualcosa quando sono iniziato ma dopo che sono
è iniziato dopo che sono stato riavviato prima di me
riavviato dopo che sono guarito prima di me
guarito e così via così da poterti agganciare
come fare cose come pulire
risorse prima e reinizializzazione
Lei dopo il riavvio e così via così
questo era akka 2x almeno quando arriva
per la prospettiva degli attori siamo lì
c’è molto di più in esso
Non ho tempo di passare attraverso tutti
che oggi visto da quando corre un po ‘
un po ‘ indietro ma ha molto ha il
modulo cluster completamente nuovo di zecca per
esempio che sta uscendo in due in
uno che ti dà l’ elasticità il
irreale in quelli può andare e venire solo
appartenenza al cluster, così puoi iscriverti
sugli eventi ha tutto questo adattivo
router che verranno automaticamente se a
il fuoco sa venire ma solo
genera automaticamente il tuo nuovo nuovo
roba su quelli che se non li portano
dovrebbero poter essere spostati e roba
Mi piace solo un bus di eventi che testate
come una grande integrazione con un sacco di
corniciai come Apache Campbell per il campione
se usi i nostri attori del cast come
Campbell si limita a parlare
li consegnano a un cammello
messaggi attraverso cammello o tu Cirie sono
una chiave per esempio e ne abbiamo molti
diversi modi per affrontare la concorrenza
anche noi siamo attori, quindi non è una buona idea
per i ricordi transessuali che abbiamo
qualcosa chiamato concorrenza dataflow noi
avere una grande libreria di futuri che è
niente vicino al estremamente storpio
la versione è in Java utilizza contemporaneamente
o incoraggiarti a dare un’occhiata a così
questo era fondamentalmente ho alcune diapositive su
anche il clustering, ma non lo farò
è il momento di attraversare quelli così in pratica se
vuoi saperne di più vai a un codice o io
oh abbiamo circa 400 pagine di riferimento
documentazione così praticamente tutto
dovrebbe essere lì iscriviti alla mailing list
fai domande a tutte quelle stupide domande
sono i benvenuti ci piacerebbe avere
parte di essa c’è un sacco di
grandi blog là fuori dovevamo pensare
beh, penso che tutti akka estate un blog noi
incoraggiare la comunità durante il
estate per scrivere blog per il team di ARCA
blog e siamo venuti lì era più simile
otto o nove diversi grandi blog
su come usare akka nel mondo reale
come le persone effettivamente utilizzare
il mondo e così via se vuoi guardare
per più piace sostenere la formazione noi
avere il nostro allenamento e roba se vuoi
questo per pagare ovviamente tutto il resto
fino ad ora è gratis ho detto a proposito
questa è l’unica cosa che puoi trovare
roba in realtà dobbiamo pagare come
supporto come allenamento e cose che potrei
essere utile oltre a livellare tutto
prova stavo progettando di condividere yeah I’m
qui resto del giorno non pensiamo che tipo
di domande ora ma per favore vieni su
io fuori qui o mi prenderesti
alla festa stasera o così farò
spiega di più se vuoi grazie
Please follow and like us: