Skip to main content
Home

Sök

 
 
 
Header (Main)
Bransch
Rörlighet Rörlighet
Fordonsindustrin
Driving The Future Of SDV

Vi banar väg för SDV:s framtid

Explore
Flyg- och rymdindustrin
AI-Enabled Aircraft Health Monitoring for Predictive Maintenance

AI-baserad övervakning av flygplanets skick för förebyggande underhåll

Explore
Järnväg
Engineering Next-Gen Rail Mobility

Utveckling av nästa generations järnvägstransporter

Explore
Närings- och fritidsfordon
Reinventing the Recreational Vehicle

Att förnya fritidsfordonet

Explore
Terrängfordon
Off-highway Vehicles and Machines

Terrängfordon och terrängmaskiner

Explore
AI in Mobility

Artificiell intelligens inom mobilitet

Explore
Hållbarhet Hållbarhet
Diskret tillverkning och industriprodukter
Byggteknik och smart infrastruktur
Elförsörjning och styrsystem
Industrimaskiner
LTTSGridEyeTM

LTTSGridEye™

Explore
Processindustri
Olja och gas
Kemikalier
FMCG
ISG: Oil & Gas Industry Services and Solutions – AI and Cloud – Americas

Marknadsledare enligt ISG Provider Lens™: Olje- och gasindustrin – AI och molntjänster – Nordamerika

Explore
L&T Technology Services, Siemens Partner for AI-led Transformation in Process Engineering & Smart Manufacturing

LTTS och Siemens ingår partnerskap för AI-driven omställning inom processteknik och smart tillverkning

Explore
Teknik Teknik
Datacenter
LTTS Data Center Services - From the Chip to the Grid!

LTTS datacentertjänster – Från chip till elnät!

Explore
HiTech
Konsumentelektronik
Media och underhållning
NexGen Comms
Halvledare
Automated Ad Integration and Delivery Validation

Automatiserad annonsintegration och validering av leverans

Explore
MedTech
L&T Technology Services Transforms Respiratory Diagnostics with NVIDIA AI-Powered Digital Twin Technology

LTTS revolutionerar diagnostiken inom andningsvägarna med NVIDIA:s AI-drivna digitala tvillingteknik

Explore
Offentlig infrastruktur och smarta städer
Integrated Smart Surveillance Project

Integrated Smart Surveillance Project

Explore
Programvara och plattformar
LTTS & SymphonyAI to provide AI-based transformation

LTTS och SymphonyAI ska genomföra en AI-baserad omställning

Explore
Unlocking PLxAI with Alind Saxena

En djupdykning i PlxAI tillsammans med Alind Saxena

Explore
Upptäck våra lösningar Upptäck våra lösningar
Tjänster
Digital teknik och rådgivning Digital teknik och rådgivning
Artificiell intelligens
Cybersäker
Säkerhetsövervakning
Säkerhetsoperationscentralen
Säkerhetstjänster
Säkerhetslösningar
Fängslande upplevelser
Industri 4.0
Private Equity
Produktrådgivning
Hållbarhetsteknik
En hållbar och smart värld
5G
Pragmatic by Design: Engineering AI for the Real World

Pragmatisk design: Utveckling av AI för den verkliga världen

Explore
Produktutveckling Produktutveckling
Programvaruutveckling
Molnteknik
DevOps
Teknisk analys
Fängslande upplevelser
Föda och underhåll
Användarupplevelse
Röstinnovationer
Inbyggd teknik
Inbyggda system
Näring
VLSI
Teknik för bärbara enheter
Mekanisk konstruktion
CAE och CFD
CAx-automatisering
Testning och validering
Integrerad konstruktion, validering och testning
Lab som tjänst
Testning
ISG: Automotive and Mobility Services and Solutions – Automotive Engineering and Manufacturing Services – North America

Marknadsledare enligt ISG Provider Lens™: Tjänster och lösningar inom fordons- och mobilitetsbranschen – Nordamerika

