Tuesday, December 29, 2015

OutputCache & Instrument using Flatwhite

If you are looking for OutputCache for WebApi, go here What is Flatwhite? Flatwhite is an AOP library with MVC and WebAPI ActionFilter style using Castle dynamic proxy. There are many libraries out there to help you intercept a method call such as PostSharp, recently CodeCop and they're really cool tools. However, I've been using Castle...

Wednesday, June 25, 2014

Book Review RabbitMQ Essentials

I've had a chance to read through the book "RabbitMQ Essentials" published by Packtpub.com This book is an excellent book for those who is thinking about integrating their software architect with RabbitMQ. The book is using an Application Inbox to step by step walk you through different technical decision to design and build an Inbox using RabbitMQ. Well, I personally wouldn't build an Inbox application using RabbitMQ because...

How did we recover from RabbitMQ network partition

We have a RabbitMQ cluster of 3 nodes hosting with Storm. Everything has been very smooth for a years without a problem until Storm upgraded their switches recently, twice actually. Unfortunately, both times they caused network partition problem to our cluster even though Storm said that the upgrade wouldn't affect their customers, just a little bit latency between servers :). Anyway, our mode in the cluster is pause_minority...

Monday, June 23, 2014

Using RabbitMQ Header exchange with Burrow.NET

In RabbitMQ, messages are published to the Exchange. However, subscription will be made against queues. Binding is the key to make the right messages to go to the expected queue. In this post, we will setup an exchange to filter messages that have ip = 1"0.10.0.1" in the header go to an expected queue. This will involve following steps: -...

Thursday, July 18, 2013

Monitor RabbitMQ queues & count total messages

- I used to do the hard way which is creating another queue which is bound to the same exchange with same parameters, routing keys. Then consume from that queue and count the message in 5 minutes, 15 minutes, 1 hour etc. - I've just got another idea which is more simple. The solution is similar to the first approach, but you apply "Message...