mysql - What is a common web architecture for java apps? -


im developing java web application, , im researching how should combine different types of technology in order use of single webserver.

my plan far have following architecture setup

internet -> varnish (reverse proxy) -> apache2 (mod_pagespeed, mod_jk) ->  ehcache-web (caching html page fragments,spring-cache) -> tomcat (java appsrv) -> ehcache (cache layer) ->  mysql (persistance layer) 

is there problems design? scaling , clustering when comes that? there other (better) solutions?

thanks!

i not envision webapp in traditional manner - in terms of service providers , consumers. @ work we've restful api layer running under tomcat, built implementing shindig interfaces. layer interacts mysql mongodb. have near/far caching using memcached, plan move redis given use lot of list , set based operations. layer interfaces twitter , facebook apis (like pushing out status updates). endpoints accessible opensocial compliant rest/xml calls. use newrelic monitor service performance , sla. we're doing little on 30k rpm response time of 10ms. have cluster of 4 tomcats, 3 memcacheds, 3 mysql (1m 2s) , 3 mongodb (replicaset). of stack runs on virtual machines hosted xenserver, running centos. use rabbitmq messaging/async operations sending notifications out or talking 3rd parties (twitter/facebook) not block vm threads. plan move hornetq+scala actors in near future platform gets popular. search runs on solr we're actively migrating elasticsearch.

we architected system in api/services based model can serve more 1 client platform. when our mobile app launches, can re-use apis instead of having separate set of same stack mobile. architecture abstracts back-end offerings no coupling front end. front end have built in php/zend, , uses jquery extensively. building mobile front-end using html5, phonegap , sencha touch.

for security have open gets writes secured via 2-legged oauth. need provide 3-legged oauth once open api external consumers , app developers.

i hope summary helps. please not hesitate comment if need further information or have questions.


Comments

Popular posts from this blog

c# - how to write client side events functions for the combobox items -

exception - Python, pyPdf OCR error: pyPdf.utils.PdfReadError: EOF marker not found -