Explore
Tillverkningsteknik Tillverkningsteknik
Smart tillverkning
Anläggningskonstruktion och teknik
Digital fabrik och simuleringar
Effektiverade verksamheter
Logistikteknik
Inköp och upphandling
Tillverkning och planering
Effektiverade verksamheter
Digital fabrik och simuleringar
Linjeutbyggnad och överföring
Automatisering inom tillverkningsindustrin
Utveckling av nya produkter
Anläggningskonstruktion och teknik
PLM i molnet
Produktionsstyrning
Agile leveranskedja
Innehållsutveckling
Material- och komponenthantering
Inköp och upphandling
L&T Technology Services Transforms Respiratory Diagnostics with NVIDIA AI-Powered Digital Twin Technology

LTTS revolutionerar diagnostiken inom andningsvägarna med NVIDIA:s AI-drivna digitala tvillingteknik

Explore
Anläggningsteknik Anläggningsteknik
CAPEX-projekt – E/EPCM-tjänster
Operativ excellens
Växtvård och skötsel
Material- och komponenthantering
Teknik för efterlevnad av regelverk
ISG: Oil & Gas Industry Services and Solutions – AI and Cloud – Americas

Marknadsledare enligt ISG Provider Lens™: Olje- och gasindustrin – AI och molntjänster – Nordamerika

Explore
Upptäck våra lösningar Upptäck våra lösningar
Lösningar
AiCE
AiKno®
AnnotAI
ARC
Ramverk för tillgångars skick
CHEST-rAi™
Uppkopplad säkerhet
EDGYneer
ESM
EvQUAL
FlyBoard®
Fusion
i-BEMS
Nliten
nBOn
PSM
SafeX
IP för halvledare
Lösning för sensorer och gateways
UBIQWeise 2.0
Insikter
Analytikerrapporter
Bloggar
Broschyrer
Fallstudier
E-böcker
Evenemang
Podcasts
Perspektiv
Videor
Webbseminarier
Vitböcker
Karriär
Om oss
Utmärkelser
Allianser
Analytiker
Styrelsen
CSR
Engineer At Heart
Att driva Engineering the change
Innovationer
Investerare
Nearshore-centra
Nyheter och media
Kvalitetsledning
Hållbarhet inom företaget
Kundutlåtanden
Kontakt
Header (Secondary)
Sök
E-post
  • English
  • Deutsch
  • 日本語
  • Svenska
Kontakt

Breadcrumb

  1. Hem
  2. Blogs
  3. Eventuell konsistens i mikrotjänster

Eventuell konsistens i mikrotjänster

Ashwin Atri
Ashwin Atri

Senior specialist, digitala produkttjänster

Published on 10 Aug 2020

min read

872

Views

Eventuell konsistens i mikrotjänster

Jag är säker på att de flesta av oss, på ett eller annat sätt, har stött på problem med datainkonsekvenser i ett mjukvarusystem. När man till exempel använder en bankomat för att ta ut pengar händer det ofta att transaktioner misslyckas av olika skäl. Bankomaten kanske inte lämnar ut kontanterna, trots att den visar att beloppet har dragits från kontot. När kunder rapporterar felet i systemet svarar banken vanligtvis att det kommer att ta mellan 60 minuter och 24 timmar att rätta till den felaktiga transaktionsposten. Detta är ett typiskt exempel på datainkonsekvens där bankomaten och bankens server under en kort stund inte är synkroniserade.

Låt oss ta ett annat exempel på betalning av räkningar via mobilappar. Användaren initierar betalningen, appen ansluter säkert till bankens gränssnitt, betalningen behandlas och överlämnas till handlarens gränssnitt för bekräftelse. Låt oss säga att handlarens webbplats är otillgänglig just nu. Nu förblir transaktionen ofullständig under en kort stund tills appens servrar synkroniseras med handlarens gränssnitt.

