Hello everyone, We are started to investigate how our current messaging system configuration is fault-tolerant and highly available and we also investigating how we may increase its throughput.
Currently, we use Apache ActiveMQ 5.14.3 in a Master/Slave configuration using JDBC Master Slave with a shared database. We use MySQL database on AWS RDS and we consider it redundant. We use massages persistence in order to exclude any messages loss. Fault Tolerance/High Availability Analyzing the documentation [1], [2], [3], [4] we may say that in order to achieve fault-tolerant configuration we have the following options: 1. Shared File System Master Slave 2. JDBC Master Slave 3. Replicated LevelDB Store As we currently use JDBC Master Slave configuration here we have the following questions: Q1. Does this configuration protect us from split-brain [c2]? Q2. Does this configuration protect us from messages loss [c2]? Q3. Do we understand correctly that Replicated LevelDB Store option should not be used [c1], [4] and such option is not available for KahaDB? So, in fact, we have just 2 options in order to achieve fault-tolerant configuration. Throughput As is mentioning in the documentation [3], JDBC is slow and this is a fact we should consider. Now we started to investigate options to increase throughput of the messaging system and according to our 'no messages loss' requirement we may use here the following option: 1. Shared File System Master Slave 2. Network of Brokers 3. Tunning configuration It seems that we should measure performance using JDBC and NFS or GlusterFS to see the difference in the performance. In case of Network of Brokers we, for example, may create four pairs of Master/Slaves and then use two of them for producers and two for consumers or distribute them in a different way. We also should consider messages order in such case. For configuration tunning [5], [6] we should review our configuration. Q4. The question here maybe if we are looking in the right direction Future We also considering to change our messaging system if it will not fit our needs, but preferably is to remain on ActiveMQ. In the process of researching, we saw some mailing-list discussion [7], [8], [9], [10], [11] about Apache ActiveMQ Artemis. Sorry for boring you with such question after reading all of them. Q5. Just want to confirm that we understand direction correctly and Artemis have a chance to become next step in ActiveMQ 5.x development and that currently more development work is done on it [12], [13], [14], [15], [16], [17]. Thank you! Slava. Documentation: [1] - http://activemq.apache.org/clustering.html [2] - http://activemq.apache.org/shared-file-system-master-slave.html [3] - http://activemq.apache.org/jdbc-master-slave.html [4] - http://activemq.apache.org/replicated-leveldb-store.html [5] - http://activemq.apache.org/performance-tuning.html [6] - http://activemq.apache.org/performance.html Mailing lists: [7] - http://activemq.2283324.n4.nabble.com/DISCUSS-LevelDB-deprecation-td4719227.html [8] - http://activemq.2283324.n4.nabble.com/Switch-to-Artemis-from-ActiveMQ-v5-14-4-td4727014.html [9] - http://activemq.2283324.n4.nabble.com/ActiveMQ-vs-Apache-artemis-td4730906.html [10] - http://activemq.2283324.n4.nabble.com/VOTE-ActiveMQ-Artemis-becomes-ActiveMQ-6-td4733392.html [11] - http://activemq.2283324.n4.nabble.com/DISCUSS-Confusion-surrounding-the-ActiveMQ-project-roadmap-td4732935.html Development: [12] - https://github.com/apache/activemq/releases [13] - https://github.com/apache/activemq/graphs/commit-activity [14] - https://issues.apache.org/jira/projects/AMQ/issues/AMQ-6977?filter=allopenissues [15] - https://github.com/apache/activemq-artemis/releases [16] - https://github.com/apache/activemq-artemis/graphs/commit-activity [17] - https://issues.apache.org/jira/projects/ARTEMIS/issues/ARTEMIS-1975?filter=allopenissues Citations: [c1] - http://activemq.apache.org/replicated-leveldb-store.html -- The LevelDB store has been deprecated and is no longer supported or recommended for use. The recommended store is KahaDB -- [c2] - https://webspherecompetition.wordpress.com/2015/08/12/apache-activemq-and-ibm-mq-high-availability-and-administrative-analysis/ -- Apache ActiveMQ passed testing when a Broker was fully shutdown (planned or unplanned). However, when encountering a temporary network interruption, it created a situation where there was message duplication and a potential for lost messages. Similarly, when using the “more reliable” JDBC as the persistence store, a separate unrelated issue resulted in a concern around lost messages. IBM MQ passed all testing without message duplication or potential for lost messages. -- -- Sent from: http://activemq.2283324.n4.nabble.com/ActiveMQ-User-f2341805.html