none
infraestructura para grandes traficos RRS feed

  • Pregunta

  • hola a todos, en mi trabajo vamos a desarrollar una aplicación web que se estima tendrá tráficos inmensos en horas pico, prácticamente lo que hace o debe hacer esta aplicación es que a partir de la URL y sus parámetros, busque en la BD y regrese un JSON al cliente.  Es aquí donde necesito su ayuda,  estamos pensando en ocupar un handler.ashx y que todas las peticiones vayan dirigidas a este mismo, en el handler dependiendo de los parámetros (si trae parámetros, si son validos etc...  ) que este redireccione a otra pagina donde regrese un JSON para ser visualizado por el cliente.  

    las peticiones serán en su gran mayoría desde un teléfono inteligente. Del lado del Cliente se ejecutara un código con React js y web api, esto para futuras peticiones. Para esta primera petición y que seria la mas pesada queremos diseñar algo ágil.

    Este es el esquema que se esta planteando hasta ahora, si en su experiencia, han diseñado algo similar que regrese un aspx o html con información del Json obtenido en BD. Pero para grandes volúmenes de trafico . 

    Cualquier sugerencia es muy bien recibida, espero me haya hecho entender y si no con gusto atendere las dudas que puedan surgir. Gracias saludos


    lo del query

    sábado, 21 de enero de 2017 2:46

Respuestas

  • En lugar de un .ashx es más sencillo que uses el WebApi. Los parámetros de la URL los puedes mapear a métodos de acción en el mapa de rutas, y el resultado del método de acción se serializa automáticamente a JSON. Es una infraestructura que está diseñada expresamente para ese fin y está pensada para soportar elevados niveles de tráfico. Y (siempre que tu diseño sea stateless, como suele ser el caso con este tipo de protocolos REST) podrá funcionar sin cambios sobre una granja de servidores. Podrías incluso desplegarlo sobre Azure con escalado automático, de forma que añada más servidores a la hora de máximo tráfico y los retire en horas de bajo tráfico.
    sábado, 21 de enero de 2017 9:59
  • hola

    >>estamos pensando en ocupar un handler.ashx y que todas las peticiones vayan dirigidas a este mismo,

    porque un ashx? eso no lo veo correcto

    porque no expones un servicio, puede ser un WCF o mejor aun si te animas con webapi de asp.net mvc, estos pueden devolver json de forma nativa

    respecto a los paramtros los recibiria el servicio segun los que definas, sin necesidad de nada extraño

    >>Para esta primera petición y que seria la mas pesada queremos diseñar algo ágil.

    pero lo agil no depende de la peticion sino de la cantidad de data que transfieras, si pides datos y envias un json que pesa varios megas de informacion para graficas esta claro que no sera nada agil, deberias pensar en que los datos sean pocos y los justos para la grafica

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    lunes, 23 de enero de 2017 16:59

Todas las respuestas

  • En lugar de un .ashx es más sencillo que uses el WebApi. Los parámetros de la URL los puedes mapear a métodos de acción en el mapa de rutas, y el resultado del método de acción se serializa automáticamente a JSON. Es una infraestructura que está diseñada expresamente para ese fin y está pensada para soportar elevados niveles de tráfico. Y (siempre que tu diseño sea stateless, como suele ser el caso con este tipo de protocolos REST) podrá funcionar sin cambios sobre una granja de servidores. Podrías incluso desplegarlo sobre Azure con escalado automático, de forma que añada más servidores a la hora de máximo tráfico y los retire en horas de bajo tráfico.
    sábado, 21 de enero de 2017 9:59
  • hola

    >>estamos pensando en ocupar un handler.ashx y que todas las peticiones vayan dirigidas a este mismo,

    porque un ashx? eso no lo veo correcto

    porque no expones un servicio, puede ser un WCF o mejor aun si te animas con webapi de asp.net mvc, estos pueden devolver json de forma nativa

    respecto a los paramtros los recibiria el servicio segun los que definas, sin necesidad de nada extraño

    >>Para esta primera petición y que seria la mas pesada queremos diseñar algo ágil.

    pero lo agil no depende de la peticion sino de la cantidad de data que transfieras, si pides datos y envias un json que pesa varios megas de informacion para graficas esta claro que no sera nada agil, deberias pensar en que los datos sean pocos y los justos para la grafica

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    lunes, 23 de enero de 2017 16:59