Recently we started looking at ActiveMQ as a replacement of the JMS layer of
our backend, and thus I have been doing some test setups, using ActiveMQ
5.14.0

The requirements I'm looking at are:
- reliability: highly available, no corruption
- able to handle peak loads of approx. 250 msgs per second (incoming) (other
performance is less of an issue)
- able to handle messages that may stay on the queues for a longer period
(e.g. a few months)
- able to guarantee order of delivery (fifo)

Given above constraints, I made the following setups:
- replicatedLevelDB: As may be seen in another post, I found this backend
too easily getting corrupted under stress.
- KahaDB in a network of brokers, but that does not guarantee order of
delvery (fifo)
- JDBC to a PostgreSQL database

I have not done a single KahaDB on a shared storage; This is because in our
experience the shared storage adds unreliability; besides, I think KahaDB is
less of an option due to the messages that remain on a queue for an extended
period. Given the load, I expect the logs to grow very large (a few hundred
gigabytes in my estimation) and this makes it less of an option.

The JDBC backend seems to perform. I did some tests, sending 100.000
messages and they were all persisted nicely; However, PostgreSQL does not
offer HA out of the box; There is replication, and thus a master/slave, but
no automatic promotion of a slave to master, and the slave is (of course)
read-only.

To tackle this, I have looked at PostgreSQL-BDR; It appears to come close,
but having a third slave causes a lock race when the master broker goes
away, a race that is won and lost in turns by each of the other brokers. Of
course, this should be mitigated having only 2 brokers, of which one is
active.

I was wondering what the experiences of others are; what is good practice
and what to avoid, common mistakes and "easy" wins (that are not that
obvious); Good experiences and bad ones... 




--
View this message in context: 
http://activemq.2283324.n4.nabble.com/ActiveMQ-persistency-backends-good-and-best-practices-tp4717473.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.

Reply via email to