Observera att i båda ovanstående fall beror datainkonsekvenserna på att vissa delar av systemet är otillgängliga, att tjänster inte svarar, nätverksrelaterade fel etc., och dessa faktorer är mycket vanliga i stora distribuerade mjukvarusystem. Även om systemet så småningom återupprättar konsistensen är en smidig och problemfri upplevelse för slutanvändaren inte garanterad.

Mikrotjänster

Att bygga mjukvaruarkitektur i mikrotjänststil innebär ett distribuerat tillvägagångssätt där varje tjänst/funktion i en mjukvara är i hög grad självständig, har en specifik affärsgräns eller ett definierat sammanhang, kan vara medveten eller inte om andra tjänsters existens, kan hantera sina egna data, kan använda olika lagringsmekanismer och eventuellt är skriven i olika programmeringsspråk, och underhålls av separata team.

Mikrotjänstarkitekturen använder ett decentraliserat tillvägagångssätt och är i hög grad inspirerad av naturen. Mikrotjänster har blivit ett populärt val för att bygga stora företagssystem. Med framväxten av molnet, elastisk databehandling och lagring samt containerteknik och orkestreringsmekanismer har det skett en enorm ökning av utvecklingen av applikationer som använder mikrotjänstarkitektur.

Mikrotjänster och eventualkonsistens

Vid det här laget har du kanske redan insett att mikrotjänstarkitekturens starka förespråkande av ett decentraliserat datatillvägagångssätt leder till eventual datakonsistens i systemen. Det vore dock inte klokt att tro att den monolitiska programvaruarkitekturen hanterar dessa problem problemfritt. Den har sina egna risker.

Det är därför absolut nödvändigt att utvecklare av mikrotjänster tar hänsyn till dessa frågor och är medvetna om de utmaningar som kan uppstå när det gäller den slutliga datakonsistensen. De tekniker som listas nedan hjälper till att hantera den slutliga konsistensen i mikrotjänster.

Saga-mönstret

Transaktioner som sträcker sig över flera tjänster betraktas som en saga/kedja av enkla atomära lokala transaktioner på varje tjänstenivå. En tjänst slutför och bekräftar alltså sin transaktion, meddelar nästa tjänst i kedjan med en händelse/ett meddelande för att utlösa nästa lokala transaktion, och så vidare. Om en transaktion i denna kedja misslyckas, av någon särskild anledning, utlöser det i princip en ångra-operation som går bakåt i kedjan. Det är därför absolut nödvändigt att ta itu med mönsterfel redan vid utformningen av arkitekturen.

 

Saga-mönstret hanterar visserligen problemen med eventualkonsistens, men är mer lämpligt för mindre distribuerade arkitekturer än för storskaliga. Utvecklarna måste också ta hänsyn till att kompensationsanrop/transaktioner också kan misslyckas. Detta gör det lämpligt för enklare och mindre distribuerade arkitekturer.

Change Data Capture (CDC)

CDC, som visserligen är väl etablerat och används i stor utsträckning inom datalagring, kan mycket väl anpassas effektivt till mikrotjänstdesign för att säkerställa att transaktionerna sträcker sig över tjänsterna med konsistens.

Grundprincipen förblir i grunden densamma. När en tjänst, efter att dess lokala transaktion har bekräftats i den lokala databasen, utlöser den en separat process som skapar en ändringsregistrering och vidarebefordrar denna till nästa tjänst. Denna tjänst tar emot ändringsregistreringsposten från den föregående tjänsten, bearbetar den, bekräftar den i sin lokala databas och skapar i en separat process inom sig en egen ny ändringsregistreringspost som vidarebefordras till nästa uppsättning tjänster.

På så sätt kan denna ändringsregistrering vidarebefordras genom de distribuerade tjänsterna tills alla tjänster är synkroniserade utan någon större belastning på orkestreringen.

Sätt att implementera CDC i mikrotjänster:

