{ "info": { "author": "Joao Gilberto Magalhaes", "author_email": "joao@byjg.com.br", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "# ActiveMQ Easy Config\n\nThis project aims a easy way to setup a network of ActiveMQ brokers. You can change easily the topology and this \nscript will create the configurations based on your setup. ActiveMQ Easy Config will produce for you:\n\n- An `activemq.xml` file for each broker with the specific configuration for the broker\n- A Docker image for each broker to easy adapt in your container orchestrator.\n- A script for run the docker image locally in order to test your network locally.\n\n\n# How it works?\n\nLet's take an example of a duplex connection between two ActiveMQ brokers: \n\n```\n\n +----------+ +----------+\n | | Duplex | | \n | Broker 1 | ---<-->----<-->--- | Broker 2 |\n | | | | \n +----------+ +----------+\n\n```\n\nFirst you have to define the `yaml` file with the configuration of your network:\n\n```yaml\nbrokers:\n node1: \"static:(tcp://node1:61616)\"\n node2: \"static:(tcp://node2:61616)\"\n\nnetworks:\n common_configuration:\n set_broker_name: \"false\"\n queue:\n conduit_subscriptions: \"false\"\n consumer_ttl: \"1\"\n duplex: \"true\"\n message_ttl: \"-1\"\n physical_name: \">\"\n user_name: \"admin\"\n topic:\n conduit_subscriptions: \"true\"\n consumer_ttl: \"1\"\n duplex: \"true\"\n message_ttl: \"-1\"\n physical_name: \">\"\n user_name: \"admin\"\n\n network_connector:\n node1:\n to:\n - node2\n config:\n queue:\n duplex: \"false\"\n topic:\n _ignore: \"true\"\n node2:\n to:\n - node1\n``` \n\nThe first topic in the yaml will define the broker and your respective connection. \nIf you intend to use docker, the address can be the broker name. \n\nYou can see a lot of examples of network of brokers in the directory `templates`. In the same directory\nyou have an `activemq.xml` file used as base also.\n\nAfter create your template you can just run:\n\n```bash\npython aec.py \\\n --config templates/simple-duplex-config.yaml \\\n --activemq templates/activemq.xml \\\n --save-to /my/path/project\n```\n\nAnd you'll get the follow files as result:\n\n- node1.xml\n- node2.xml\n\nOptionally if you pass a path to a `Dockerfile` and a registry name, the system will create:\n\n- run.sh\n- build.sh\n- Dockerfile\n\nYou can run `build.sh` to build the docker images and `run.sh` to run the containers in your local machine. \n\nThe docker image created can easily adapted to run on Kubernetes, Docker Swarm or ECS.\n\nIn the folder `check` you can run a simple producer/consumer to check the communication.\n\n# Installing\n\n\n## Recommended:\n\n```bash\npip install aec\n```\n\n## get from source\n\nJust clone the repository.\n\n```bash\ngit clone git@github.com:byjg/activemq-easy-config\n``` \n\n# To Do\n\nHelp here is appreciate :)\n\n- This configuration can be expanded to other features on ActiveMQ.\n- K8s implementation\n- Docker swarm implementation\n- ECS implementation \n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/byjg/activemq-easy-config", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "aec", "package_url": "https://pypi.org/project/aec/", "platform": "", "project_url": "https://pypi.org/project/aec/", "project_urls": { "Homepage": "https://github.com/byjg/activemq-easy-config" }, "release_url": "https://pypi.org/project/aec/0.1.3/", "requires_dist": [ "pyyaml (>=5.1)" ], "requires_python": "", "summary": "ActiveMQ Easy Config", "version": "0.1.3" }, "last_serial": 5394011, "releases": { "0.1.1": [ { "comment_text": "", "digests": { "md5": "14caec7020a89ff6abacbaa84ec6ed97", "sha256": "e7bf0807e94d272daf5a5d7116dcc9d5eb4e1f4392d591bf74711d793910de17" }, "downloads": -1, "filename": "aec-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "14caec7020a89ff6abacbaa84ec6ed97", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5468, "upload_time": "2019-06-12T05:56:07", "url": "https://files.pythonhosted.org/packages/18/0f/1f46395b8870d8bc26b846fdd2f9bdc6852c47ec3c51349fa6cd619ba5aa/aec-0.1.1-py3-none-any.whl" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "2bce10b2e72d0bec7f94cf2124be16fc", "sha256": "4438ed17ea2533f06c910ff91b261bdc5741561c409e8f306510caea56f56450" }, "downloads": -1, "filename": "aec-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "2bce10b2e72d0bec7f94cf2124be16fc", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5634, "upload_time": "2019-06-12T07:16:44", "url": "https://files.pythonhosted.org/packages/0f/e6/c805e228b1e8b858e9072acebfe533e16d68aebd0523b499623c3a5a7ee3/aec-0.1.2-py3-none-any.whl" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "f07be6306033a06f41ad7fbb1700caee", "sha256": "8cae3bffe4a0659419a8e9a689705ae9bc22a4d932f58240d5f3d44630be61d3" }, "downloads": -1, "filename": "aec-0.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "f07be6306033a06f41ad7fbb1700caee", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5691, "upload_time": "2019-06-13T03:35:32", "url": "https://files.pythonhosted.org/packages/18/5b/423798d2f9ce538d5fbe3927206fa5170de80aaf92b2e050fdae40f7cead/aec-0.1.3-py3-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "f07be6306033a06f41ad7fbb1700caee", "sha256": "8cae3bffe4a0659419a8e9a689705ae9bc22a4d932f58240d5f3d44630be61d3" }, "downloads": -1, "filename": "aec-0.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "f07be6306033a06f41ad7fbb1700caee", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5691, "upload_time": "2019-06-13T03:35:32", "url": "https://files.pythonhosted.org/packages/18/5b/423798d2f9ce538d5fbe3927206fa5170de80aaf92b2e050fdae40f7cead/aec-0.1.3-py3-none-any.whl" } ] }