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:

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 Workflowknop in de rechterbovenhoek om nieuwe processen te starten;- Process table met kolommen Status, Workflow ID, Run ID, Type, Start, End.
Functionele mogelijkheden
-
Een nieuw Workflow-proces starten:
- Klik op de
Start Workflowknop in de rechterbovenhoek; - Vul de benodigde parameters in het verschijnende formulier in;
- Bevestig de procescreatie.
- Klik op de
-
Processen bekijken en filteren:
- Gebruik de
Filterknop om processen te selecteren op basis van verschillende criteria; - Kies een willekeurig proces uit de tabel voor gedetailleerde informatie.
- Gebruik de
-
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.
-
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
Dependencies installeren Download de nieuwste versie van Go (op het moment van schrijven is dit 1.22.1) Archive uitpakken naar/usr/local Omgevingsvariabelen instellen Wijzigingen activeren in de huidige sessie Installatie verifiëren 2. Clone de Temporal Examples Repository¶
Ga naar de home-directory
Clone de Go-voorbeelden repository Navigeer naar de voorbeelden-directory3. 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:
-
Start de worker (uitvoeren in de eerste terminal):
De worker registreert zich bij Temporal en wacht op een taak. Er verschijnen logberichten over pogingen om taken op te halen. -
Start de starter (uitvoeren in de tweede terminal):
De starter initieert het proces van geldoverboeking van het ene account naar het andere.
Verwacht resultaat:
In de logs van de worker ziet u:
- Geldopname van account 001-001;
- Geldstorting op account 002-002;
- Een speciaal gecreëerde fout in activity
StepWithError; - Drie pogingen om de defecte activity uit te voeren;
- Het starten van compenserende acties:
- Terugstorten van geld naar het oorspronkelijke account;
- Annuleren van de geldopname.
4. Resultaten verifiëren via de Temporal Webinterface¶
- Open de Temporal webinterface in uw browser (via het webpanel tag);
- Zoek in de interface naar de workflow met ID
transfer-money-workflow; - 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.