Ga naar inhoud

Temporal

In dit artikel

Informatie

Temporal is een open-source platform voor het bouwen van betrouwbare gedistribueerde applicaties. Het pakt een van de belangrijkste uitdagingen in moderne ontwikkeling aan: het waarborgen van de uitvoering van kritieke processen in instabiele omgevingen. Het stelt ontwikkelaars in staat zich te concentreren op de bedrijfslogica in plaats van het afhandelen van infrastructuurstoringen.

Temporal. Belangrijkste functies

  • Workflow Orchestration: Zorgt voor een robuuste uitvoering van langlopende bedrijfsprocessen. Handelt fouten en retries automatisch af, wat de voltooiing van taken garandeert.
  • Distributed Transactions: Zorgt voor een consistente uitvoering van operaties over verschillende services zonder gebruik te maken van gedistribueerde locks.
  • Timeouts en Planning: Maakt het mogelijk om timers in te stellen en taken met hoge precisie in te plannen, zelfs voor langdurige processen.
  • Schaalbaarheid: Ondersteunt horizontale schaalbaarheid om hoge belastingen op te vangen. Componenten kunnen onafhankelijk van elkaar worden geschaald.
  • Historische Debugging: Bewaart de geschiedenis van de procesuitvoering, wat analyse en debugging van workflows mogelijk maakt.
  • Versiebeheer: Ondersteunt veilige workflow-updates zonder lopende taken te onderbreken.
  • Observability: Integreert met monitoring- en tracingsystemen voor applicatiebeheer.
  • Multi-tenancy: Biedt isolatie en resourcebeheer voor meerdere teams of applicaties.

Implementatiefuncties

ID Softwarenaam Compatibel OS VM BM VGPU GPU Min CPU (Kernen) Min RAM (GB) Min HDD/SSD (GB) Aangepast Domein Actief
266 Temporal Ubuntu 24.04 + + + + 2 2 30 Nee BESTELLEN

Aan de slag na het implementeren van Temporal

Na betaling wordt er een melding over de gereedheid van de server naar uw geregistreerde e-mailadres gestuurd. Deze bevat het VPS IP-adres en de inloggegevens voor toegang. Onze klanten beheren de hardware via het server management panel en API — Invapi.

Nadat u op de link heeft geklikt via het webpanel tag, wordt er een autorisatiewenster geopend.

De autorisatiedata vindt u in het tabblad Configuration >> Tags van het server management panel of in de verzonden e-mail:

  • Link voor toegang tot het Temporal management panel via de webinterface: in het webpanel tag;
  • Login en Password voor het beheren van de server: verstrekt in een e-mail bij de overdracht van de server.

Belangrijkste componenten met een webinterface:

Naam Lokaal adres en poort Extern adres
Temporal UI localhost:8080 https://temporal{server_id_from_invapi}.hostkey.in
Grafana localhost:8085 https://temporal{server_id_from_invapi}.hostkey.in/grafana/
Prometheus localhost:9090 https://temporal{server_id_from_invapi}.hostkey.in/prometheus/
Prometheus Metrics - https://temporal{server_id_from_invapi}.hostkey.in/prometheus/metrics

Startscherm en Navigatie

Nadat u op de link heeft geklikt via het webpanel tag, wordt de Temporal webinterface geopend:

Temporal UI

Het hoofdscherm toont een lijst met workflows (Workflows) in de geselecteerde namespace. De melding "No Workflows running in this Namespace" geeft aan dat er op dat moment geen actieve processen zijn.

Hoofdelementen van de interface:

  • Sidebar aan de linkerkant biedt toegang tot verschillende secties van het systeem;
  • Top bar toont de huidige namespace (standaard "default");
  • Start Workflow knop in de rechterbovenhoek om nieuwe processen te starten;
  • Process table met kolommen Status, Workflow ID, Run ID, Type, Start, End.

Functionele mogelijkheden

  1. Een nieuw Workflow-proces starten:

    • Klik op de Start Workflow knop in de rechterbovenhoek;
    • Vul de benodigde parameters in het verschijnende formulier in;
    • Bevestig de procescreatie.
  2. Processen bekijken en filteren:

    • Gebruik de Filter knop om processen te selecteren op basis van verschillende criteria;
    • Kies een willekeurig proces uit de tabel voor gedetailleerde informatie.
  3. Codevoorbeelden:

    • Toegang tot integratievoorbeelden via de links naar de GitHub-repository:
    • samples-go - Go voorbeelden;
    • samples-java - Java voorbeelden;
    • samples-typescript - TypeScript voorbeelden;
    • samples-python - Python voorbeelden;
    • samples-dotnet - .NET voorbeelden;
    • samples-php - PHP voorbeelden.
  4. Instellingen wijzigen:

    • UTC-selector in de rechterbovenhoek voor het wijzigen van de tijdzone;
    • (Gear) knop is bedoeld voor toegang tot aanvullende interface-instellingen.

