Pregunta

Sólo una pregunta rápida con respecto a una aplicación Azure. Si tengo un número de roles web y de los trabajadores que necesitan comunicarse, la documentación dice que use la cola de servicio de Azure.

Sin embargo, acabo de leer que el nuevo .NET Service Bus ahora también ofrece colas. Éstos parecen ser más potente, ya que parecen ofrecer una API mucho más detallada. Mientras que el .NSB parece más interesante que tiene un par de cuestiones que me hacen desconfiar de su uso en aplicaciones distribuidas. (Por ejemplo, cola de caducidad ... si no puede garantizar que una cola será renovada el tiempo es posible que pierda todo!).

Alguien ha tenido alguna experiencia con cualquiera de estas dos tecnologías y podría dar algún consejo sobre el momento de elegir uno sobre el otro.

Sospecho que mientras que el bus de servicio se ve más potente, ya que mi caso de uso es realmente sólo permite a las funciones Web / trabajador para comunicarse entre sí, que la cola de servicio de Azure es lo que busco. Pero estoy realmente en busca de la confirmación de que antes de programación a mí mismo en una esquina a: -)

Gracias de antemano.

ACTUALIZACIÓN

Ha leer acerca de los dos sistemas a través de la ruptura. Se defo parece bus de servicios .NET está diseñado más específicamente para la integración de sistemas en lugar de proporcionar un sistema de mensajería fiable de propósito general. Colas azules se distribuyen y tan fiable y escalable de manera que las colas no .NSB y son por lo tanto más conveniente para el código alojado dentro de sí mismo Azure.

Gracias por las respuestas.

¿Fue útil?

Solución

Yo recomendaría que se quede con Azure colas para la comunicación entre los roles web y de los trabajadores. El uso de colas es la manera oficial y sancionada de comunicación entre procesos Azure y sinceramente dudo que va a programarse en una esquina. El servicio de autobuses (AppFabric) tiene una sobrecarga superior y aunque realmente bueno para hablar con aplicaciones externas, puede no ser óptimo para mensajes rápidos y sencillos en su aplicación Azure.

Otros consejos

colas de almacenamiento vs Bus Service

A continuación se muestra un detalle de algunas de las diferentes consideraciones que tenía en el pensamiento a través de esta pregunta.

Disponibilidad

Desde el corte de almacenamiento de noviembre pasado Azure prometió que nunca implementar código para todas las regiones a la vez de nuevo - construido en el sistema para que sea imposible. https://azure.microsoft.com/en-us/blog/final-root-cause-analysis-and-improvement-areas-nov-18-azure-storage-service-interruption/

Esto es lo que dice acerca de la disponibilidad de MSDN:

Si ya está utilizando Azure Blob de almacenamiento o de la mesa y empezar a usar colas, se le garantiza la disponibilidad del 99,9%. Si utiliza gotas o tablas con colas de servicio de autobús, que tendrá menor disponibilidad.

Colas Azure están diseñados para soportar el desacoplamiento de los componentes de aplicación para aumentar la escalabilidad y la tolerancia de fallos.

Desarrollo

En lo personal, me siento cómodo con la API de almacenamiento y ya no tengo necesidad para su almacenamiento blob en otras áreas de la mayoría de las aplicaciones. colas de almacenamiento utilizan el mismo SDK como gotas de almacenamiento. Colas azules proporcionan un modelo de programación uniforme y consistente a través de las colas, tablas y BLOB

Costo

El modo de recepción y Eliminar el apoyo de Bus Service ofrece la posibilidad de reducir el número de operación de mensajería (y el costo asociado) a cambio de la garantía de entrega reducido.

Parece que hay una cierta dando vueltas control de costes para el bus de servicio que se puede aprovechar si tuviera que empezar a llevar un presupuesto para ejecutar su aplicación - Hice un intento de romper los posibles costes de almacenamiento por debajo de la cola :). Sale a la luz a menos de cien dólares al mes en más de 40.000 colas por hora durante GRS. Agrupado con el resto de nuestros costos de almacenamiento no veo beneficio para centrarse en la reducción de costes aquí. (Ancho de banda es el mismo para ambos y se anula cuando se comparan)

precios de almacenamiento

Se obtiene colas y operaciones gratuitas ilimitadas - usted paga por el espacio

  • asumir 30K tamaño del mensaje como un promedio
  • asumir 1000K en un MB 1024
  • asume que no se llegará a la fijación de precios por encima de 1 TB graduado

30K / 1 mensaje * 1 TB / 1000000000K * $ 0,095 / 1 GB * 1000 GB / 1 TB = $ 0,00000285 / mensaje para el primero TB de uso

1 mensaje / ~ 30K * 1000000000K / 1 TB = 33333333 mensajes de una tuberculosis

33333333 mensajes * $ 0.00000285 / message = ~ $ 95 dólares por la primera TB

extiende a lo largo de un mes podemos hacer como 40.000 mensajes por hora con TB que primero

precios de los servicios de autobús

  • 10 dólares al precio base meses
  • pago por la operación (cualquier llamada a la API es una op) -. Añadir una cola / recibir una cola / supervisar la cola / etc
  • se obtiene 12,5 millones de operaciones gratuitas / mes
  • pago por millón de operaciones después de eso

Es difícil de estimar el uso aquí, pero 100 millones de operaciones cuesta 80 dólares al mes

Lote Recibir

Almacenamiento puede tratar por hasta un máximo de 32 mensajes especificando número de mensajes al recuperar mensajes mientras Service Bus permite a un cliente a la cola de mensajes por lotes múltiples en una sola operación de envío.

Así es el almacenamiento de lotes de recepción mientras bus de servicio es enviar lotes.

Supervisión

Las colas Azure le permiten obtener un registro detallado de todas las transacciones ejecutadas en la cola, así como las métricas agregadas. Este tipo de apoyo no sale de la caja con el servicio de autobuses -. Pero probablemente podría encontrar una solución pre-compilados en algún lugar

Expedición

Servicio de autobús tiene una función de reenvío automático que colas de almacenamiento no se encuentra.

reenvío automático permite que miles de colas para auto-reenviar sus mensajes a una sola cola, de la que la aplicación receptoralicación consume el mensaje. Puede utilizar este mecanismo para lograr la seguridad, control de flujo, y aislar almacenamiento entre cada editor de mensajes.

Duplicados

La funcionalidad de detección de duplicación con el apoyo de las colas de servicio de autobuses elimina automáticamente los mensajes duplicados enviados a una cola o tema, basado en el valor de la propiedad de identificador de mensaje.

Mensajes de cola de almacenamiento pueden duplicar sin previo aviso.

Metadatos

Bus Service le da 2 partes de una cabecera de mensaje + cuerpo. Esta es una característica muy útil para una infraestructura desplegada a nivel mundial. Lo que le permite decorar sus mensajes con cosas como el nombre de la región y el ID de instancia. los mensajes de la cola son cadenas simples. Por otro lado colas de almacenamiento Azure proporcionan soporte para atributos arbitrarios que pueden aplicarse a la descripción de la cola, en forma de pares de nombre / valor. Así se puede decorar el mensaje en el servicio de autobuses y decorar la cola con colas de almacenamiento

Garantía de entrega

Servicio Bus ofrece A-una vez más-y-A-Por lo menos una vez mientras colas sólo ofrecen por lo menos-Una vez-parto. Esto podría limitar nuestra capacidad de utilizar colas si los suscriptores concurrentes son siempre un problema.

Rendimiento

colas de almacenamiento Azure ofrecen una latencia de 10 ms (dentro de un centro de datos), mientras que la latencia Service Bus 20-25ms. bus de servicio es que ofrece a largo elecciones, lo que sería aún mejor que 10 ms si usted tiene una necesidad de ella.

Seguridad

colas de almacenamiento Usos / clave compartida secundaria de la primaria, mientras que proporciona servicio de autobuses RBAC a través de Active Directory con papeles de emisor / receptor / admin.

Referencias

A mi entender, el bus de servicio (como era) ha tenido colas por un tiempo, pero estos no están garantizados para entregar el mensaje - oportunidad Bon

Azure Colas costuras a juego debido a que su caso de uso sigue siendo básico con sencillo Get basada en REST / interfaz Poner / Peek.

Los havs documentación sido actualizadas recientemente (21/05/2015) y detalla con precisión cuando se utiliza el uno o el otro, y los rasgos comunes (soporte de transacciones, el tamaño de la cola y el mensaje, tiempo para vivir, ... ):

https://azure.microsoft.com/en-us/documentation/articles/service-bus-azure-and-service-bus-queues-compared-contrasted/

Los patrones relacionados con la cola de un desarrollador aprende se pueden aplicar a ambos. Ambos pueden ser utilizados desde el punto de vista de la fiabilidad y la ejecución-facilidad.

Las cosas sólo se puede hacer cola de almacenamiento 1) El trabajador procesar un mensaje se bloquea. Un trabajador posterior quiere leer el estado del mensaje para continuar desde donde el trabajador antes dejó. 2) Se requieren registros del lado del servidor de todas las transacciones ejecutadas en contra de sus colas.

Pero las comparaciones no importan. Si el desarrollo de colas costumbre es lo que necesita, entonces utilizamos siempre cola de almacenamiento. Fue el primero en ser desarrollado por Microsoft. Servicio de autobús fue llevado-en BizTalk copia y el propósito es la integración (híbrido), por lo tanto, hay características avanzadas en esta línea: sesiones, transacciones, callejones sin cartas automáticas, etc.

Este enlace proporciona una comparación, también lo hace este enlace . Será difícil de analizar todo y empezar en un desarrollo ágil por lo tanto, la regla mencionada.

Para hacer las cosas muy claras, se trata de una comparación entre dos componentes de Azure, creado en un punto diferente en el tiempo, por diferentes razones.

noreferrer colas de almacenamiento y las colas de servicio de autobuses - comparados y contrastados

  

Azure admite dos tipos de mecanismos: la cola colas de almacenamiento y servicio de autobuses   colas.

     

colas de almacenamiento, que son parte de la infraestructura de almacenamiento de Azure,   cuentan con una sencilla interfaz de GET / PUT / PEEK basada en REST, proporcionando   , Mensajería persistente fiable dentro y entre los servicios.

     

colas de servicio de autobús son parte de una más amplia mensajería Azure   infraestructura que soporta la cola, así como de publicación / suscripción, y   más patrones avanzados de integración. Para obtener más información acerca de Servicio   colas de autobuses / temas / suscripciones, ver la información general del servicio de autobuses.

     

Mientras tanto las tecnologías que hacen cola existen Al mismo tiempo, colas de almacenamiento   se introdujo por primera vez, como un mecanismo de almacenamiento de colas dedicada construida sobre   la parte superior de los servicios de Azure Storage. colas de servicio de autobuses se construyen en la parte superior de   la infraestructura de mensajería más amplio diseñado para integrar   aplicaciones o componentes de aplicaciones que pueden abarcar varios   protocolos de comunicación, contratos de datos, dominios de confianza, y / o red   ambientes.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top