Denne artikkelen er en speilartikkel om maskinoversettelse, vennligst klikk her for å hoppe til originalartikkelen.

Utsikt: 12540|Svare: 0

PayPal skalerer til milliarder av transaksjoner per dag med bare 8 virtuelle maskiner

[Kopier lenke]
Publisert på 25.09.2019 16:11:58 | | | |
Tradisjonelt kan et system som håndterer en milliard transaksjoner per dag kreve hundrevis av virtuelle maskiner, PayPal gjør alt med bare 8 virtuelle maskiner, og leverer rask respons med 90 % CPU-bruk, en transaksjonstetthet PayPal aldri har oppnådd før, og prosessen tar 1/1 av tiden å gjennomføre prosessen, noe som hjelper organisasjonen å holde tritt med veksten uten å måtte skalere opp datainfrastrukturen samtidig som kostnadene reduseres. Hvordan gjøres dette?



PayPal har migrert systemet sitt til Akka-basert Actor-modus. I artikkelen Squbs: PayPal tar en ny reaktiv tilnærming til å bygge apper (Innloggingen med hyperkoblingen er synlig.PayPal forklarer alle detaljer i prosessen. De har nå gjort Squbs åpen kildekode og publisert det på GitHub (Innloggingen med hyperkoblingen er synlig.)。

Når et prosjekt må ta en praktisk tilnærming, får stateful service-modellen fortsatt ikke nok oppmerksomhet. For å lære mer om stateful services anbefaler vi å lese grunnene til å fortsette å bygge skalerbare stateful services nå (Innloggingen med hyperkoblingen er synlig.), denne artikkelen er basert på en tale av Caitie McCaffrey. Hvis denne artikkelen ikke overbeviser deg, finnes det også WhatsApp som bruker Akkas konkurrent Erlang for ekstremt høy gjennomstrømning: Facebooks WhatsApp-arkitektur til 19 milliarder dollar (Innloggingen med hyperkoblingen er synlig.)。

Grunnen til å anbefale artikkelen ovenfor er at PayPal ikke gir en detaljert introduksjon til arkitekturen, men heller bruker mer tid på hvorfor de valgte Akka og fordelene ved å migrere til Akka. Men denne artikkelen gir fortsatt verdifull oppmuntring og demonstrasjon for praksisen med å «gå utenfor allfarvei».

Hva er galt med å bruke et stort antall virtuelle maskiner for en tjeneste?

  • Kjør tjenesten med svært lav-gjennomstrømming, ekstremt små virtuelle maskiner. Den største fordelen med aktørbaserte reaktive systemer er at de kan utnytte databehandlingsressursene mer effektivt, noe som kan redusere systemets størrelse betydelig og unngå den «enkle og grove» autoskaleringen som tradisjonelle praksiser har.
  • Det legger mye press på nettverket og rutingsinfrastrukturen din. Siden tjenester har en tendens til å være mer sammenkoblet, kan forespørsler måtte gå gjennom et stort antall nettverkshopp, noe som øker latenstiden og forverrer brukeropplevelsen.
  • Jo større den er, desto dyrere er den. Tjenester med hundrevis av virtuelle maskiner har høye iboende kostnader når det gjelder administrasjon, overvåking og ineffektiv caching.
  • Jo mindre den er, desto mer smidig er den. Å distribuere tjenester til hundrevis av virtuelle maskiner er en tidkrevende prosess.
  • Få mer ut av mer CPU på hver virtuell maskin. Siden CPU-er ikke kan akselereres ytterligere, må infrastrukturen kunne utnytte flere CPU-er mer effektivt på hver virtuell maskin.
  • Mikrotjenester må bygges med løst koblede NanoServices som er enkle å vedlikeholde og raske å bygge. Ingen ønsker å forholde seg til et komplekst system med mange lag, og du trenger mer innsikt i rollen til ulike tjenester uten å måtte gå dypt inn i lag med kode.


Med disse faktorene i tankene ønsket PayPal å bygge et system som:

  • Skalerbar, ikke bare for å skalere horisontalt til hundrevis av noder, men også for å skalere opp til flere prosessorer for å nå målet om å behandle milliarder av forespørsler per dag.
  • Lav latens og kan kontrolleres med ekstremt fin granularitet.
  • Vær motstandsdyktig i møte med nederlag.
  • Fleksibel justering av tjenestegrenser.
  • Fremme skalerbarhet og enkelhet gjennom programmeringsmodeller og kultur, samt enklere feil- og feilhåndteringsmekanismer.


Det er ingen tvil om at PayPal ønsker å bruke en mer "tynn" stakk, og de ønsker ikke at stakken skal inneholde mye teknologi og bevegelige deler på ulike nivåer. Generelt er Akka og tilstandsbaserte systemer godt egnet for dette behovet, noe som gjør det mulig å «bryte ned» stakken av store komponenter til én enkelt teknologi. PayPal valgte Akka fremfor Erlang fordi de har mer erfaring med Java, som kjører oppå Java. For mange er det ikke realistisk å lære Erlang fra bunnen av.

Med Akka kan de:

  • Skriv kode som er lettere å forklare
  • Skriv kode som er enklere å teste
  • Feil- og feilscenarier håndteres mer naturlig enn tradisjonelle moduser med JVM
  • Skriv raskere, mer robust og enklere kode for å håndtere feil mer flytende og redusere antall feil


PayPal skrev umiddelbart sitt eget rammeverk basert på Akka, kalt Squbs, som ble brukt til å rime på "Cubes". Dette lar deg lage et modulært teknologilag for bygging av en NanoService kalt en "Cube". Kubene er symmetriske, og avhengighetene mellom ulike kuber er også symmetriske og løse, og eksponerer kun meldingsgrensesnittene som Akka allerede tilbyr.

Det beskriver også vanskelighetene programmerere kan møte når de tar i bruk AKKA-kode, da du kanskje også må ansette noen som er utdannet i Akka/Scala.

Siden de fleste tjenester har lignende formål: motta forespørsler, kalle og lese og skrive databaser, kalle andre tjenester, kalle regelmotorer, hente data fra cacher, skrive til cacher... Som et resultat kan tjenester abstraheres gjennom mønstre som Orchestrator Pattern og Perpetual Stream.

Squbs har blitt standard praksis for PayPal for å lage reaktive applikasjoner basert på Akka. Hvis teamet ditt ikke har vurdert stateful systemer ennå, er det sannsynligvis verdt et forsøk, siden det fungerer bra hos PayPal, Facebook, Uber og Microsoft.







Foregående:Tre faktorer som får meg til å avvikle Chrome
Neste:vs opprette en mappe, og når løsningen genereres, er det ingen under bin-filen
Ansvarsfraskrivelse:
All programvare, programmeringsmateriell eller artikler publisert av Code Farmer Network er kun for lærings- og forskningsformål; Innholdet ovenfor skal ikke brukes til kommersielle eller ulovlige formål, ellers skal brukerne bære alle konsekvenser. Informasjonen på dette nettstedet kommer fra Internett, og opphavsrettstvister har ingenting med dette nettstedet å gjøre. Du må fullstendig slette innholdet ovenfor fra datamaskinen din innen 24 timer etter nedlasting. Hvis du liker programmet, vennligst støtt ekte programvare, kjøp registrering, og få bedre ekte tjenester. Hvis det foreligger noen krenkelse, vennligst kontakt oss på e-post.

Mail To:help@itsvse.com