Användning av databastransaktionsloggar: Många databaser erbjuder driftsloggar och transaktionsloggar. Genom att skanna innehållet i dessa loggar och tolka ändringarna kan man identifiera de ändringar som gjorts i databasen. Detta kan utgöra den ändringsregistrering som ska spridas vidare till nästa tjänst.

Användning av Kafka Connect och Apache Kafka: De databasändringar som registrerats i en tjänst kan kopplas till en Kafka-anslutning, vilket effektivt vidarebefordrar ändringarna till olika Kafka-ämnen så att prenumeranterna kan ta del av dem och agera.

CDC lämpar sig generellt sett för stora distribuerade arkitekturer, eftersom det inte är prestandakrävande och enkelt kan aktiveras utan att några extra ändringar i schemat behövs. CDC har i sig lägre latens och gör det möjligt för nedströmsdatabaser att snabbt följa ändringarna. Det finns också möjlighet att köra strömbehandling på det ändringsflöde som tjänsterna tar emot.

Den största nackdelen som utvecklare upplever med CDC är dock bristen på flexibilitet när det gäller att ändra tjänsternas scheman. Detta hämmar i viss utsträckning utvecklingen av tjänsternas databasscheman. En schemaändring i en tjänst utlöser förändringar i alla nedströmsliggande tjänster.

Förutom dessa två metoder finns det flera andra sätt att uppnå datasynkronisering via CDC som har implementerats av leverantörer av molninfrastruktur.

Debatten om BASE kontra ACID

Nu när vi har sett två populära metoder för att uppnå datakonsistens och integration samt deras nackdelar, låt oss nu betrakta frågan om datakonsistens ur ett helt nytt perspektiv och paradigm... ”Att acceptera inkonsekvensen” – Det är inte alla mjukvarusystem eller delar av systemet som behöver att data är synkroniserade och konsekventa hela tiden. Låt oss gå tillbaka till vårt exempel med uttag av pengar via en bankomat. Vi har alla accepterat datainkonsekvensen här och väntar på att systemet ska bli konsekvent efter en viss tid.

Många affärssystem är mer toleranta mot datainkonsekvenser än vad man vanligtvis tror. Detta beror på att företag lägger större vikt vid och tjänar mer på tjänstens tillgänglighet, vilket leder oss till den långvariga debatten om att värdera BASE högre än ACID i många system på företagsnivå.

BASE är en förkortning för Basically Available, Softstate och EventualConsistency

ACID är en förkortning för Atomicity, Consistent, Isolatedoch Durable

Detta stämmer överens med det välkända CAP-teoremet, som säger att det är omöjligt för ett distribuerat datalager att samtidigt uppfylla mer än två av följande tre garantier: konsistens, tillgänglighetoch partitionstolerans.

Därför prioriterar mjukvarusystem alltid antingen BASE framför ACID eller tvärtom, beroende på behov, och ser till att delar av systemet förblir konsistenta.

Lämna gärna kommentarer, synpunkter och frågor om den här artikeln – jag ska försöka besvara dem så snart jag har möjlighet.

Relevant Blogs

Bortom automatisering: Hur AI omvandlar testtekniken inom flyg- och rymdindustrin till teknisk intelligens
Bortom automatisering: Hur AI omvandlar testtekniken inom flyg- och rymdindustrin till teknisk intelligens
Bortom automatisering: Hur AI omvandlar testtekniken inom flyg- och rymdindustrin till teknisk intelligens
Bortom automatisering: Hur AI omvandlar testtekniken inom flyg- och rymdindustrin till teknisk intelligens
Bortom automatisering: Hur AI omvandlar testtekniken inom flyg- och rymdindustrin till teknisk intelligens
Bortom automatisering: Hur AI omvandlar testtekniken inom flyg- och rymdindustrin till teknisk intelligens
Explore All

Håll kontakten med oss

Prenumerera på vår blogg

Ashwin Atri
Ashwin Atri

