2007-03-19
RPC over JMS with Load Balancing
I've been working on putting together a very simple way to do RPC such that they're load balanced to a set of servers implementing the interface in question. After not to much reading, I realized that this path has been trod on before. It took me a little time, but I did manage to put together a test using ActiveMQ http://activemq.apache.org/, Lingo http://lingo.codehaus.org/, and Spring http://www.springframework.org/. ActiveMQ provides the JMS Queues and consequently the load balancing. Lingo provides a request/reply mechanisms using JMS Queues, which normally provide only oneway asynchronous messaging. (That's not 100% true, but we'll not get into the details.) On top of all that, Spring Remoting can export any POJO implementing a Java interface as a service. There are a few too many layers to this whole thing, coupled with a bit too much use of reflection for my taste, but it does work. Now to test its performance...
2007-03-15
More MogileFS
After a brief look through the source code, it was relatively easy to add Secure URLs, for use with lighttpd and mod_secdownload. I added another VARCHAR column to the host table, for the secret to be used for generating the URLs, then modified various APIs and the URL generation function.
MogileFS
Today I [re]discovered MogileFS, from Six Apart, http://www.danga.com/mogilefs/. Upon closer inspection it seems to be a like a sort of Amazon S3 Lite. It does file replication and provides one level of indirection, just like S3. The only thing missing, for my needs are secure URLs, for controlling access to files, and preventing deep linking. Otherwise, it seems to have all the right stuff. Metadata and data access happen over different channels, so the performance should be reasonable. In fact, media files are accessed directly via HTTP, through lighttpd or Perlbal, so that should be quite fast.
In the beginning...
These days it seems that anybody who's anybody in IT has a blog. Here goes nothing! ^_^ This will likely serve as a repository for the notes that I normally take on paper (and eventually lose) or the ones I write in random text files. Maybe some of my notes will be useful to others as well.
Subscribe to:
Posts (Atom)