Architecture
Vue d’ensemble
GoCamel suit une architecture modulaire inspirée d’Apache Camel mais adaptée aux idiomes Go.
graph LR
subgraph "Core Layer"
A[CamelContext] --> B[Registry]
A --> C[RouteController]
A --> D[TypeConverter]
end
subgraph "Integration Layer"
E[Components] --> F[Endpoints]
F --> G[Consumers]
F --> H[Producers]
end
subgraph "DSL Layer"
I[RouteBuilder] --> J[Processors]
J --> K[EIP Patterns]
end
C --> E
K --> G
K --> HCouches
1. Core Layer
Le cœur de GoCamel, indépendant des transports:
- CamelContext — Conteneur de routes et composants
- Registry — Registre des composants nommés
- Exchange — Conteneur de message en transit
- Message — Corps + Headers du message
2. Integration Layer
Les composants de communication:
Exemple de flux:
3. DSL Layer
L’API fluent pour construire les routes:
Patterns de conception
Factory Pattern
Builder Pattern
Strategy Pattern
Les EIP utilisent le Strategy Pattern:
Concurrency
GoCamel exploite les goroutines Go:
graph TB
subgraph "Route Thread"
C[Consumer] --> P1[Processor 1]
P1 --> P2[Processor 2]
P2 --> P3[Producer]
end
subgraph "Multicast"
M[Multicast] --x B1[Branch 1]
M --x B2[Branch 2]
M --x B3[Branch 3]
endLes branches Multicast s’exécutent en parallèle si configuré: