Voglio creare un sistema middleware che la mia azienda possa utilizzare ed espandere per gestire i punti di integrazione tra i nostri vari sistemi personalizzati e di terze parti, nonché i nostri siti Web ospitati.
Ho qualche problema con il design / architettura e vorrei qualche consiglio (per favore fatemi sapere se c'è un sito migliore per porre queste domande).
Il middleware sarà fondamentalmente il broker tra il nostro ERP e gli altri nostri sistemi come il nostro sito web / i rivenditori di terze parti ecc. Tratterà principalmente le chiamate API e le esportazioni di file XML.
Stavo pensando a:
- Uso di RabbitMQ come meccanismo di accodamento
- Uso di Quartz.NET come programmatore contenuto in un servizio di Windows. Sarebbe molto leggero e caricherà semplicemente un elenco di lavori da un database, lasciandoli cadere in coda quando verrà raggiunta la loro pianificazione.
- Uso di un servizio Windows (chiamerei questo l'agente) che sarebbe un utente della coda RabbitMQ. Controllerebbe la coda ed elaborerebbe i lavori come sarebbero entrati. Idealmente, vorrei essere in grado di eseguire lavori separati allo stesso tempo, in modo che un lavoro non vincoli necessariamente un altro lavoro dall'esecuzione. Possiamo sempre ridimensionare questa porzione, se necessario.
Qualcuno vede qualche problema con questo approccio? Non riesco a trovare molte implementazioni di esempio su Internet sull'utilizzo di RabbitMQ come servizio di lavoro in .NET (utilizzando più thread) e non sono sicuro che l'utilizzo di un servizio di pianificazione per il semplice rilascio di elementi in coda sia l'approccio giusto. / p>