Giter Site home page Giter Site logo

artemishatest's Introduction

ArtemisHATest

This project exists to test the behavior of Artemis in a replicated-failback-static configuration given the example linked to below. Specifically this test exists to functionally test the zero message loss guarantee for durable queues.

https://github.com/apache/activemq-artemis/tree/master/examples/features/ha/replicated-failback-static

Overview of test

This test sets up two docker containers based on an image that already has java installed. It deploys Artemis on both containers with one setup as the master and one as the slave. The configuration is nearly the same as the one given in the example. Running on the same machine the communication is so fast between the two docker containers makes it difficult to reliably test the behavior of the replication. My solution to this problem is to use linux netem to simulate a network delay on the slave. Once both of the brokers are up, and netem is setup to simulate a network delay between them, the final step of this test is to execute the java test program. The test program will begin by synchronously and transactionally placing 100 80kB messages on the exampleQueue on the master node. Once the last message has been successfully placed on the queue, the test program will immediately execute kill -9 on the artemis master node. Executing kill -9 on the server simulates a sudden node failure. Once the master node goes down, the test program waits a 10 seconds for the slave to come up before trying to connect to it. Once the test program connects to the slave node it then tried to read the 100 messages from the slave node to make sure they are all there.

Requirements

  • Docker

Running the test

1 - Execute setupTests.bash to setup the test.

./setupTests.bash

artemishatest's People

Contributors

darkendone avatar

Watchers

 avatar

Forkers

pverge2112

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.