Scala队列系统 Kestrel
fmms
13年前
Kestrel 是 Scala 的一个非常小的队列系统,基于 starling。
-
fast
It runs on the JVM so it can take advantage of the hard work people have put into java performance.
-
small
Currently about 2500 lines of scala, because it relies on Netty (a rough equivalent of Danger's ziggurat or Ruby's EventMachine) -- and because Scala is extremely expressive.
-
durable
Queues are stored in memory for speed, but logged into a journal on disk so that servers can be shutdown or moved without losing any data.
-
reliable
A client can ask to "tentatively" fetch an item from a queue, and if that client disconnects from kestrel before confirming ownership of the item, the item is handed to another client. In this way, crashing clients don't cause lost messages.