Showing posts with label message queue. Show all posts
Showing posts with label message queue. Show all posts

Monday, January 17, 2011

How to install Kestrel on Ubuntu 10.04

What is Kestrel ?

From https://github.com/robey/kestrel :

Kestrel is based on Blaine Cook's "starling" simple, distributed message queue, with added features and bulletproofing, as well as the scalability offered by actors and the JVM.

Pre-requirements:

In order to install Kestrel, you need to have java, scala as well as sbt installed. I've gathered a few links here and there that explain how to do so. 

Install Java

Follow instructions there : 
http://www.ubuntugeek.com/how-install-sun-java-runtime-environment-jre-in-ubuntu-10-04-lucid-lynx.html

Install Scala:

$ wget http://www.scala-lang.org/downloads/distrib/files/scala-2.8.1.final.tgz 
$ tar -zxf scala-2.8.1.final.tgz 
$ sudo mv scala-2.8.1.final /usr/share/scala 
$ sudo ln -s /usr/share/scala/bin/scala /usr/bin/scala 
$ sudo ln -s /usr/share/scala/bin/scalac /usr/bin/scalac

Instal sbt:

Follow instructions there : http://code.google.com/p/simple-build-tool/wiki/Setup

Install daemon ( http://libslack.org/daemon/ )

$ cd /tmp 
/tmp$ wget http://libslack.org/daemon/download/daemon-0.6.4.tar.gz 
/tmp$ tar -xzvf daemon-0.6.4.tar.gz 
/tmp$ cd daemon-0.6.4 
/tmp/daemon-0.6.4$ ./configure
/tmp/daemon-0.6.4$ make 
/tmp/daemon-0.6.4$ make test 
/tmp/daemon-0.6.4$ sudo make install

Checkout the latest version of Kestrel on github.com

~$ cd /tmp
/tmp$ git clone git@github.com:robey/kestrel.git
/tmp$ cd kestrel
# Build from source
/tmp/kestrel$ sbt clean update package-dist
# enter dist directory
/tmp/kestrel$ cd dist
/tmp/kestrel/dist/$
# copy kestrel folder to /opt/local/
/tmp/kestrel/dist/$ sudo mkdir /opt/local/kestrel
/tmp/kestrel/dist/$ sudo cp -r kestrel-1.2.9-SNAPSHOT /opt/local/kestrel
/tmp/kestrel/dist/$ cd /opt/local/kestrel
# link current version of kestrel to a 'current' link
/opt/local/kestrel$ sudo ln -s kestrel-1.2.9-SNAPSHOT current
# copy startup scripts
/opt/local/kestrel/current/$ sudo cp scripts/kestrel.sh /etc/init.d/kestrel
/opt/local/kestrel/current/$ cd /etc/init.d/
/etc/init.d/$ sudo chmod u+x kestrel
# edit line 21 to pidfile="/var/run/kestrel/$APP_NAME.pid"
/etc/init.d/$ sudo vim kestrel
# verify user permissions are set to user daemon
/etc/init.d/$ sudo chown -R daemon /var/spool/kestrel
/etc/init.d/$ sudo chown -R daemon /var/log/kestrel
# Link /usr/bin/java to /usr/java
/etc/init.d/$ sudo ln -s /usr/bin/java /bin/java
# check kestrel status
/etc/init.d/$ sudo ./kestrel status
kestrel is NOT running.
/etc/init.d/$ sudo ./kestrel start
Starting kestrel... done.
#connect to kestrel
/etc/init.d/$ telnet 127.0.0.1 22133
Trying 127.0.0.1... 
Connected to 127.0.0.1.
Escape character is '^]'. 
STATS 
STAT uptime 185 
STAT time 1295254423 
STAT version 1.2.9-SNAPSHOT 
STAT curr_items 0 
[...]
END

Voila :)