Non ho molta esperienza di programmazione socket ma ho provato a leggerne un po '. Conosco abbastanza bene le code MDB e di messaggistica. Qualcuno mi ha detto che la coda (ad esempio MDB) è "Non molto più di una connessione socket diretta". Qualcuno può confrontare questi due per me.Code messaggi vs socket
risposta
eeeeemph ... questo qualcuno ha sbagliato molto. I due sono incomparabili, poiché vivono in diversi strati. È come dire che "un database relazionale non è molto più di un file su un disco" o "una casa non è molto più di un mattone".
La coda di messaggistica è un software che unisce mittenti e ricevitori in modo che possano comunicare senza sapere molto l'uno dell'altro (entrambi devono conoscere la coda, ovviamente) e non devono implementare codice di rete, gestione errore, instradamento di un messaggio a più ricevitori, ecc. Il sistema funziona anche se mittenti e ricevitori non sono mai attivi contemporaneamente, poiché le code fungono anche da memoria temporanea per i messaggi non consegnati. A parte questo, le code possono fornire servizi aggiuntivi, come autorizzazione, transazioni, ecc.
Una connessione socket è solo un'astrazione di basso livello che dice: "attualmente due programmi possono inviare dati su rete tra loro, almeno fino alla connessione si rompe per qualche motivo ". Quindi sì, di solito una coda di messaggistica utilizzerà le connessioni socket per funzionare.
- 1. Sistema code messaggi
- 2. Code messaggi Posix e riga di comando?
- 3. socket Unix, SOCK_SEQPACKET vs SOCK_DGRAM
- 4. socket connect() vs bind()
- 5. binding vs SO_BINDTODEVICE socket
- 6. Php Socket vs Stream
- 7. GCM vs. socket in Android
- 8. Uso reale di JMS/code di messaggi?
- 9. Code messaggi in Ruby on Rails
- 10. Le code dei messaggi sono obsolete in linux?
- 11. ASP.NET - Inline vs. Code-Behind
- 12. Google Code Hosting vs Sourceforge
- 13. Java reflection vs code generation
- 14. HTTP connessione persistente vs connessione socket TCP
- 15. Consigli per code di messaggi remoti C/C++
- 16. TCPClient vs socket in C#
- 17. PHP Socket Server vs node.js: Web Chat
- 18. Messaggi Android - Sviluppo vs Distribuzione
- 19. Aggiornamento GUI: Runnables vs Messaggi
- 20. Elaborazione code e code di database
- 21. Quale è meglio per IPC locali, code di messaggi POSIX (mqueues) o socket di dominio Unix (locali)?
- 22. Python Multiprocessing: pool.map vs using code
- 23. Come posso utilizzare TSLint in VS Code?
- 24. Completamente disinstallare le estensioni VS Code
- 25. resharper "cleanup code" vs. parola chiave 'var'
- 26. Sublime Code Intel vs All Autocomplete?
- 27. Visual Studio Code Analysis vs StyleCop + FxCop
- 28. asyncio e coroutine vs code di attività
- 29. VS Code + Debugger per Chrome node.js
- 30. Creazione dinamica di code di messaggi asincroni in Java
Oh, va bene, grazie. Quindi, quando qualcuno usa effettivamente solo socket per trasferire dati, semplicemente rende le cose più manuali e complicate da sole? Intendo dire che le code di messaggistica ci vengono in cima per rendere le cose più facili per noi. Come un database in cima al puro file. Penso che quella persona avrebbe potuto significare che non ci sono molte funzionalità aggiunte che non è possibile implementare usando le prese stesse e codificarle manualmente. Grazie comunque per il chiarimento. – Sara
Quindi ecco la sua risposta alla mia domanda precedente: "Possiamo implementare la messaggistica usando una semplice connessione socket I vantaggi e gli svantaggi: La codifica a livello di socket è probabilmente più compatta e basata sulle nostre esigenze. funzionalità già disponibili in molti pacchetti.La scelta è una decisione basata su molti fattori (tempo, costi, talento, talento futuro) " – Sara
La risposta è certamente vera ma anche abbastanza generica. Comprende anche cose come la distribuzione dei propri server http, database, sistemi operativi e così via. Sostituire prodotti così maturi con la birra fatta in casa è probabilmente realistico solo nei casi in cui si hanno requisiti molto specifici e allo stesso tempo molto limitati (come quando si ha una coda che deve essere incredibilmente veloce e compatta, ma non deve essere affidabile o sicuro). – fdreger