¿Qué tan escalable es ZeroMQ? Estoy especialmente interesado en comprender su potencial para funcionar en un gran número (10,000 - 15,000) de núcleos.¿Qué tan escalable es ZeroMQ?
Respuesta
Hemos intentado que sea lo más escalable como sea posible, pero yo personalmente probado sólo en hasta 16 cajas de machos. Hasta ese límite, hemos visto escalas casi lineales.
en cuenta que aunque ZeroMQ es multiproceso internamente, puede que no sea aconsejable confiar únicamente en que para ampliarlo a un gran número de núcleos. Sin embargo, debido a que ZeroMQ usa la misma API para la comunicación entre máquinas, entre procesos y entre hilos, es fácil escribir una aplicación usando ZeroMQ que se puede mover sin problemas en un escenario de un proceso por núcleo o en una estructura de red de muchas, muchas máquinas.
ZeroMQ ya tiene una reputación de ser el protocolo de mensajería estructurado más rápido, por lo que si tuviera que hacer pruebas para elegir una tecnología, definitivamente ZeroMQ debería ser una de ellas.
Las dos razones principales para usar ZeroMQ son su API de varios idiomas fácil de usar (vea todos los ejemplos en el sitio de la Guía ZeroMQ) y su baja sobrecarga tanto en términos de bytes en el cable, como en términos de estado latente. Por ejemplo, ZeroMQ puede aprovechar la multidifusión UDP para ejecutarse más rápido que cualquier protocolo TCP, pero el programador de la aplicación no necesita aprender una nueva API. Está todo incluido.
Usted no menciona si sus 10k o 15k núcleos están en la misma caja o no.
Vamos a suponer que son. Cada dos años, el número de núcleos en una caja puede, teóricamente, duplicarse. Entonces, si hoy tenemos cajas de 16 núcleos, serán núcleos de 16K en 20 años.
Así que ahora, la pregunta es, tal vez, "se ZeroMQ ayudar a mi escala de aplicación a este tipo de un gran número de núcleos, por lo que se escala en los próximos 20 años?" La respuesta es "sí, pero solo si la usa correctamente". Esto significa diseñar su aplicación usando sockets de procuración y patrones que dividen de manera adecuada el trabajo y el flujo de datos. Tendrá que ajustar la arquitectura a lo largo del tiempo.
Si su pregunta es: "¿Puedo utilizar provechosamente que muchos núcleos entre múltiples aplicaciones", la respuesta se encuentra con su O/S más de ZeroMQ. ¿Su capa de E/S puede manejar la carga? Probablemente si.
Y si su pregunta es: "¿Puedo usar ZeroMQ en una nube de cajas de 10K-16K?", Entonces la respuesta es "sí, esto ya se ha demostrado en la práctica".
Gracias Pieter, me refiero a núcleos repartidos en varias cajas. ¿Conoce algún documento que debata este nivel de escalabilidad o cualquier sitio de referencia de este tamaño? –
Así que incluso con OpenAMQ escalamos en producción a cajas de 3K-4K (cada uno de núcleos múltiples), hablando con un solo intermediario. Este es el nivel básico de escala de cualquier flujo 1-N en 0MQ: limitado solo por el número de sockets que su sistema operativo puede manejar. –
- 1. ¿Qué tan escalable es Jetty?
- 2. ¿Qué tan escalable es System.Threading.Timer?
- 3. ¿Qué tan escalable es el cometa/ajax invertido de Lift Framework?
- 4. ¿Cuán escalable es Grails?
- 5. ¿Qué tan portátil es C++?
- 6. ¿Qué tan aleatorio es urandom?
- 7. ¿Qué tan confiable es HtmlUnitDriver?
- 8. ¿Qué tan confiable es HTTP_REFERER?
- 9. ¿Qué tan confiable es HTTP_HOST?
- 10. ¿Qué tan estable es WPF?
- 11. ¿Qué tan bueno es SecRandomCopyBytes?
- 12. ¿Qué tan útil es Response.IsClientConnected?
- 13. Qué tan lento es Reflection
- 14. ¿Qué tan estable es NSubstitute?
- 15. ¿Qué tan eficiente es javascript?
- 16. ¿Qué tan persistente es localStorage?
- 17. ¿Qué tan confiable es current_kernel_time()?
- 18. ¿Qué tan bueno es startswith?
- 19. ¿Qué tan único es LINQ?
- 20. ¿Qué tan aleatorio es Random.Next()?
- 21. ¿Qué tan bueno es VTK?
- 22. ¿Qué tan seguro es javax.crypto.Cipher?
- 23. ¿Qué tan seguro es PHP?
- 24. ¿Qué tan eficaz es StackFrame?
- 25. ¿Qué tan portátil es GLib?
- 26. ¿Qué tan rápido es Data.Array?
- 27. ¿Qué tan confiable es __destruct?
- 28. ¿Qué tan caro es Thread.getStackTrace()?
- 29. ¿Qué tan rápido es LINQ?
- 30. ¿Qué tan único es XAML?
http://stackoverflow.com/questions/8361738/is-zeromq-reallyble-and-scalable –