Arhitectura HotNews.ro
Click here to load reader
-
Upload
marius-hanganu -
Category
Technology
-
view
3.155 -
download
0
Transcript of Arhitectura HotNews.ro
Arhitectura HotNews.roMarius Hanganu
Cerinte
• Scalabilitate - adaugarea facila de servere pentru a permite mai multi vizitatori; serverele sa ofere toate functionalitatile
• Functionarea continua – chiar si in cazul in care se face un update la baza de date
• Controlul manual al aproape fiecarei zone din site (tile)
• Managementul mai multor siteuri
Cateva statistici (cf Analytics)
• Aproape 3 milioane unici pe luna • Peste 17 milioane de pagini servite pe luna• Peak de peste 400.000 unici / 2.000.000 pagini
/ zi• Peak de 300 cereri / secunda• Peste 1000 de comentarii pe zi• Sustinute doar de 2 servere
Arhitectura (1)
• Servere: Tomcat, MySQL, Apache, ldirectord• Librarii Java/Javascript: Spring, Hibernate,
JGroups, OSCache, SOLR, Velocity, Quartz, DWR, ExtJS, jQuery (Prototype / Scriptaculous)
• Alte librarii: Ffmpeg, ImageMagick• MVC cache-uibil• Varianta pda, multi-language• Management pentru orice numar de siteuri
Arhitectura (2)
• Transparenta maxima pentru dezvoltator: codul este liber de referinte la indexare (SOLR) sau caching (OSCache)
• Tipuri de obiecte cu proprietati similare (statistici, comentarii, voturi, etc)
• O zona de ecran (tile) are un comportament (care poate fi comun mai multor tile-uri) si un template (care poate fi comun mai multor tile-uri)
• Tileul contine recursiv oricate alte tileuri• Tileul poate avea un comportament dinamic (Groovy)
Caching
• Velocity in loc de JSP• Local pe fiecare masina• Structura ierarhica• Transparent pentru dezvoltator
– Declarativ – tileuri cache-uite
• Bazat pe o coada de prioritati• Sistem de dependente intre obiecte automatizat• Replicare prin Jgroups• Orice server isi poate reface cache-ul independent
Media server
• Support imagini, video, audio• Embedded sau separat• Proxy-uri pe serverele publice pentru serverul central• Generarea de variante de imagini on the fly• Importul automat din diverse surse externe
SOLR
• SolrSync– Sincronizare Hibernate-SOLR transparenta pentru utilizatori– Stocarea pe diferite servere SOLR in functie de tipul obiectului
• Filter API – similar Hibernate Criteria
• Refacerea indexului – OBLIGATORIE – totala / partiala / per tip de obiect
• Filtru diacritice• Stemmer pentru limba romana• “Near real time reindexing” e departe de real time
Deploy
• ldirectord• Script de build, deploy, backup, update & restart• Offline mode – fara baza de date• Svn-task – generare rapoarte folosind Subversion• Teste de performanta cu Jmeter si AB (Apache Benchmark)
Multumesc