On Jan 22, 11:09 am, cperkins <cperk...@medialab.com> wrote: > I've read that people have been able to use Clojure with some of the > Java web servers. I am not familiar with any Java web servers or web > frameworks and wonder if anyone who knows more about them can advise > me. FWIW I'm also not familiar with load balancing or multi-server > setups for web applications. > > We are looking to develop a largish web application that may move a > lot of data and potentially have a lot of users. Maybe a couple > hundred thousand page hits a day, maybe a million - it's too early to > tell. > > I've developed some smaller web applications using Common Lisp, but > I'm not confident that any of the CL web servers (CL-HTTP, > Hunchentoot, AllegroServe, Araneida, mod_lisp, et al) are up to > handling high traffic high data sites. (Maybe they are, I just don't > know). > > So, now that we are considering developing a considerably larger one > I'm looking for something suitable strong to build it upon. I've heard > good things about some of the Java web frameworks (WebWork, Tapestry, > etc) but, again, know nothing about them - and I'd rather program in a > Lisp. > > Does anyone know how good any of the CL web servers are at handling > high traffic? > > What are my options if I were to go with Clojure? How solid and > scalable are they going to be?
1. The JVM may be a good bet in your case, and Clojure seems to be the right language for this. 2. Irrespective of which web framework you use, consider using a web container or an app server. Deploy the application as a WAR if you want to use the app server's manageability features. 3. If you want to scale out the web layer, consider using memcached as your session handler rather than the built-in (sticky sessions are a pain). The latency may be slightly higher, but scale it would. http://code.google.com/p/memcached-session-manager/ 4. If you are keen on Open Source, consider Tomcat, JBoss, Terracota etc. If you don't need clustering, stick with Tomcat rather than JBoss. Tomcat and JBoss are pretty solid and proven technologies. Use JDK 1.6 in server mode for better performance. 5. Use Apache HTTPD (or nginx or any web server) for serving static content. Use CDN is you can. 6. If you have many (and probably non-trivial) web content, consider using a web template framework. StringTemplate is a functional style web template framework: http://www.stringtemplate.org/ 7. Web frameworks for Clojure: Compojure, Taimen. You can look at Blogjure for example usage. http://github.com/weavejester/compojure http://code.google.com/p/bitumenframework/ (Taimen and Blogjure, shameless plug) > > What questions am I not asking and should be? Feel free to ask any question you have. Keep us posted on what you chose and why -- it would be good to know. HTH Regards, Shantanu -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en