This is excellent!  I definitely think there is a lot of opportunity for 
fusion between Clojure and Nginx.  Clojure's model already supports the 
cooperating threads model that can simplify Nginx's complex event model, as 
you have demonstrated.  Work has already been done that proves this idea 
can result in productivity and scale gains (nginx + Lua)  It can also 
greatly simplify architectures by cutting out load-balancers making less to 
patch for security/stability issues.   I look forward to using this on my 
upcoming web projects. 


On Friday, April 25, 2014 11:51:41 PM UTC-4, Xfeep Zhang wrote:
>
> 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](
>    https://sourceforge.net/projects/nginx-clojure/files/) 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
>    - Java Socket API Compatible and work well with largely existing java 
>       library such as apache http client, mysql jdbc drivers etc.
>       - non-blocking, cheap, fast and let one java main thread be able to 
>       handle thousands of connections.
>       - 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!
>       - 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: https://github.com/nginx-clojure/nginx-clojure
>       3. Thread Pool
>    - More details here : https://github.com/nginx-clojure/nginx-clojure
>       
>
> More details please visit nginx-clojure github site : 
> https://github.com/nginx-clojure/nginx-clojure
>

-- 
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.

Reply via email to