Replace the BlockingQueue with a lmax disruptor.
This gives a significant performance increase in highly multithreaded jvms.
 http://lmax-exchange.github.io/disruptor/

The lmax disruptor's ringBuffer size is initialised to 16k.
Rationale here is that statsd msgs are short strings, and sending 10k/s is a normal use-case.
If the Handler thread fails to send out the udp packets fast enough
  (given it also squashes statsd messages into available MTU space)
 and the ringBuffer becomes full then new statsd messages will be dropped and
 a InsufficientCapacityException passed to the exception handler…

Exceptions from the lmax disruptor and handler are passed through to the exception handler.
Throwables from the lmax disruptor are logged as SEVERE.