Typische Use Cases:

  • Processen monitoren: Regelmatig de status van lopende taken controleren;
  • Debugging: Gedetailleerde analyse van fouten in het geval van storingen;
  • Workloads beheren: Processen starten, pauzeren en annuleren;
  • Nieuwe processen ontwikkelen: Codevoorbeelden gebruiken om aangepaste workflows te maken.

Opmerking

Gedetailleerde informatie over het gebruik van Temporal is te vinden in de officiële ontwikkelaarsdocumentatie.

Temporal testen met Go (Optioneel)

Informatie

Hieronder staat het proces voor het installeren van de benodigde componenten en het testen van Temporal met behulp van een Saga-patroon voorbeeld in Go. Deze test demonstreert de belangrijkste capaciteit van het platform om langdurige bedrijfsprocessen betrouwbaar uit te voeren met automatische foutafhandeling. Het Saga-patroon lost het probleem van transactie-atomiciteit in gedistribueerde systemen op via een mechanisme van compenserende acties.

1. Installeer Go

Voordat u begint met testen, moet u Go op de server installeren:

Paklijsten bijwerken

apt update
Dependencies installeren

apt install -y wget git curl
Download de nieuwste versie van Go (op het moment van schrijven is dit 1.22.1)

wget https://golang.org/dl/go1.22.1.linux-amd64.tar.gz
Archive uitpakken naar /usr/local

tar -C /usr/local -xzf go1.22.1.linux-amd64.tar.gz
Omgevingsvariabelen instellen

echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.bashrc
echo 'export GOPATH=$HOME/go' >> ~/.bashrc
echo 'export PATH=$PATH:$GOPATH/bin' >> ~/.bashrc
Wijzigingen activeren in de huidige sessie

source ~/.bashrc
Installatie verifiëren

go version

2. Clone de Temporal Examples Repository

Ga naar de home-directory

cd ~
Clone de Go-voorbeelden repository

git clone https://github.com/temporalio/samples-go.git
Navigeer naar de voorbeelden-directory

cd samples-go

3. Testen met het Saga-voorbeeld

Het Saga-patroon wordt gebruikt voor het beheren van gedistribueerde transacties, wat de mogelijkheid biedt om terug te draaien (compenseren) in het geval van fouten.

Structuur van het Saga-voorbeeld

saga/
├── worker/main.go     # Worker-proces dat taken afhandelt
├── start/main.go      # Initialiseert het worker-proces
├── activity.go        # Definitie van acties (geld opnemen/storten)
├── workflow.go        # Definitie van de sequentie van acties
└── shared.go          # Gemeenschappelijke definities

De test uitvoeren:

  1. Start de worker (uitvoeren in de eerste terminal):

    cd ~/samples-go
    go run saga/worker/main.go
    
    De worker registreert zich bij Temporal en wacht op een taak. Er verschijnen logberichten over pogingen om taken op te halen.

  2. Start de starter (uitvoeren in de tweede terminal):

    cd ~/samples-go
    go run saga/start/main.go
    
    De starter initieert het proces van geldoverboeking van het ene account naar het andere.

Verwacht resultaat:

In de logs van de worker ziet u:

  1. Geldopname van account 001-001;
  2. Geldstorting op account 002-002;
  3. Een speciaal gecreëerde fout in activity StepWithError;
  4. Drie pogingen om de defecte activity uit te voeren;
  5. Het starten van compenserende acties:
    • Terugstorten van geld naar het oorspronkelijke account;
    • Annuleren van de geldopname.

4. Resultaten verifiëren via de Temporal Webinterface

  1. Open de Temporal webinterface in uw browser (via het webpanel tag);
  2. Zoek in de interface naar de workflow met ID transfer-money-workflow;
  3. U ziet de volledige uitvoeringsgeschiedenis van de workflow, inclusief alle activiteiten en compenserende acties:

Informatie

In de Temporal webinterface zult u zien dat de transfer-money-workflow de status "Failed" heeft. Dit is geen fout in de configuratie of uitvoering van de test, maar is het verwachte gedrag voor het Saga-voorbeeld. Dit voorbeeld is speciaal ontworpen om het compensatiemechanisme bij het tegenkomen van een fout te demonstreren. De activity StepWithError genereert opzettelijk een fout na het uitvoeren van de opname- en stortingsoperaties, om te laten zien hoe compenserende acties worden gestart. De status "Failed" in dit voorbeeld geeft aan dat het compensatiemechanisme correct heeft gewerkt en dat het systeem is teruggekeerd naar een consistente staat nadat de fout werd gedetecteerd.

Een Temporal Server bestellen via de API

Om deze software via de API te installeren, volgt u deze instructie.

question_mark
Is there anything I can help you with?
question_mark
AI Assistant ×