2011-12-29 14 views
15

Estoy jugando con la idea de utilizar RavenDB como el almacén de datos para una aplicación que muy probablemente tendrá una interfaz de usuario HTML, una interfaz de usuario de servicio web y utilidades de servidor que también accederán a los datos. Una razón para usar RavenDB es la escala horizontal que ofrece a través de la replicación y la fragmentación. Sin embargo, parece que hay varias consideraciones sobre ejecutar Raven como un servicio de Windows o ejecutarlo a través de IIS.¿Debo ejecutar RavenDB como un servicio de Windows oa través de IIS?

  • Seguridad - Es el servicio más seguro Cuervo o se utiliza IIS me permiten una mayor flexibilidad para restringir por dirección IP, .NET membresía, etc.
  • Caché - Parece que IIS es la mejor opción para esta función
  • Arquitectura: como no me gustaría que un tercero acceda al almacén de datos, realmente tendría sentido exponer Raven a través de IIS. Además, habría una capa de negocios entre Raven y las diversas UI y utilidades, por lo que involucrar a IIS parece innecesario y puede introducir una complejidad innecesaria.
  • Rendimiento - La tubería de IIS probablemente tiene más sobrecarga en cada solicitud de un servicio de Windows
  • Escalado - El uso de IIS es probablemente más complicado de escalar a través de múltiples servidores en lugar de sólo la instalación del servicio de cuervo con un pequeño archivo por lotes

EDITADO

puedo entender el uso de configuración integrada de Raven si todo lo que tiene es un solo cliente web, pero cuando se tiene varios clientes diferentes, API de Raven necesita ser expuesto de forma independiente para evitar que un solo cliente lado a otro m bloqueando los archivos de datos.

Respuesta

16

Jedatu, Por lo general, los anfitriones RavenDB dentro de IIS, hace algunas cosas más fáciles, en particular, la gestión del servidor IIS es más fácil cuando se hace cargo de toda la activación, etc. No hemos visto ninguna Potencia significativa diferencia, e IIS tiene mejores opciones para la administración de grano fino.

+0

Gracias por su respuesta. –

5

Seguridad - Es el servicio más seguro Cuervo o se utilizan IIS me permite más flexibilidad para restringir por dirección IP, .NET membresía, etc.

utilizando un proceso separado es más seguro.

Caché - Parece que IIS es la mejor opción para esta función

caché de base de datos (almacenamiento en caché de documentos de entidad) no es el mismo que el almacenamiento en caché de IIS (que almacena en caché las páginas generadas o partes de páginas)

Arquitectura: como no me gustaría que un tercero acceda al almacén de datos, realmente tendría sentido exponer Raven a través de IIS. Además, habría una capa de negocios entre Raven y las diversas UI y utilidades, por lo que involucrar a IIS parece innecesario y puede introducir una complejidad innecesaria.

Cualquiera que acceda a la carpeta de Datos puede abrirlo con el cuervo. No importa dónde esté ubicado a menos que lo proteja usando las características de seguridad de Windows.

Rendimiento - IIS probablemente tiene más sobrecarga que el servicio de Windows

¿Se refiere a un arranque en frío? El uso de Raven integrado elimina las solicitudes HTTP entre el cliente y el servidor.

Escalado - El uso de IIS es probablemente más complicado de escalar a través de múltiples servidores en lugar de sólo la instalación del servicio de cuervo con un archivo por lotes pequeños

servidores múltiples necesidades de una instancia del cuervo separado que todos los IIS: es puede hablar con.

+0

Esta es información útil, sin embargo, no puedo decir qué opción recomiendan para este escenario? – jedatu

+0

Solo digo que sus consideraciones no son realmente válidas. Me gustaría ir por un servicio si pudiera. Parece más robusto y escala mejor. Tener su propia memoria dedicada también ayuda, el grupo de aplicaciones IIS no puede f * ck. – jgauffin

+0

Ayende siempre ha dicho servidor IIS> servicio de Windows, con respecto a RavenDb. –

Cuestiones relacionadas