2010-09-15 28 views
6

Tenemos un sitio web que está recibiendo más de 1 millón de visitas por día.Cuál es la mejor arquitectura moderna escalable para un sitio web de alto volumen (Java)

El sitio se está ejecutando en una arquitectura antigua (Struts Tomcat Hibenate MySQl) sin posibilidades reales de escalabilidad.

Ahora que nos estamos expandiendo más Estoy buscando una arquitectura web moderna (no demasiado sangrienta).

Lo primero que pensé fue utilizar Google App Engine, pero no estoy seguro de que sea lo suficientemente abierto.

Nuestros desarrolladores son todos de Java por lo que tendría que ser algo que puedan recoger fácilmente.

Idealmente me gustaría correr la misma manera como Digg, Twitter, Amazon, etc.

Si sabe cómo lo hacen - o tiene alguna sugerencia que estaría muy interesado en saber.

+1

¿Cuál es su definición particular de "mejor"? –

+0

En términos de lo que estoy buscando, 'mejor' sería el más fácil de codificar, ejecutar y mantener, por supuesto, con la condición de que también sea escalable. – Dan

Respuesta

2

A menos que tengas grandes cuellos de botella en el diseño, el hardware casi siempre será la mejor forma de escalar.

Por 'mejor' quiero decir

  • más baratos
  • más rápida
  • mejor rendimiento aumentar
  • resultados garantizados

Parece que su configuración actual está teniendo problemas? ¿Puede darnos información sobre qué tipo de problemas tiene?

Editar: ¿Puede darnos información sobre la configuración actual de su hardware? ¿Cuántos servidores web (presumiblemente ejecutando Apache), cuántos servidores de aplicaciones, cuántos servidores de bases de datos?

+0

El sistema se vuelve lento y hay tiempos de espera que a veces también tenemos problemas de transacción. – Dan

+0

Tenemos 2 servidores web y un servidor de bases de datos. – Dan

+0

@Dan ¿Está midiendo el nivel de trabajo de los servidores, p. Ej. CPU, disco y memoria? – Qwerky

0

Me gustaría agotar todas las posibilidades de "sin posibilidades real de escalabilidad" antes de volver a escribir mi aplicación. Simplemente podría significar que solo puede escalar horizontalmente lanzando más hardware y agrupamiento en el problema.

Google App Engine significará JPA en lugar de Hibernate y MySQL, porque creo que usan BigTable en la parte posterior.

+0

. Aprecie ese pensamiento, el sistema es bastante complicado y realmente necesitamos una reescritura en este punto, solo queremos asegurarnos de que vamos por el camino correcto. – Dan

+0

refactor en lugar de reescribir ... –

0

Eche un vistazo si puede obtener agrupaciones baratas con Terracotta.


Para una reescritura: Tener un vistazo a lo que ya está presente en Java EE 6. Puede que le resulte adapte a sus necesidades muy bien. Glassfish 3.1 admitirá el agrupamiento antes de que haya terminado de volver a escribir.

+0

He visto Terracotta pero estoy buscando una pila web completa. ¿Dónde encajaría eso? ¿Quiere decir debajo de servlets? – Dan

+1

Escalado transparente a más máquinas. Eche un vistazo ... –

0

Contratar un equipo o incluso mejor una empresa que tenga experiencia en la creación de soluciones escalables. Promueva a los desarrolladores actuales en Business Analysts y haga que ayuden a los especialistas en soluciones escalables con la lógica empresarial.

+1

¿Es realmente necesario? Seguramente un equipo de desarrolladores experimentados debería ser capaz de manejar esto asumiendo que apuntan en la dirección correcta. – Dan

Cuestiones relacionadas