Abbiamo una libreria wrapper attorno a RabbitMQ sul mio posto di lavoro, creata da qualcuno che non lavora più qui. Sto progettando un nuovo sistema utilizzando Rabbit e sto elaborando l'approccio migliore per la dichiarazione di code, scambi e associazioni. La nostra architettura Rabbit ha alcune zone globali federate e ogni zona ha più nodi Rabbit.Quando dichiarare/associare code e scambi con RabbitMQ
Il codice wrapper per pubblicare messaggi e iscriversi alle code riafferma ogni volta gli scambi, le code e le associazioni pertinenti. La mia preoccupazione è che questo possa introdurre una significativa latenza in ogni messaggio di pubblicazione, specialmente se è necessario attendere la conferma che la coda/lo scambio esista nelle zone globali remote. Mi aspetto che il benchmark di milioni di messaggi al secondo non ripeterà lo scambio per ogni pubblicazione.
In breve, questo approccio mi sembra un po 'dispendioso e paranoico, ma forse mi manca qualcosa.
Così ho alcune domande:
- è ri-dichiarando le code e scambia un significativo calo di prestazioni, dato federazione mondiale?
- È una nuova dichiarazione su ogni utilizzo un buon approccio perché gestisce le code/gli scambi che scompaiono a causa di riavvii del broker o cancellazione esplicita?
- Dovremmo semplicemente dichiarare code e scambi una volta per processo e aspettarci che durino per tutta la vita?
- Gli scambi e le code durevoli devono essere dichiarati in Coniglio config e non dichiarati dalle applicazioni?
- Come devono essere gestite le modifiche di configurazione per code/scambi se le applicazioni continuano a dichiararle con la configurazione precedente? Le applicazioni dovrebbero gestire solo la dichiarazione di fallimento e continuare a pubblicare/consumare?
Grazie per la tua risposta completa –