Nginx clojure module v0.2.0-Let MySQL JDBC Driver & Apache HttpClient Fly With Epoll/Kqueue on Nginx

nginx-clojure v0.2.0 includes new features:

(1) non-blocking socket based on coroutine and compatible with largely
existing java library such as apache http client, mysql jdbc drivers
(2) asynchronous callback API of socket for some advanced usage
(3) run initialization clojure code when nginx worker starting
(4) provide a build-in tool to make setting of coroutine based socket
easier
(5) support Linux 32bit x86 now
(6) publish binary release compiled with lastes stable nginx
1.6.0
about
Linux
x64, Linux i586, Win32 & MacOS X.

If the http service should do some slow I/O operations such as access
external http service, database, etc. nginx worker will be blocked by
those
operations and the new user request even static file request will be
blocked. It really sucks! Before v0.2.0 the only choice is using thread
pool
but now we have three choice Now:
(1) Coroutine based Socket – Let MySQL JDBC Driver & Apache HttpClient
Fly
With Epoll/Kqueue on Nginx
(a) Java Socket API Compatible and work well with largely existing
java
library such as apache http client, mysql jdbc drivers etc.
(b) non-blocking, cheap, fast and let one java main thread be able
to
handle thousands of connections.
(c) Your old code need not be changed and those plain and old
java
socket based code such as Apache Http Client, MySQL mysql jdbc drivers
etc.
will be on the fly with epoll/kqueue on Linux/BSD!
(d) You must do some steps to get the right class waving
configuration
file and set it in the nginx conf file.
(2) Asynchronous Socket
More details here: GitHub - nginx-clojure/nginx-clojure: Nginx module for embedding Clojure or Java or Groovy programs, typically those Ring based handlers.
(3) Thread Pool
More details here : GitHub - nginx-clojure/nginx-clojure: Nginx module for embedding Clojure or Java or Groovy programs, typically those Ring based handlers.

More details please visit nginx-clojure github site :

Posted at Nginx Forum: