
quindi benvenuto in questa sessione ora vado
per parlare oggi di argomenti gustosi
quindi l’ idea alla base di questa sessione davvero
è solo per darti un’idea di
il tipo di lavoro che facciamo a conforto nella
termini di aiutare i clienti a risolvere il
problemi che vedono così speranzosi qui
saranno alcuni strumenti e tecniche
che puoi usare nel tuo sviluppo
compiti così questa è l’ idea in realtà non lo è
un passo da bender se vuoi un venditore
foto ne abbiamo di grandi al nostro
per favore vieni a trovarci, quindi il mio nome è
Tom Fair è stato con conforto su
e via ora per circa quattro e mezzo
anni ho iniziato ora a Singapore
il team di supporto in realtà ha contribuito a risolverlo
fare supporto tecnico in modo gentile
supporto alla produzione per i clienti che
riguardo a Londra
due anni fa, dove mi sono trasferito al
team pre vendita solido, aiutando il nostro
i clienti risolvono i problemi che loro
avere in movimento i dati in giro così è il conforto
tutto su questa idea di dati aperti
movimento quindi una piattaforma flessibile che
ti consente di spostare i dati di dati intorno ad esso
in qualsiasi formato per favore senza provare
per legarti a una speculazione va bene così a
parola veloce dall’host dei brani per favore
valutare le sessioni questo non è il mio primo
vai a ma è stata la prima vista
per andare così il tuo feedback è davvero
importante perché ovviamente vogliamo
fare video a cui questo materiale è utile
tu il più possibile se hai domande
e non so che sei timido o ti piace
vale più di parlare per favore
sentiti libero di fare domande con il
app se vuoi fare domande mentre
Sto parlando per favore basta attaccare la mano
su e verrò da te sì abbastanza felice
prendere domande mentre parlo grubs e
ponderato verso la fine in alternativa
se è una domanda più complicata allora
per favore, come alla fine, andiamo
iniziato così gentile della base di questo discorso
è l’idea di argomenti e l’ idea di
tipo di sistema di pubblicazione-sottoscrizione quindi sono
sperando che la maggior parte di voi sono a conoscenza di
ciò che l’abbonamento pubblicato significa in termini
di un modello per lo scambio di informazioni
ma solo per tipo di livello impostato qui dare
qualche revisione capisci esattamente
di cosa sto parlando stiamo parlando
sullo scambio di informazioni in
sistemi distribuiti okay così questo potrebbe
essere applicazioni in esecuzione su diversi
ospita potrebbe essere sullo stesso host
potrebbero essere le applicazioni in esecuzione
diversi data center in esecuzione a livello globale
va bene così una delle caratteristiche chiave di questo
allora questa idea di disaccoppiamento è così a
il fallimento in un’applicazione non dovrebbe
impatto sullo scambio di tali dati
ovviamente che l’applicazione è
non disponibile quindi come funziona?
abbiamo un editore che è responsabile
per l’ invio di dati e pubblica il suo
dati su un argomento per chiamarlo soggetto ma
essenzialmente è un tag un pezzo di
metadati che descrive idealmente cosa
che i dati sono e che abilitano le persone che
bisogno di ricevere che quei dati nostri
abbonati per scegliere e scegliere esattamente
quali informazioni vogliono
ricevere ora la caratteristica fondamentale di questo è
quello di darci l’accoppiamento forse
il nostro abbonato non è disponibile in nessuno
dato il tempo forse ce ne sono molti
abbonati nel qual caso ci dà
questa cosa si chiama fan out così puoi
avere per esempio o altre persone che usano
i loro telefoni cellulari per aggiornare dicono stock
i prezzi avresti anche più
editori che pubblicano sullo stesso argomento
a destra un argomento non è conferito limitato a
un particolare editore e questo ci dà
piano in cui hai più persone
produttori potresti averne solo uno
abbonato ascoltando quei dati e
un esempio potrebbe essere una specie di
Big Data Cluster
che ascolta tutto ciò che è
prodotto nella tua organizzazione
quindi eseguirli successivamente analisi di lotti su
ora qualcosa che non fai normalmente
associare con pubblicare-iscriversi questo
idea di persistenza ok la tua persistenza
dei dati di dati residenti nel
sistema di pubblicazione-sottoscrizione fino a a
l’abbonato è pronto a ricevere quei dati
normalmente quello che succede è una specie di a
vivi se sei lì, sei lì se
non sei un tipo di sistema ma alcuni di
questi sistemi di abbonamento-pubblicazione offrono
la tua persistenza e infatti ti offriamo un
tipo di ibrido puoi scegliere di avere entrambi
così un’ora e ne parlerò in a
un po ‘di tempo ma la chiave qui è dove
abbonato sta registrando interesse in a
argomento sta dicendo che voglio ricevere i dati
di un tipo particolare e il tuo editore
sta quindi taggando i dati con tali metadati
ok, quindi parla di un argomento, allora cos’è
l’argomento che ho già menzionato
tag di parole ma in realtà è un po ‘un
leader in questa diapositiva che abbiamo appena descritto
che argomento è allora è un pezzo di
i metadati saranno una stringa così
questo è facilmente comprensibile ora il
le tentazioni a volte possono essere sono solo
andando ad etichettare i dati che sto andando
per dargli un tag molto semplice
lo descrive ma c’è un problema con
questo in quanto se ne abbiamo multipli
abbonati alcuni di quegli abbonati
potrebbe essere interessato a diversi set di
quei dati se pensi al tuo Venn
diagramma dove sei un po ‘ universale
set è tutti i dati che sono in corso
prodotto i tuoi abbonati stanno per
essere piccoli cerchi all’interno di quel Venn
diagramma e alcuni di quei cerchi sono
andando a sovrapporsi quindi prendiamo questo cibo
esempio immagina dove un po ‘di
generi alimentari di una sorta di rivenditore di prodotti alimentari e
stiamo cercando quattro fette di cose
seni di cibo così potremmo avere la mela
fette e potremmo essere tentati di solo
tagga i nostri dati delle fette di mela con qualcosa
come fette di mela di cibo, ma poi se lo siamo
ascoltare tutto ciò che è slice è
dobbiamo prendere una decisione se tutti noi
è che c’è un tag semplice così
quello che potremmo fare è che potremmo elencarli tutti
tipo di fetta giusta, quindi potremmo avere
fette di mela a fette di mano hmmm c’è
un problema con quello anche se siamo un po ‘
rotto un chiodo a disaccoppiare perché se noi
ora inizia a produrre fette di pesca e le nostre
abbonato è interessato a tutti i tipi di
fette ora dobbiamo aggiornare la sua lista
e abbiamo rotto il nostro disaccoppiamento
perché un aggiornamento al produttore significa
che dobbiamo aggiornare l’abbonato
finisce e non è quello che vogliamo fare
hmm ok bene, forse potremmo fare una stringa
la ricerca è una buona idea su cosa possiamo fare
possiamo andare fino alla fine del
stringa e cerca la parola fette hmm
bene, va bene, ma il problema è
lì hai generato una sorta di
dipendenza dalla struttura esatta del
tag sai che hai un tag strutturato
efficacemente è solo l’utente che usa
cerca le stringhe per trovare quella struttura
e poi c’è un altro problema per te
vedi che devi fare una ricerca stringa e
sarà diverso in
lingue diverse forse sarai
usando una lingua diversa per farlo
forse o li implementeremo
stringa cerca te stesso hmm che porta a
incoerenza che un’applicazione potrebbe fare
ricerca di stringhe in un modo
l’applicazione potrebbe eseguire la ricerca di stringhe
un modo diverso hmm che non è ideale hmm
e c’è anche un altro problema ma
prima di entrare in quello guardiamo
come potremmo farlo se facciamo il nostro argomento
gerarchico quindi un esempio è lì
usando una barra un po ‘come una cartella
delimitatore che ci dà più flessibilità
cosa ci permette di fare
se abbiamo la wild card rappresentata qui
con l’asterisco o la stella che significa noi
può facilmente selezionare solo fette e
non ci interessa cosa succede all’altro
livelli di gerarchia e questa è la chiave
perché allora non importa quale sia il
i produttori fanno non importa se aggiungiamo
un nuovo progetto come le fette di pesca nostre
la corrispondenza degli argomenti corrisponderà sempre a ciò che noi
voglio che sia a fette così questo
approccio gerarchico significa che puoi
essere coppia da cosa viene prodotto
ciò che gli abbonati sono interessati
un altro vantaggio di questo è se hai
un sesto altro a cui interessa solo
le pesche potrebbero essere fette di pesca potrebbero essere
pesche intere possiamo usare esattamente il
lo stesso tipo di struttura possiamo solo guardare
a pesca solo e jolly i tipi di
fette e ottenere solo funzionalità e questo è
quando ciò diventa veramente utile è se
più tardi, dopo aver implementato il nostro
argomento che vogliamo avere completamente nuovo
tipo di conversazione in corso che noi
mai anticipato quando abbiamo progettato questo
è solo una questione di pubblicazione per il
argomento giusto e creazione del diritto
abbonamento quindi l’intera idea qui è
questo argomento non è la stessa come un tag se
usi un sistema di argomenti gerarchici con
selvaggina si ottiene così tanta flessibilità
e ottieni questo accoppiamento Trudy tra
i consumatori e i produttori dei dati
e la struttura dell’argomento stesso va bene così
solo per sperperare quel punto a casa perché dovrei
cura di questo bene è più semplice se
stai usando la tua pubblicazione-iscriviti
sistema per fare tutto questo filtraggio per te
non c’è bisogno di preoccuparsi di che, in
la tua applicazione che non stai implementando
routine di ricerca stringa per esempio è
coerente qualunque cosa tu stia facendo
nel tuo scambio di informazioni sei
sempre usando lo stesso modello per selezionare
i dati che ti interessano e questo è
la tua wild card
ed ecco un altro punto se andiamo
torna a questa slide qui oops no
uno tutto quello che ho io vado indietro qui
eccoci nell’esempio di dove
stiamo facendo per esempio di stringa
ricerca che dobbiamo ricevere ogni
singolo messaggio e ricerca attraverso il
argomento e questo è davvero inefficiente
proprio tu stai ricevendo tutti quei dati e
buttandone via un sacco se lo fai tu
approccio wild-card e tu lasci il tuo pub
sottosistema fai quello per te che ottieni
i dati che ti interessano
e ciò significa che la tua applicazione
deve fare molto meno lavoro e nel
caso di scusa nel caso di come il
Internet delle cose in cui hai basso
potenza, ad esempio, i gateway che parlano
qualcosa come 3G ci sei probabilmente
cura quante informazioni sei
scambiando e scambiando solo quei dati
questo è probabilmente molto
anche molto importante, diciamo subito
pensa all’argomento stesso, okay
ho questa idea di jolly e a
struttura tematica gerarchica dov’è
questo argomento creato è creato quando noi
invia il messaggio è un amministrato
oggetto che dobbiamo creare da qualche parte
è qualcosa che dobbiamo creare sul
mediatore giusto, dobbiamo dire che voglio
l’argomento ora e ho intenzione di creare
lo scambio di informazioni basato su
quell’argomento è l’argomento creato dal
ricevitore bene come ci piace fare cose
quella consolazione è che in realtà è l’argomento
stesso è solo una proprietà del messaggio
lo crei effettivamente su send e it
diventa solo un pezzo di metadati sul
il messaggio stesso non è amministrato
oggetto in qualsiasi senso è tutto sul
broker ciò che effettivamente accade è il
registri del ricevitore interessati al
argomento e crea l’abbonamento
quindi sei una specie di oggetti amministrati
sono in realtà abbonamenti e non il
argomento stesso e questo significa che il tuo
il mittente è libero di inviare qualsiasi messaggio a
qualsiasi destinazione fornita all’utente
permessi che cosa significa anche questo
l’ argomento può essere creato sul messaggio di invio
e quindi può essere diverso per ogni
il singolo messaggio che hai inviato è completamente
dinamico e quando arriviamo a uno dei
utilizzare casi vedremo come essi possono essere utilizzati
va bene così tanto revisione allora lì
entriamo in alcuni dettagli okay data
i formati sembrano piuttosto noiosi ma
si spera che questo diventi chiaro
più tardi quindi immaginiamo per che stiamo lavorando
un diritto di backup open source dinamico e funky
quindi sai che è abbastanza informale
so che sono calmo, sono un mago o e e
tutto ciò che devi sapere è davvero il mio cellulare
numero di telefono per ottenere di me quando
lo sono quando le cose vanno male
grande è un lavoro molto bene e in
infatti funziona così bene che ci stiamo prendendo in giro
sono stati acquistati da una società più grande che
Voglio qualche struttura che vogliono sapere
a chi fai rapporto e chi ti riferisce
quindi il tuo formato dei dati cambierà
ok, non è un grosso problema da subito
e semplicemente controllando il nostro aggiornamento del codice tutto
le nostre applicazioni sono tutte felici ah
ma poi ottieni la telefonata
fuori c’è un’applicazione di reporting che
non può essere aggiornato ma non lo so
perché potrebbe essere una regolamentazione hmm, quindi abbiamo bisogno
per eseguire questi due formati di dati al
Allo stesso tempo, ah, questo è un problema che vogliamo
scrivere il nostro codice in modo che comprenda
entrambi i formati di dati hmm sono uno
approccio, ma probabilmente lo è
l’UL finisce con il codice legacy sospeso
intorno al posto forse un po ‘di
debito tecnico nessuno può essere disturbati a
entra e rifila quel codice tu no
più bisogno di bene ecco un’alternativa
approccio prima di tutto, pensiamo
sulla nostra tradizionale pipeline icd
possiamo usare il nostro formato base qui Jason
possiamo usarlo come una specie di chiave
quali sono le nostre date di formato dei dati
se taggliamo i nostri file di codice sorgente in questo
caso usando gli ingranaggi che possiamo con loro
quale formato dati è e quando
veniamo a fare i conti, possiamo usarlo
tag e qui lo facciamo proprio così in questo
caso sto usando Jason, quindi carichiamo il nostro
classe che in termini jason significa questo
per esempio con Jason taggando il
classe dove quindi taggare il formato dei dati
okay e allora quello che possiamo fare è che possiamo
prendi un buon nome per il tag e aggiungilo a
l’argomento quindi quello che abbiamo fatto qui è se
informazioni estratte dalla nostra versione
sistema di controllo e metterlo direttamente in
l’argomento perché è tutto ciò che è
completamente fatto in esso ora ciò che è grande
su questo è che poi a prescindere
che formato di dati siamo automaticamente
creare i nostri argomenti e il formato dei dati è
fatto parte di questo argomento, ad esempio
quando invio i miei dati v1 andrà solo
oltre la fabbrica un argomento cosa c’è di più
Ho costruito tutto il mio codice usando tutto questo
quel codice di tag v1 quindi tutti i miei dati
le routine di formattazione comprenderanno la v1
e posso eseguirli entrambi in parallelo
perché le mie applicazioni v1 non sono mai
andando a prendere il mio formato di dati v2 perché
se sono stati costruiti implicitamente
capisco solo il formato che il mio argomento
è un’idea abbastanza semplice ma è così
abbastanza potente ti permette di essere
completamente fiducioso che il tuo
l’applicazione sta per ottenere i dati
il formato che si aspetta bene
così questa è un’idea che è piuttosto una
bello pulito ho parlato di un altro
caso studio ora autorizzazione quindi immagina
nel nostro sottosistema pub forse ne vogliamo alcuni
le persone non sono in grado di vedere i dati
non dovrebbero vedere così bene
esempio, diciamo che hai un
applicazione mobile e si sta parlando in
e stai ricevendo per esempio un
saldo del conto giusto il tuo account
l’equilibrio sta venendo su un argomento ma tu
non voglio che nessun altro veda il tuo
saldo del conto va bene così un uso pulito di
tipo di tecnologia spinta in
questo caso è come e quando l’ Europa è tua
l’equilibrio è aggiornato possiamo spingerlo
aggiornamento a voi piuttosto che fare affidamento su di voi
richiedere un aggiornamento per il tuo saldo
okay, quindi come possiamo farlo, allora siamo noi
può avere un’applicazione separata questa
ecco cosa ho chiamato app in abbonamento
su cui gestisci le tue iscrizioni
per conto di altre applicazioni, quindi facciamolo
immagina che la nostra qualsiasi app qui sia
su internet ora il problema
c’è quel hmm se richiedo un equilibrio
richiesta non lo voglio davvero sapere
su quali argomenti parlare perché lui allora
potrebbe un cappello iniziare ad abbonarsi ad argomenti
non dovrebbe saperlo così
esempio potresti dire up so il mio
gli aggiornamenti di bilanciamento stanno arrivando in equilibrio
aggiorna Tom forse vediamo Harry
l’aggiornamento del saldo è sottoscrivendo a
aggiustamento dell’aggiornamento Harry hmm ok quindi cosa abbiamo
facciamo qui abbiamo questa app separata
questo è sotto il tuo controllo probabilmente
in esecuzione nella rete principale e se ne andò
la nostra applicazione internet qui ce n’è
le applicazioni collegano invia una richiesta
su un argomento diverso e dice che voglio
voglio chiedere un equilibrio
e io sono tranquillo ora abbonamento e rimane
quassù quindi decidi quali argomenti qualsiasi app
con l’utente tom è in grado di iscriversi a ok
quindi è un po ‘ di logica del core business
che hai eseguito in abbonamento
app ma e qui è il bit intelligente il
descrizione f fa l’abbonamento su
conto di qualsiasi applicazione in modo sottoscrizione che
dice al sistema publish-subscribe nef
ora si sta iscrivendo all’aggiornamento del saldo
gobba e qual è la chiave su questo è quello
qualsiasi app non sa nemmeno quale argomento è
ascoltando non sa nemmeno cosa
l’abbonamento è tutto ciò che sa è che lui
sarebbe collegato al
sistema di pubblicazione-sottoscrizione e dati
inizia a venire verso di lui, quindi se qualche atto
cerca di fare qualcosa di intelligente e prova
per iscriversi a qualcosa che non è
il diritto a te non può nemmeno farlo
abbonamenti perché sono stati tutti
applicato per lui in modo che significa che il tuo
l’autorizzazione può essere completamente dinamica
se all’improvviso decidiamo di farlo
ha bisogno di accedere ad altri dati e lo è
diritto a ciò che possiamo quindi iniziare
applicare gli abbonamenti per suo conto a
qualsiasi punto durante questa conversazione ok
per quanto riguarda il monitoraggio, allora abbiamo
questo sistema di iscrizione-sottoscrizione e noi siamo
sarà interessato a quello che sta succedendo
su lì per assicurarsi che il nostro sistema
è sano ok quindi forse c’è un
applicazione là che è sotto davvero
il carico pesante non può far fronte alla messaggistica
valuta forse c’è qualcuno che ascolta
ma stanno ascoltando per troppo
hanno il volume alzato troppo in alto
come avremo a che fare con quello
su qualcuno che sta cercando di fare strato
i messaggi che vomitano su tutto il
luogo e le persone in realtà non lo sono
particolarmente interessato a ciò che loro
lo stesso per quello che sta succedendo
lui bene è bloccato
è completamente smesso di funzionare così
ci sono un paio di cose che tu
bisogno di fare attenzione per voi che abbiamo bisogno di
assicurati che le persone non stiano consumando
troppe risorse di cui abbiamo bisogno per essere sicuri
che le nostre applicazioni sono sane e
può tenere il passo con il nostro flusso di messaggi e
dobbiamo assicurarci che le applicazioni
non si sono fermati completamente bene ecco
un’idea di cosa succede se usiamo il nostro
sistema di pubblicazione-sottoscrizione da distribuire
che i dati nel mondo solido abbiamo un
API di monitoraggio e gestione e piuttosto
di avere in tutti quelli che ne hanno bisogno
informazioni che sparano contro l’API e
perché non avere un solo monitoraggio
app che ascolta tutto ciò che
bisogni deve sapere e quindi pubblicare
quell’informazione sopra il pub sub-bus
e in questo modo chiunque ne abbia bisogno
le informazioni possono semplicemente connettersi come a
abbonato normale e ricevere quello
monitoraggio delle informazioni piuttosto quello che
direi che c’è un caso di tipo di
noi in termini di consumo di un sottosistema di pub
nostro diritto cibo per cani che andremo a
distribuire le nostre informazioni dal nostro
server di distribuzione delle informazioni quindi cosa
puoi farlo allora è davvero molto facile
per attaccare i cruscotti per esempio così tu
sai che potresti avere qualcuno che vuole
per costruire una dashboard web così potresti
voglio farlo usando il riposo che potresti
avere un’applicazione mobile e lo sai
forse le tue operazioni alla gente piace andare
a casa il fine settimana e loro non vogliono
dover collegarlo che non lo fanno
devo venire nel tuo ufficio e forse
avere qualcosa sul proprio telefono cellulare
vedere cosa sta succedendo è una grande idea
per loro e così è così che finiamo
lassù è ciò che è molto rapidamente
spostando la diapositiva questo è un esempio di cosa
possiamo fare se è possibile acquistare una volontà di stand
mostralo, ma ecco un esempio di
dove stiamo mandando è questo
statistiche sulla loro pubblicazione-iscriversi
sistema sul nostro sistema di abbonamento-pubblicazione
e quindi abbonarsi a tali informazioni
quindi ad esempio abbiamo le tariffe dei messaggi
abbiamo il throughput di dati che abbiamo
stato operativo qui
e in effetti qualsiasi della gestione
informazioni che possiamo produrre su questo
piattaforma che pubblichiamo su questo in questo tipo
di formato ok tutto bene e circa
un’altra ragione usa il caso quindi ripeti okay
quindi questo è abbastanza popolare nel micro
servizi tipo di approccio così dentro
microservizi persone parlano di poliglotta
persistenza e una delle preoccupazioni
c’è quello che succede se la mia domanda
i documenti voglio avere un altro stile
di database che sta andando a
consistono le mie informazioni di stato in modo che io
posso avviare me stesso un inizio medio
bene il punto è in un micro servizio
tipo di architettura come lo spazio è davvero
rappresentato da ciò che è successo sul nostro
messaggio sogno giusto così solo in termini
di dove ci troviamo nel flusso di dati ma
anche le informazioni di configurazione possono essere
inviato come messaggi così per questo usiamo questo
idea di uno spunto che possono sottoscrivere
argomenti che sono pubblicati due così siamo
mescolando questo modello di pubblicazione-sottoscrizione
siamo un po ‘in fila perché come segnali
stanno diventando abbonati e cosa noi
potremmo fare con la nostra coda è possibile
sottoscrivi più argomenti è completamente
dinamico se puoi solo aggiungere
abbonamenti durante l’operazione di messaggistica
quindi ciò che significa in questo suoniamo a
l’idea di stato è che possiamo creare uno stato
Q che ascolta tutte le informazioni
questo è rilevante per la nostra applicazione
stato in modo che possa essere dati di configurazione
e probabilmente sarà la nostra app
dati a un flusso di dati e il punto è
poi abbiamo avuto un segnale che contiene tutti
le informazioni di stato e se nostre
l’applicazione fallisce e incontra il riavvio
possiamo semplicemente riavviare e iniziare a navigare
noi lo chiamiamo cioè guardando
i messaggi in coda senza
consumandoli e in questo modo possiamo pienamente
ripeti l’intero stato del mondo da
dove siamo
ci sono altre cose che possiamo fare anche noi
abbiamo questa idea del nostro ultimo valore Q
che essenzialmente ascolta quello che sei
pubblicare e memorizzare solo l’ultimo
messaggio che hai pubblicato così quando siamo
bootstrapping abbiamo replay nostro stato di
mondo e l’ultima informazione
abbiamo bisogno di quanto lontano ho avuto nell’invio
il mio ultimo messaggio prima che mi schiantassi un’ora
lvq terrà queste informazioni per te
se queste informazioni di stato sono associate in primo piano
è utile solo per una certa quantità di
tempo possiamo taggare i messaggi con il tempo
per vivere e così uscirà il
fare la coda quando non sono più utili così
per esempio potremmo avere un processo
ciò sta avvenendo forse durante i cicli notturni
per esempio così configurazione
informazioni dalla notte precedente è
di nessun interesse quindi abbiamo impostato il nostro Cpl in
espirare quei messaggi dalla chiave così
ultimo ma non meno importante stavo parlando prima
su questa idea di argomento dinamismo dime
e in che modo vengono creati i nostri argomenti
al volo e si può avere un singolo
argomento per messaggio e questo è un grande
esempio di come puoi farlo come a
mio collega robotico in realtà
ho presentato questa sorella che ti contendo
immaginiamo che siamo una consegna
società e abbiamo veicoli con
consegne su di loro in giro e
vogliamo che il nostro utente sia in grado di iniziare il nostro
l’avvio è è queste applicazioni e
scopri cosa è vicino al veicolo
a questo ora potremmo pubblicare aggiornamenti da
ogni singolo veicolo e avere il
processo di applicazione tutti quei messaggi
e trova quelli che ti interessano
ma quello non implicherebbe fare il suo
tipo di posizione geografica corrispondente
corrispondenza su ogni singolo aggiornamento da
hmm ogni cosa, se c’è
qualcosa di un po ‘più semplice di quello
bene immaginiamo di mettere la posizione
del nostro veicolo nell’argomento ora da mantenere
qui è quello che significa che ogni
aggiornamenti singoli da ogni singolo veicolo
è in un argomento completamente nuovo e quello
ti rende severo da pranzo argomento
okay, quindi abbiamo la nostra posizione sul veicolo
lì se dicevamo prima se vogliamo
per identificare un particolare veicolo che possiamo
utilizzare i nostri jolly per fare che possiamo
Si prega di dire che non importa dove un’auto è 21 I
vogliono solo sapere Voglio solo per farlo
ma pensiamo a quello che possiamo fare
con le nostre wild card se poi ci abbiniamo
parte del luogo, diciamo
abbiamo abbinato il meno significativo
digita ciò a cui corrisponde effettivamente
è un rettangolo su una mappa in realtà il
equatore sarà un quadrato ma in più
casi è un rettangolo perché lo siamo
abbinare tutto da questo caso
latitudine 5150 2015 2015 9 ma allo stesso modo
possiamo fare lo stesso a lungo per scegliere
e questo lo darà un po ‘
rettangolo sul tappeto bene se pensi
su tutto ciò che dobbiamo fare è scansionare
e giù le cifre significative con il nostro
wild card e che aumenta e riduce
la dimensione del rettangolo che erano
corrispondendo così effettivamente possiamo abbinare molto
rettangoli più grandi possiamo abbinare a
rettangolo di quasi tutte le dimensioni noi
scegli semplicemente spostando la nostra wild card verso l’alto
e giù le cifre significative hmm ok
bene questo ci dà dei rettangoli ma noi abbiamo visto
una Leah circolare come faremo
che bene e con cui era familiare
la tua teoria risulta che ogni cerchio
può essere in una forma circolare può essere più
o meno approssimato da successive
rettangoli quindi tutto ciò che facciamo è aggiungere
rettangoli sempre più raffinati e noi
può ottenere praticamente qualsiasi forma vogliamo così
se dovessimo guardare il nostro cerchio qui
puoi vedere che li abbiamo generati
abbonamenti rettangolari che molto
abbinare strettamente il Ritz che corrisponde al
cerchio accovacciato possiamo fare qualsiasi poligono
possiamo ottenere la loro precisione fino al
metro di livello perché è la precisione
della nostra latitudine e longitudine ora il
la cosa fondamentale qui è quella per questo cerchio
generiamo gli abbonamenti una volta
pensiamo che vogliamo che la nostra applicazione sia
quindi ricevere tutti i dati corrispondenti
quel cerchio quindi quello che significa è quello
ora tutto a un tratto solo facendo un po ‘
generazione di abbonamento che siamo ora
corrispondenza geografica in quel limite
lì e otterremo l’aggiornamento attraverso tutti
questi veicoli all’interno di quella partita in realtà
tempo senza calcoli extra quindi abbiamo
trasformato quello che è un problema abbastanza difficile
di dover fare un sacco di abbinamento su
ogni messaggio in qualcosa che è
semplicemente una questione di generare il giusto
abbonamenti quindi è proprio così
abbastanza potente possiamo farlo
l’algoritmo attuale se sei interessato è
prenderemo il mondo e lo divideremo
in quattro quadranti che corrispondono alla partita
iscrizioni cifra più significativa in
questo caso e vediamo se la nostra area di
l’interesse corrisponde a quello particolare
quadrante e se non lo lanciamo
via se fa quello che facciamo è quindi spostare
giù le nostre cifre significative che generano
i nostri abbonamenti più piccoli e noi solo
continua a farlo così dividiamo il nostro quadrante
fino a 100 quadranti più piccoli e lanciare
via quelli che non corrispondono e mantengono
quelli che lo fanno e poi lo facciamo per
ognuno di quei match mizzou
e continuate ad andare avanti finché non otteniamo il
livello di precisione desiderato sì, è abbastanza
l’ultimo piccolo algoritmo preciso
punto su questa cosa è come stiamo andando
per implementare il nostro logit di sottoscrizione potrebbe
fallo tramite la libreria, quindi ogni
applicazione effettua una chiamata per la
libreria e che genera il
abbonamenti per questo hmm che è un po ‘
dolore però perché poi hai
dipendenze dalla libreria e tu hai
è diverso forse sei diverso
le lingue che stai usando non sono ideali
ben vi ricordate in precedenza ero
parlando del nostro abbonamento a questo
è stato usato per la sicurezza quello che potevamo fare
proprio questo possiamo avere il nostro
app di sottoscrizione capire
il nostro algoritmo poligono e generare il
abbonamenti per noi quindi che cosa
succede è il mio utente entra e dice che sono
interessato alle informazioni all’interno di a
certa area e dice l’abbonamento
chiedi quale sia quell’area il nostro abbonamento
che genera l’abbonamento e
li applica per conto del nostro utente
applicazione fino a un utente
l’applicazione è preoccupata di tutto ciò che fa
connetti invia l’area di interesse e
all’improvviso ha live live in tempo reale
flusso di dati per organo dentro per fare no
computazione qualunque sia così
incredibilmente leggero cosa c’è di più
modifiche che apportiamo al nostro abbonamento
algoritmo i vns per applicarli una volta
rende davvero facile l’implementazione se noi
bisogno di ridimensionare questo atto di abbonamento noi
può solo ridimensionarlo orizzontalmente perché
stiamo solo ascoltando la nostra sotto-lista dei pub
quindi è davvero tutto ciò che avevo in termini di
casi d’uso abbiamo ovviamente molto di più
casi d’uso e quello, ma quelli sono tipo di
alcuni degli aspetti interessanti di
routing e filtro di argomenti che forse
potresti applicare a quello che stai facendo
questa è una conferenza per sviluppatori così noi
sempre avere uno snippet di codice giusto
quindi questo è il mio ultimo frammento di codice e questo
va qualcosa di simile se il tuo argomento
non mi scusi il tuo argomento non è solo
un tag quindi hai accesso a questo argomento
strutture di routing e filtraggio come
puoi farlo per la tua posizione come
puoi fare i tuoi dati molto semplici
versioning come si può fare un messaggio
replay e questo è grazie mille
spero che tu l’abbia trovato utile
[Applausi]
tu
[Applausi]
per parlare oggi di argomenti gustosi
quindi l’ idea alla base di questa sessione davvero
è solo per darti un’idea di
il tipo di lavoro che facciamo a conforto nella
termini di aiutare i clienti a risolvere il
problemi che vedono così speranzosi qui
saranno alcuni strumenti e tecniche
che puoi usare nel tuo sviluppo
compiti così questa è l’ idea in realtà non lo è
un passo da bender se vuoi un venditore
foto ne abbiamo di grandi al nostro
per favore vieni a trovarci, quindi il mio nome è
Tom Fair è stato con conforto su
e via ora per circa quattro e mezzo
anni ho iniziato ora a Singapore
il team di supporto in realtà ha contribuito a risolverlo
fare supporto tecnico in modo gentile
supporto alla produzione per i clienti che
riguardo a Londra
due anni fa, dove mi sono trasferito al
team pre vendita solido, aiutando il nostro
i clienti risolvono i problemi che loro
avere in movimento i dati in giro così è il conforto
tutto su questa idea di dati aperti
movimento quindi una piattaforma flessibile che
ti consente di spostare i dati di dati intorno ad esso
in qualsiasi formato per favore senza provare
per legarti a una speculazione va bene così a
parola veloce dall’host dei brani per favore
valutare le sessioni questo non è il mio primo
vai a ma è stata la prima vista
per andare così il tuo feedback è davvero
importante perché ovviamente vogliamo
fare video a cui questo materiale è utile
tu il più possibile se hai domande
e non so che sei timido o ti piace
vale più di parlare per favore
sentiti libero di fare domande con il
app se vuoi fare domande mentre
Sto parlando per favore basta attaccare la mano
su e verrò da te sì abbastanza felice
prendere domande mentre parlo grubs e
ponderato verso la fine in alternativa
se è una domanda più complicata allora
per favore, come alla fine, andiamo
iniziato così gentile della base di questo discorso
è l’idea di argomenti e l’ idea di
tipo di sistema di pubblicazione-sottoscrizione quindi sono
sperando che la maggior parte di voi sono a conoscenza di
ciò che l’abbonamento pubblicato significa in termini
di un modello per lo scambio di informazioni
ma solo per tipo di livello impostato qui dare
qualche revisione capisci esattamente
di cosa sto parlando stiamo parlando
sullo scambio di informazioni in
sistemi distribuiti okay così questo potrebbe
essere applicazioni in esecuzione su diversi
ospita potrebbe essere sullo stesso host
potrebbero essere le applicazioni in esecuzione
diversi data center in esecuzione a livello globale
va bene così una delle caratteristiche chiave di questo
allora questa idea di disaccoppiamento è così a
il fallimento in un’applicazione non dovrebbe
impatto sullo scambio di tali dati
ovviamente che l’applicazione è
non disponibile quindi come funziona?
abbiamo un editore che è responsabile
per l’ invio di dati e pubblica il suo
dati su un argomento per chiamarlo soggetto ma
essenzialmente è un tag un pezzo di
metadati che descrive idealmente cosa
che i dati sono e che abilitano le persone che
bisogno di ricevere che quei dati nostri
abbonati per scegliere e scegliere esattamente
quali informazioni vogliono
ricevere ora la caratteristica fondamentale di questo è
quello di darci l’accoppiamento forse
il nostro abbonato non è disponibile in nessuno
dato il tempo forse ce ne sono molti
abbonati nel qual caso ci dà
questa cosa si chiama fan out così puoi
avere per esempio o altre persone che usano
i loro telefoni cellulari per aggiornare dicono stock
i prezzi avresti anche più
editori che pubblicano sullo stesso argomento
a destra un argomento non è conferito limitato a
un particolare editore e questo ci dà
piano in cui hai più persone
produttori potresti averne solo uno
abbonato ascoltando quei dati e
un esempio potrebbe essere una specie di
Big Data Cluster
che ascolta tutto ciò che è
prodotto nella tua organizzazione
quindi eseguirli successivamente analisi di lotti su
ora qualcosa che non fai normalmente
associare con pubblicare-iscriversi questo
idea di persistenza ok la tua persistenza
dei dati di dati residenti nel
sistema di pubblicazione-sottoscrizione fino a a
l’abbonato è pronto a ricevere quei dati
normalmente quello che succede è una specie di a
vivi se sei lì, sei lì se
non sei un tipo di sistema ma alcuni di
questi sistemi di abbonamento-pubblicazione offrono
la tua persistenza e infatti ti offriamo un
tipo di ibrido puoi scegliere di avere entrambi
così un’ora e ne parlerò in a
un po ‘di tempo ma la chiave qui è dove
abbonato sta registrando interesse in a
argomento sta dicendo che voglio ricevere i dati
di un tipo particolare e il tuo editore
sta quindi taggando i dati con tali metadati
ok, quindi parla di un argomento, allora cos’è
l’argomento che ho già menzionato
tag di parole ma in realtà è un po ‘un
leader in questa diapositiva che abbiamo appena descritto
che argomento è allora è un pezzo di
i metadati saranno una stringa così
questo è facilmente comprensibile ora il
le tentazioni a volte possono essere sono solo
andando ad etichettare i dati che sto andando
per dargli un tag molto semplice
lo descrive ma c’è un problema con
questo in quanto se ne abbiamo multipli
abbonati alcuni di quegli abbonati
potrebbe essere interessato a diversi set di
quei dati se pensi al tuo Venn
diagramma dove sei un po ‘ universale
set è tutti i dati che sono in corso
prodotto i tuoi abbonati stanno per
essere piccoli cerchi all’interno di quel Venn
diagramma e alcuni di quei cerchi sono
andando a sovrapporsi quindi prendiamo questo cibo
esempio immagina dove un po ‘di
generi alimentari di una sorta di rivenditore di prodotti alimentari e
stiamo cercando quattro fette di cose
seni di cibo così potremmo avere la mela
fette e potremmo essere tentati di solo
tagga i nostri dati delle fette di mela con qualcosa
come fette di mela di cibo, ma poi se lo siamo
ascoltare tutto ciò che è slice è
dobbiamo prendere una decisione se tutti noi
è che c’è un tag semplice così
quello che potremmo fare è che potremmo elencarli tutti
tipo di fetta giusta, quindi potremmo avere
fette di mela a fette di mano hmmm c’è
un problema con quello anche se siamo un po ‘
rotto un chiodo a disaccoppiare perché se noi
ora inizia a produrre fette di pesca e le nostre
abbonato è interessato a tutti i tipi di
fette ora dobbiamo aggiornare la sua lista
e abbiamo rotto il nostro disaccoppiamento
perché un aggiornamento al produttore significa
che dobbiamo aggiornare l’abbonato
finisce e non è quello che vogliamo fare
hmm ok bene, forse potremmo fare una stringa
la ricerca è una buona idea su cosa possiamo fare
possiamo andare fino alla fine del
stringa e cerca la parola fette hmm
bene, va bene, ma il problema è
lì hai generato una sorta di
dipendenza dalla struttura esatta del
tag sai che hai un tag strutturato
efficacemente è solo l’utente che usa
cerca le stringhe per trovare quella struttura
e poi c’è un altro problema per te
vedi che devi fare una ricerca stringa e
sarà diverso in
lingue diverse forse sarai
usando una lingua diversa per farlo
forse o li implementeremo
stringa cerca te stesso hmm che porta a
incoerenza che un’applicazione potrebbe fare
ricerca di stringhe in un modo
l’applicazione potrebbe eseguire la ricerca di stringhe
un modo diverso hmm che non è ideale hmm
e c’è anche un altro problema ma
prima di entrare in quello guardiamo
come potremmo farlo se facciamo il nostro argomento
gerarchico quindi un esempio è lì
usando una barra un po ‘come una cartella
delimitatore che ci dà più flessibilità
cosa ci permette di fare
se abbiamo la wild card rappresentata qui
con l’asterisco o la stella che significa noi
può facilmente selezionare solo fette e
non ci interessa cosa succede all’altro
livelli di gerarchia e questa è la chiave
perché allora non importa quale sia il
i produttori fanno non importa se aggiungiamo
un nuovo progetto come le fette di pesca nostre
la corrispondenza degli argomenti corrisponderà sempre a ciò che noi
voglio che sia a fette così questo
approccio gerarchico significa che puoi
essere coppia da cosa viene prodotto
ciò che gli abbonati sono interessati
un altro vantaggio di questo è se hai
un sesto altro a cui interessa solo
le pesche potrebbero essere fette di pesca potrebbero essere
pesche intere possiamo usare esattamente il
lo stesso tipo di struttura possiamo solo guardare
a pesca solo e jolly i tipi di
fette e ottenere solo funzionalità e questo è
quando ciò diventa veramente utile è se
più tardi, dopo aver implementato il nostro
argomento che vogliamo avere completamente nuovo
tipo di conversazione in corso che noi
mai anticipato quando abbiamo progettato questo
è solo una questione di pubblicazione per il
argomento giusto e creazione del diritto
abbonamento quindi l’intera idea qui è
questo argomento non è la stessa come un tag se
usi un sistema di argomenti gerarchici con
selvaggina si ottiene così tanta flessibilità
e ottieni questo accoppiamento Trudy tra
i consumatori e i produttori dei dati
e la struttura dell’argomento stesso va bene così
solo per sperperare quel punto a casa perché dovrei
cura di questo bene è più semplice se
stai usando la tua pubblicazione-iscriviti
sistema per fare tutto questo filtraggio per te
non c’è bisogno di preoccuparsi di che, in
la tua applicazione che non stai implementando
routine di ricerca stringa per esempio è
coerente qualunque cosa tu stia facendo
nel tuo scambio di informazioni sei
sempre usando lo stesso modello per selezionare
i dati che ti interessano e questo è
la tua wild card
ed ecco un altro punto se andiamo
torna a questa slide qui oops no
uno tutto quello che ho io vado indietro qui
eccoci nell’esempio di dove
stiamo facendo per esempio di stringa
ricerca che dobbiamo ricevere ogni
singolo messaggio e ricerca attraverso il
argomento e questo è davvero inefficiente
proprio tu stai ricevendo tutti quei dati e
buttandone via un sacco se lo fai tu
approccio wild-card e tu lasci il tuo pub
sottosistema fai quello per te che ottieni
i dati che ti interessano
e ciò significa che la tua applicazione
deve fare molto meno lavoro e nel
caso di scusa nel caso di come il
Internet delle cose in cui hai basso
potenza, ad esempio, i gateway che parlano
qualcosa come 3G ci sei probabilmente
cura quante informazioni sei
scambiando e scambiando solo quei dati
questo è probabilmente molto
anche molto importante, diciamo subito
pensa all’argomento stesso, okay
ho questa idea di jolly e a
struttura tematica gerarchica dov’è
questo argomento creato è creato quando noi
invia il messaggio è un amministrato
oggetto che dobbiamo creare da qualche parte
è qualcosa che dobbiamo creare sul
mediatore giusto, dobbiamo dire che voglio
l’argomento ora e ho intenzione di creare
lo scambio di informazioni basato su
quell’argomento è l’argomento creato dal
ricevitore bene come ci piace fare cose
quella consolazione è che in realtà è l’argomento
stesso è solo una proprietà del messaggio
lo crei effettivamente su send e it
diventa solo un pezzo di metadati sul
il messaggio stesso non è amministrato
oggetto in qualsiasi senso è tutto sul
broker ciò che effettivamente accade è il
registri del ricevitore interessati al
argomento e crea l’abbonamento
quindi sei una specie di oggetti amministrati
sono in realtà abbonamenti e non il
argomento stesso e questo significa che il tuo
il mittente è libero di inviare qualsiasi messaggio a
qualsiasi destinazione fornita all’utente
permessi che cosa significa anche questo
l’ argomento può essere creato sul messaggio di invio
e quindi può essere diverso per ogni
il singolo messaggio che hai inviato è completamente
dinamico e quando arriviamo a uno dei
utilizzare casi vedremo come essi possono essere utilizzati
va bene così tanto revisione allora lì
entriamo in alcuni dettagli okay data
i formati sembrano piuttosto noiosi ma
si spera che questo diventi chiaro
più tardi quindi immaginiamo per che stiamo lavorando
un diritto di backup open source dinamico e funky
quindi sai che è abbastanza informale
so che sono calmo, sono un mago o e e
tutto ciò che devi sapere è davvero il mio cellulare
numero di telefono per ottenere di me quando
lo sono quando le cose vanno male
grande è un lavoro molto bene e in
infatti funziona così bene che ci stiamo prendendo in giro
sono stati acquistati da una società più grande che
Voglio qualche struttura che vogliono sapere
a chi fai rapporto e chi ti riferisce
quindi il tuo formato dei dati cambierà
ok, non è un grosso problema da subito
e semplicemente controllando il nostro aggiornamento del codice tutto
le nostre applicazioni sono tutte felici ah
ma poi ottieni la telefonata
fuori c’è un’applicazione di reporting che
non può essere aggiornato ma non lo so
perché potrebbe essere una regolamentazione hmm, quindi abbiamo bisogno
per eseguire questi due formati di dati al
Allo stesso tempo, ah, questo è un problema che vogliamo
scrivere il nostro codice in modo che comprenda
entrambi i formati di dati hmm sono uno
approccio, ma probabilmente lo è
l’UL finisce con il codice legacy sospeso
intorno al posto forse un po ‘di
debito tecnico nessuno può essere disturbati a
entra e rifila quel codice tu no
più bisogno di bene ecco un’alternativa
approccio prima di tutto, pensiamo
sulla nostra tradizionale pipeline icd
possiamo usare il nostro formato base qui Jason
possiamo usarlo come una specie di chiave
quali sono le nostre date di formato dei dati
se taggliamo i nostri file di codice sorgente in questo
caso usando gli ingranaggi che possiamo con loro
quale formato dati è e quando
veniamo a fare i conti, possiamo usarlo
tag e qui lo facciamo proprio così in questo
caso sto usando Jason, quindi carichiamo il nostro
classe che in termini jason significa questo
per esempio con Jason taggando il
classe dove quindi taggare il formato dei dati
okay e allora quello che possiamo fare è che possiamo
prendi un buon nome per il tag e aggiungilo a
l’argomento quindi quello che abbiamo fatto qui è se
informazioni estratte dalla nostra versione
sistema di controllo e metterlo direttamente in
l’argomento perché è tutto ciò che è
completamente fatto in esso ora ciò che è grande
su questo è che poi a prescindere
che formato di dati siamo automaticamente
creare i nostri argomenti e il formato dei dati è
fatto parte di questo argomento, ad esempio
quando invio i miei dati v1 andrà solo
oltre la fabbrica un argomento cosa c’è di più
Ho costruito tutto il mio codice usando tutto questo
quel codice di tag v1 quindi tutti i miei dati
le routine di formattazione comprenderanno la v1
e posso eseguirli entrambi in parallelo
perché le mie applicazioni v1 non sono mai
andando a prendere il mio formato di dati v2 perché
se sono stati costruiti implicitamente
capisco solo il formato che il mio argomento
è un’idea abbastanza semplice ma è così
abbastanza potente ti permette di essere
completamente fiducioso che il tuo
l’applicazione sta per ottenere i dati
il formato che si aspetta bene
così questa è un’idea che è piuttosto una
bello pulito ho parlato di un altro
caso studio ora autorizzazione quindi immagina
nel nostro sottosistema pub forse ne vogliamo alcuni
le persone non sono in grado di vedere i dati
non dovrebbero vedere così bene
esempio, diciamo che hai un
applicazione mobile e si sta parlando in
e stai ricevendo per esempio un
saldo del conto giusto il tuo account
l’equilibrio sta venendo su un argomento ma tu
non voglio che nessun altro veda il tuo
saldo del conto va bene così un uso pulito di
tipo di tecnologia spinta in
questo caso è come e quando l’ Europa è tua
l’equilibrio è aggiornato possiamo spingerlo
aggiornamento a voi piuttosto che fare affidamento su di voi
richiedere un aggiornamento per il tuo saldo
okay, quindi come possiamo farlo, allora siamo noi
può avere un’applicazione separata questa
ecco cosa ho chiamato app in abbonamento
su cui gestisci le tue iscrizioni
per conto di altre applicazioni, quindi facciamolo
immagina che la nostra qualsiasi app qui sia
su internet ora il problema
c’è quel hmm se richiedo un equilibrio
richiesta non lo voglio davvero sapere
su quali argomenti parlare perché lui allora
potrebbe un cappello iniziare ad abbonarsi ad argomenti
non dovrebbe saperlo così
esempio potresti dire up so il mio
gli aggiornamenti di bilanciamento stanno arrivando in equilibrio
aggiorna Tom forse vediamo Harry
l’aggiornamento del saldo è sottoscrivendo a
aggiustamento dell’aggiornamento Harry hmm ok quindi cosa abbiamo
facciamo qui abbiamo questa app separata
questo è sotto il tuo controllo probabilmente
in esecuzione nella rete principale e se ne andò
la nostra applicazione internet qui ce n’è
le applicazioni collegano invia una richiesta
su un argomento diverso e dice che voglio
voglio chiedere un equilibrio
e io sono tranquillo ora abbonamento e rimane
quassù quindi decidi quali argomenti qualsiasi app
con l’utente tom è in grado di iscriversi a ok
quindi è un po ‘ di logica del core business
che hai eseguito in abbonamento
app ma e qui è il bit intelligente il
descrizione f fa l’abbonamento su
conto di qualsiasi applicazione in modo sottoscrizione che
dice al sistema publish-subscribe nef
ora si sta iscrivendo all’aggiornamento del saldo
gobba e qual è la chiave su questo è quello
qualsiasi app non sa nemmeno quale argomento è
ascoltando non sa nemmeno cosa
l’abbonamento è tutto ciò che sa è che lui
sarebbe collegato al
sistema di pubblicazione-sottoscrizione e dati
inizia a venire verso di lui, quindi se qualche atto
cerca di fare qualcosa di intelligente e prova
per iscriversi a qualcosa che non è
il diritto a te non può nemmeno farlo
abbonamenti perché sono stati tutti
applicato per lui in modo che significa che il tuo
l’autorizzazione può essere completamente dinamica
se all’improvviso decidiamo di farlo
ha bisogno di accedere ad altri dati e lo è
diritto a ciò che possiamo quindi iniziare
applicare gli abbonamenti per suo conto a
qualsiasi punto durante questa conversazione ok
per quanto riguarda il monitoraggio, allora abbiamo
questo sistema di iscrizione-sottoscrizione e noi siamo
sarà interessato a quello che sta succedendo
su lì per assicurarsi che il nostro sistema
è sano ok quindi forse c’è un
applicazione là che è sotto davvero
il carico pesante non può far fronte alla messaggistica
valuta forse c’è qualcuno che ascolta
ma stanno ascoltando per troppo
hanno il volume alzato troppo in alto
come avremo a che fare con quello
su qualcuno che sta cercando di fare strato
i messaggi che vomitano su tutto il
luogo e le persone in realtà non lo sono
particolarmente interessato a ciò che loro
lo stesso per quello che sta succedendo
lui bene è bloccato
è completamente smesso di funzionare così
ci sono un paio di cose che tu
bisogno di fare attenzione per voi che abbiamo bisogno di
assicurati che le persone non stiano consumando
troppe risorse di cui abbiamo bisogno per essere sicuri
che le nostre applicazioni sono sane e
può tenere il passo con il nostro flusso di messaggi e
dobbiamo assicurarci che le applicazioni
non si sono fermati completamente bene ecco
un’idea di cosa succede se usiamo il nostro
sistema di pubblicazione-sottoscrizione da distribuire
che i dati nel mondo solido abbiamo un
API di monitoraggio e gestione e piuttosto
di avere in tutti quelli che ne hanno bisogno
informazioni che sparano contro l’API e
perché non avere un solo monitoraggio
app che ascolta tutto ciò che
bisogni deve sapere e quindi pubblicare
quell’informazione sopra il pub sub-bus
e in questo modo chiunque ne abbia bisogno
le informazioni possono semplicemente connettersi come a
abbonato normale e ricevere quello
monitoraggio delle informazioni piuttosto quello che
direi che c’è un caso di tipo di
noi in termini di consumo di un sottosistema di pub
nostro diritto cibo per cani che andremo a
distribuire le nostre informazioni dal nostro
server di distribuzione delle informazioni quindi cosa
puoi farlo allora è davvero molto facile
per attaccare i cruscotti per esempio così tu
sai che potresti avere qualcuno che vuole
per costruire una dashboard web così potresti
voglio farlo usando il riposo che potresti
avere un’applicazione mobile e lo sai
forse le tue operazioni alla gente piace andare
a casa il fine settimana e loro non vogliono
dover collegarlo che non lo fanno
devo venire nel tuo ufficio e forse
avere qualcosa sul proprio telefono cellulare
vedere cosa sta succedendo è una grande idea
per loro e così è così che finiamo
lassù è ciò che è molto rapidamente
spostando la diapositiva questo è un esempio di cosa
possiamo fare se è possibile acquistare una volontà di stand
mostralo, ma ecco un esempio di
dove stiamo mandando è questo
statistiche sulla loro pubblicazione-iscriversi
sistema sul nostro sistema di abbonamento-pubblicazione
e quindi abbonarsi a tali informazioni
quindi ad esempio abbiamo le tariffe dei messaggi
abbiamo il throughput di dati che abbiamo
stato operativo qui
e in effetti qualsiasi della gestione
informazioni che possiamo produrre su questo
piattaforma che pubblichiamo su questo in questo tipo
di formato ok tutto bene e circa
un’altra ragione usa il caso quindi ripeti okay
quindi questo è abbastanza popolare nel micro
servizi tipo di approccio così dentro
microservizi persone parlano di poliglotta
persistenza e una delle preoccupazioni
c’è quello che succede se la mia domanda
i documenti voglio avere un altro stile
di database che sta andando a
consistono le mie informazioni di stato in modo che io
posso avviare me stesso un inizio medio
bene il punto è in un micro servizio
tipo di architettura come lo spazio è davvero
rappresentato da ciò che è successo sul nostro
messaggio sogno giusto così solo in termini
di dove ci troviamo nel flusso di dati ma
anche le informazioni di configurazione possono essere
inviato come messaggi così per questo usiamo questo
idea di uno spunto che possono sottoscrivere
argomenti che sono pubblicati due così siamo
mescolando questo modello di pubblicazione-sottoscrizione
siamo un po ‘in fila perché come segnali
stanno diventando abbonati e cosa noi
potremmo fare con la nostra coda è possibile
sottoscrivi più argomenti è completamente
dinamico se puoi solo aggiungere
abbonamenti durante l’operazione di messaggistica
quindi ciò che significa in questo suoniamo a
l’idea di stato è che possiamo creare uno stato
Q che ascolta tutte le informazioni
questo è rilevante per la nostra applicazione
stato in modo che possa essere dati di configurazione
e probabilmente sarà la nostra app
dati a un flusso di dati e il punto è
poi abbiamo avuto un segnale che contiene tutti
le informazioni di stato e se nostre
l’applicazione fallisce e incontra il riavvio
possiamo semplicemente riavviare e iniziare a navigare
noi lo chiamiamo cioè guardando
i messaggi in coda senza
consumandoli e in questo modo possiamo pienamente
ripeti l’intero stato del mondo da
dove siamo
ci sono altre cose che possiamo fare anche noi
abbiamo questa idea del nostro ultimo valore Q
che essenzialmente ascolta quello che sei
pubblicare e memorizzare solo l’ultimo
messaggio che hai pubblicato così quando siamo
bootstrapping abbiamo replay nostro stato di
mondo e l’ultima informazione
abbiamo bisogno di quanto lontano ho avuto nell’invio
il mio ultimo messaggio prima che mi schiantassi un’ora
lvq terrà queste informazioni per te
se queste informazioni di stato sono associate in primo piano
è utile solo per una certa quantità di
tempo possiamo taggare i messaggi con il tempo
per vivere e così uscirà il
fare la coda quando non sono più utili così
per esempio potremmo avere un processo
ciò sta avvenendo forse durante i cicli notturni
per esempio così configurazione
informazioni dalla notte precedente è
di nessun interesse quindi abbiamo impostato il nostro Cpl in
espirare quei messaggi dalla chiave così
ultimo ma non meno importante stavo parlando prima
su questa idea di argomento dinamismo dime
e in che modo vengono creati i nostri argomenti
al volo e si può avere un singolo
argomento per messaggio e questo è un grande
esempio di come puoi farlo come a
mio collega robotico in realtà
ho presentato questa sorella che ti contendo
immaginiamo che siamo una consegna
società e abbiamo veicoli con
consegne su di loro in giro e
vogliamo che il nostro utente sia in grado di iniziare il nostro
l’avvio è è queste applicazioni e
scopri cosa è vicino al veicolo
a questo ora potremmo pubblicare aggiornamenti da
ogni singolo veicolo e avere il
processo di applicazione tutti quei messaggi
e trova quelli che ti interessano
ma quello non implicherebbe fare il suo
tipo di posizione geografica corrispondente
corrispondenza su ogni singolo aggiornamento da
hmm ogni cosa, se c’è
qualcosa di un po ‘più semplice di quello
bene immaginiamo di mettere la posizione
del nostro veicolo nell’argomento ora da mantenere
qui è quello che significa che ogni
aggiornamenti singoli da ogni singolo veicolo
è in un argomento completamente nuovo e quello
ti rende severo da pranzo argomento
okay, quindi abbiamo la nostra posizione sul veicolo
lì se dicevamo prima se vogliamo
per identificare un particolare veicolo che possiamo
utilizzare i nostri jolly per fare che possiamo
Si prega di dire che non importa dove un’auto è 21 I
vogliono solo sapere Voglio solo per farlo
ma pensiamo a quello che possiamo fare
con le nostre wild card se poi ci abbiniamo
parte del luogo, diciamo
abbiamo abbinato il meno significativo
digita ciò a cui corrisponde effettivamente
è un rettangolo su una mappa in realtà il
equatore sarà un quadrato ma in più
casi è un rettangolo perché lo siamo
abbinare tutto da questo caso
latitudine 5150 2015 2015 9 ma allo stesso modo
possiamo fare lo stesso a lungo per scegliere
e questo lo darà un po ‘
rettangolo sul tappeto bene se pensi
su tutto ciò che dobbiamo fare è scansionare
e giù le cifre significative con il nostro
wild card e che aumenta e riduce
la dimensione del rettangolo che erano
corrispondendo così effettivamente possiamo abbinare molto
rettangoli più grandi possiamo abbinare a
rettangolo di quasi tutte le dimensioni noi
scegli semplicemente spostando la nostra wild card verso l’alto
e giù le cifre significative hmm ok
bene questo ci dà dei rettangoli ma noi abbiamo visto
una Leah circolare come faremo
che bene e con cui era familiare
la tua teoria risulta che ogni cerchio
può essere in una forma circolare può essere più
o meno approssimato da successive
rettangoli quindi tutto ciò che facciamo è aggiungere
rettangoli sempre più raffinati e noi
può ottenere praticamente qualsiasi forma vogliamo così
se dovessimo guardare il nostro cerchio qui
puoi vedere che li abbiamo generati
abbonamenti rettangolari che molto
abbinare strettamente il Ritz che corrisponde al
cerchio accovacciato possiamo fare qualsiasi poligono
possiamo ottenere la loro precisione fino al
metro di livello perché è la precisione
della nostra latitudine e longitudine ora il
la cosa fondamentale qui è quella per questo cerchio
generiamo gli abbonamenti una volta
pensiamo che vogliamo che la nostra applicazione sia
quindi ricevere tutti i dati corrispondenti
quel cerchio quindi quello che significa è quello
ora tutto a un tratto solo facendo un po ‘
generazione di abbonamento che siamo ora
corrispondenza geografica in quel limite
lì e otterremo l’aggiornamento attraverso tutti
questi veicoli all’interno di quella partita in realtà
tempo senza calcoli extra quindi abbiamo
trasformato quello che è un problema abbastanza difficile
di dover fare un sacco di abbinamento su
ogni messaggio in qualcosa che è
semplicemente una questione di generare il giusto
abbonamenti quindi è proprio così
abbastanza potente possiamo farlo
l’algoritmo attuale se sei interessato è
prenderemo il mondo e lo divideremo
in quattro quadranti che corrispondono alla partita
iscrizioni cifra più significativa in
questo caso e vediamo se la nostra area di
l’interesse corrisponde a quello particolare
quadrante e se non lo lanciamo
via se fa quello che facciamo è quindi spostare
giù le nostre cifre significative che generano
i nostri abbonamenti più piccoli e noi solo
continua a farlo così dividiamo il nostro quadrante
fino a 100 quadranti più piccoli e lanciare
via quelli che non corrispondono e mantengono
quelli che lo fanno e poi lo facciamo per
ognuno di quei match mizzou
e continuate ad andare avanti finché non otteniamo il
livello di precisione desiderato sì, è abbastanza
l’ultimo piccolo algoritmo preciso
punto su questa cosa è come stiamo andando
per implementare il nostro logit di sottoscrizione potrebbe
fallo tramite la libreria, quindi ogni
applicazione effettua una chiamata per la
libreria e che genera il
abbonamenti per questo hmm che è un po ‘
dolore però perché poi hai
dipendenze dalla libreria e tu hai
è diverso forse sei diverso
le lingue che stai usando non sono ideali
ben vi ricordate in precedenza ero
parlando del nostro abbonamento a questo
è stato usato per la sicurezza quello che potevamo fare
proprio questo possiamo avere il nostro
app di sottoscrizione capire
il nostro algoritmo poligono e generare il
abbonamenti per noi quindi che cosa
succede è il mio utente entra e dice che sono
interessato alle informazioni all’interno di a
certa area e dice l’abbonamento
chiedi quale sia quell’area il nostro abbonamento
che genera l’abbonamento e
li applica per conto del nostro utente
applicazione fino a un utente
l’applicazione è preoccupata di tutto ciò che fa
connetti invia l’area di interesse e
all’improvviso ha live live in tempo reale
flusso di dati per organo dentro per fare no
computazione qualunque sia così
incredibilmente leggero cosa c’è di più
modifiche che apportiamo al nostro abbonamento
algoritmo i vns per applicarli una volta
rende davvero facile l’implementazione se noi
bisogno di ridimensionare questo atto di abbonamento noi
può solo ridimensionarlo orizzontalmente perché
stiamo solo ascoltando la nostra sotto-lista dei pub
quindi è davvero tutto ciò che avevo in termini di
casi d’uso abbiamo ovviamente molto di più
casi d’uso e quello, ma quelli sono tipo di
alcuni degli aspetti interessanti di
routing e filtro di argomenti che forse
potresti applicare a quello che stai facendo
questa è una conferenza per sviluppatori così noi
sempre avere uno snippet di codice giusto
quindi questo è il mio ultimo frammento di codice e questo
va qualcosa di simile se il tuo argomento
non mi scusi il tuo argomento non è solo
un tag quindi hai accesso a questo argomento
strutture di routing e filtraggio come
puoi farlo per la tua posizione come
puoi fare i tuoi dati molto semplici
versioning come si può fare un messaggio
replay e questo è grazie mille
spero che tu l’abbia trovato utile
[Applausi]
tu
[Applausi]
Please follow and like us: