Further more if you use Encrypted Cookie store Or Remote Session Store to manage your state, your http service will become more lightweight and can be easily expanded horizontally, e.g. you can add more computers to host nginx-clojure to run your http service and let one computer with nginx or LVS or haproxy as the front.
On Tue, Jun 3, 2014 at 11:52 PM, Xfeep Zhang <xfe...@gmail.com> wrote: > The multiprocess from nginx is quite different with some old server > implementations. Within nginx one process can handle thousands of > connections at the same time. But some old server implementations are one > process per request. > > If your http service is stateless, multiprocess or single process is not > important. If your http service should rely on some state store such as > session store, with nginx-clojure you have three choices : > > > 1. Encrypted Cookie store > 2. SharedHashMap > <https://github.com/OpenHFT/HugeCollections/wiki/Getting-Started> to > share data among nginx worker processes > 3. Remote Session Store such as Redis, MemCached etc. > > > > > On Mon, Jun 2, 2014 at 5:22 PM, Toni Helenius <ton...@gmail.com> wrote: > >> Out of interest, how do people use these multiprocess server thingies >> like nginx-clojure or vert.x with datomic? >> >> >> On Saturday, May 31, 2014 7:57:54 PM UTC+3, Xfeep Zhang wrote: >>> >>> Nginx-Clojure is a Nginx <http://nginx.org/> module for embedding >>> Clojure or Java programs, typically those Ring >>> <https://github.com/ring-clojure/ring/blob/master/SPEC> based handlers. >>> >>> Release 0.2.2 contains two updates >>> >>> 1. Fix bug of with Compojure 1.1.5 + Apache Solrj 4.3.0 + httpclient >>> 4.3.2 NPE happens first time then everything is OK (issue #22) >>> 2. Verifying option for auto generated waving configurations needed by >>> coroutine based socket (issue #23) >>> >>> >>> The binary release can be found from https://sourceforge.net/ >>> projects/nginx-clojure/files/ >>> The source files and guide can be found from https://github.com/nginx- >>> clojure/nginx-clojure/blob/master/README.md >>> The index page for guide can be found from https://github.com/nginx- >>> clojure/nginx-clojure/wiki >>> >>> There are some core features of Nginx-Clojure: >>> >>> 1. Compatible with Ring >>> <https://github.com/ring-clojure/ring/blob/master/SPEC> and >>> obviously supports those Ring based frameworks, such as Compojure etc. >>> 2. Use Java/Clojure code to write a simple nginx rewrite handler to >>> set var before proxy pass >>> 3. Non-blocking coroutine based socket which is Compatible with Java >>> Socket API and works well with largely existing java library such as >>> apache >>> http client, mysql jdbc drivers. With this feature one java main thread >>> can >>> handle thousands of connections. >>> 4. Handle multiple sockets parallel in sub coroutines, e.g. we can >>> invoke two remote services at the same time feature >>> 5. Asynchronous callback API of socket for some advanced usage >>> 6. Run initialization clojure code when nginx worker starting >>> 7. Compatible with the Nginx lastest stable version 1.6.0. (Nginx >>> 1.4.x is also ok, older version is not tested and maybe works.) >>> 8. One of benifits of Nginx <http://nginx.org/> is worker processes >>> are automatically restarted by a master process if they crash >>> 9. Utilizes lazy headers and direct memory operation between Nginx >>> <http://nginx.org/> and JVM to fast handle dynamic contents from >>> Clojure or Java code. >>> 10. Utilizes Nginx <http://nginx.org/> zero copy file sending >>> mechanism to fast handle static contents controlled by Clojure or Java >>> code. >>> 11. Supports Linux x64, Linux x86 32bit, Win32 and Mac OS X. Win64 >>> users can also run it with a 32bit JRE/JDK. >>> >>> -- >> 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 >> --- >> You received this message because you are subscribed to a topic in the >> Google Groups "Clojure" group. >> To unsubscribe from this topic, visit >> https://groups.google.com/d/topic/clojure/-mianyasT5o/unsubscribe. >> To unsubscribe from this group and all its topics, send an email to >> clojure+unsubscr...@googlegroups.com. >> For more options, visit https://groups.google.com/d/optout. >> > > -- 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 --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.