What I'm using Netty for

Iain McGinniss iainmcgin at gmail.com
Fri Jul 17 17:41:28 EDT 2009


Hello everyone,
Just a short introduction, I thought it would be a good idea to keep
everyone (and the devs in particular) in the loop about what Netty is being
used for in the wild. My name is Iain McGinniss, I currently work for
OneDrum <http://onedrum.com> who are paying me to drive radical performance
improvements in the JXTA-JXSE <http://jxta-jxse.dev.java.net/> project.
JXTA-JXSE is a peer to peer application framework, essentially an overlay
network with service discovery, fault tolerance and transport neutrality as
core features.

Anyway, what am I using Netty for? My current goal is to optimise the
transports that are used. My first target is to clean up the HTTP transport
and the HTTP relay component, which is used to service peers behind
restrictive firewall / NAT configurations that prevent them from directly
participating in the main network. This relay is currently built on top of
an ageing version of Jetty, and uses a slow, traditional HTTP polling
mechanism resulting in a great deal of TCP/HTTP overhead to transfer
messages. My hope is that by using Netty, I can:

1. Significantly reduce the IO overhead on the relays.
2. Get low level control over the HTTP stream, in order to build a full
duplex, low overhead HTTP tunnel.
3. Do this in a way compatible with a variety of HTTP proxy and firewall
configurations (both compliant and misbehaving).

So far, I'm quite impressed with what I've seen. I started with Grizzly, but
it wasn't as well documented as I would have liked, after a lot of fumbling
about trying to find out how to implement an HTTP client and server without
using the servlet API (surplus to requirements, and expects a half-duplex
request/response usage pattern) I lost patience and gave up on it. Meanwhile
I'd seen Netty in my initial research, and spotted it's in-built HTTP
tunnel. However I also saw a comment on this list about it potentially being
buggy, so I've decided to build a new one from scratch.

No doubt I'm going to make a ton of mistakes as I find my way around the
API, but I hope that within a week or so I'll have a pretty robust, well
tested tunnel that I can contribute here, and hopefully after review and
tweaks can be integrated into Netty. I will likely have questions as I go
along, so I may poke my head up from time to time. If things go well, I
would like to use Netty for all comms in JXSE, to clear out a lot of the
legacy NIO code which is difficult to follow.

Thanks for your time,
Iain McGinniss
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/netty-users/attachments/20090717/84665540/attachment.html 


More information about the netty-users mailing list