Senior specialist, digitala produkttjänster

Ashwin Atri är en ledande befattningshavare med omfattande erfarenhet av att utforma och bygga storskaliga distribuerade mjukvarusystem. Han har över 13 års internationell arbetserfarenhet inom en rad olika branscher, däribland medicin, biovetenskap, konsumentelektronik, telekom och industriell mjukvara.

I sin nuvarande roll som Digital Practice Lead – Microservices på L&T Technology Services (LTTS) leder han flera digitala transformationsprojekt med fokus på mikrotjänster för molnimplementering, IoT och modernisering av äldre system.

Footer Navigation
  • Bransch
    • Rörlighet
      • Flyg- och rymdindustrin
      • Fordonsindustrin
      • Järnväg
      • Lastbilar och terrängfordon
    • Hållbarhet
      • Diskret tillverkning och industriprodukter
      • Processindustri
    • Teknik
      • Datacenter
      • Konsumentelektronik
      • MedTech
      • Media och underhållning
      • NexGen Comms
      • Halvledare
      • Programvara och plattformar
      • Offentlig infrastruktur och smarta städer
  • Tjänster
    • Digital teknik
      • Artificiell intelligens
      • Cybersäker
      • Säkerhetsövervakning
      • Säkerhetslösningar
      • Säkerhetstjänster
      • Fängslande upplevelser
      • Industri 4.0
      • Private Equity
      • Produktrådgivning
      • Hållbarhetsteknik
      • En hållbar och smart värld
      • 5G
    • Produktutveckling
      • CAE och CFD
      • CAx-automatisering
      • Programvaruutveckling
      • Molnteknik
      • DevOps
      • Inbyggda system
      • Teknisk analys
      • Integrerad konstruktion, validering och testning
      • Lab som tjänst
      • Näring
      • Testning
      • Testning och validering
      • Användarupplevelse
      • VLSI
      • Röstinnovationer
      • Teknik för bärbara enheter
    • Tillverkningsteknik
      • Effektiverade verksamheter
      • Agile leveranskedja
      • Innehållsutveckling
      • Digital fabrik och simuleringar
      • Linjeutbyggnad och överföring
      • Automatisering inom tillverkningsindustrin
      • Utveckling av nya produkter
      • PLM i molnet
      • Anläggningskonstruktion och teknik
      • Inköp och upphandling
    • Anläggningsteknik
      • CAPEX-projekt – E/EPCM-tjänster
      • Material- och komponenthantering
      • Operativ excellens
      • Växtvård och skötsel
      • Inköp och upphandling
      • Teknik för efterlevnad av regelverk
  • Att driva Engineering the change
  • Karriär
  • Engineer At Heart
  • Resurser
  • Lösningar
    • AiCE
    • AiKno®
    • AnnotAI
    • ARC
    • Ramverk för tillgångars skick
    • CHEST-rAi™
    • Uppkopplad säkerhet
    • EDGYneer
    • ESM
    • EvQUAL
    • FlyBoard®
    • Fusion
    • i-BEMS
    • LTTSiDriVe™
    • Nliten
    • nBOn
    • PLxAI
    • PSM
    • SafeX
    • IP för halvledare
    • Lösning för sensorer och gateways
    • UBIQWeise 2.0
    • TrackEi™
  • Om oss
    • Utmärkelser
    • Allianser
    • Bloggar
    • Styrelsen
    • CSR
    • Evenemang och webbseminarier
    • Innovationer
    • Investerare
    • Mediepaket
    • Nearshore-centra
    • Nyheter och media
    • Kvalitetsledning
    • Hållbarhet inom företaget
    • Kundutlåtanden
LTTS
  •  Twitter
  •  LinkedIn
  •  YouTube
  •  Facebook
  •  Instagram
  • Upphovsrätt och villkor
  • Sekretess
  • Sitemap
  • info@ltts.com

© 2026 L&T Technology Services Limited. All Rights Reserved.