Temporal¶
In dit artikel
Informatie
Temporal is een open-source platform voor het bouwen van betrouwbare gedistribueerde applicaties. Het lost een van de belangrijkste uitdagingen in moderne ontwikkeling op: het garanderen 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 storingen 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 and Scheduling: Maakt het mogelijk om timers in te stellen en taken met hoge precisie in te plannen, zelfs voor langdurige processen.
- Scalability: Ondersteunt horizontale schaalbaarheid om hoge belastingen op te vangen. Componenten kunnen onafhankelijk van elkaar worden geschaald.
- Historical Debugging: Bewaart de geschiedenis van de procesuitvoering, wat analyse en debugging van workflows mogelijk maakt.
- Versioning: Ondersteunt veilige workflow-updates zonder lopende taken te onderbreken.
- Observability: Integreert met monitoring- en tracingsystemen voor applicatiecontrole.
- 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 22.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 and API — Invapi.
Nadat u op de link heeft geklikt via het webpanel tag, wordt er een autorisatiewinstven 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:
| Name | Local address and port | External address |
|---|---|---|
| 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 is dit "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 nieuwe Workflow Process 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:
- Monitoring Processes: Regelmatig de status van lopende taken controleren;
- Debugging: Gedetailleerde analyse van fouten in het geval van storingen;
- Managing Workloads: Processen starten, pauzeren en annuleren;
- Developing New Processes: 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 pattern voorbeeld in Go. Deze test demonstreert de belangrijkste capaciteit van het platform om langdurige bedrijfsprocessen betrouwbaar uit te voeren met automatische foutafhandeling. Het Saga pattern 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:
Update package lists
Installeer dependencies Download de nieuwste versie van Go (op het moment van schrijven is dit 1.22.1) Extraheer het archief naar/usr/local Stel omgevingsvariabelen in Activeer wijzigingen in de huidige sessie Verifieer de installatie 2. Clone de Temporal Examples Repository¶
Ga naar de home directory
Clone de Go examples repository Navigeer naar de examples directory3. Testen met het Saga voorbeeld¶
Het Saga pattern 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 reeks acties
└── shared.go # Gemeenschappelijke definities
Voer de test uit:
-
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:
- Geld terugstorten naar het oorspronkelijke account;
- De geldopname annuleren.
4. Resultaten verifiëren via de Temporal Web Interface¶
- 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 ziet u 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 te installeren met behulp van de API, volgt u deze instructie.