{"id":30716816,"url":"https://github.com/raeidsaqur/springboot-python-microservices-amqp","last_synced_at":"2026-05-08T19:33:38.379Z","repository":{"id":96142486,"uuid":"87325751","full_name":"raeidsaqur/springboot-python-microservices-amqp","owner":"raeidsaqur","description":"Exploring inter-services communication using AQMP brokers like RabbitMQ among python and Java based microservices.","archived":false,"fork":false,"pushed_at":"2017-04-05T21:49:34.000Z","size":655,"stargazers_count":4,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-09-03T08:41:05.851Z","etag":null,"topics":["amqp","pika","python","scraping-websites","spring-boot","springframework"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/raeidsaqur.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2017-04-05T15:26:25.000Z","updated_at":"2023-05-26T01:24:27.000Z","dependencies_parsed_at":"2023-04-15T14:17:11.928Z","dependency_job_id":null,"html_url":"https://github.com/raeidsaqur/springboot-python-microservices-amqp","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/raeidsaqur/springboot-python-microservices-amqp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raeidsaqur%2Fspringboot-python-microservices-amqp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raeidsaqur%2Fspringboot-python-microservices-amqp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raeidsaqur%2Fspringboot-python-microservices-amqp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raeidsaqur%2Fspringboot-python-microservices-amqp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/raeidsaqur","download_url":"https://codeload.github.com/raeidsaqur/springboot-python-microservices-amqp/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raeidsaqur%2Fspringboot-python-microservices-amqp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32794716,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-08T08:22:46.396Z","status":"ssl_error","status_checked_at":"2026-05-08T08:22:45.650Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["amqp","pika","python","scraping-websites","spring-boot","springframework"],"created_at":"2025-09-03T08:27:02.474Z","updated_at":"2026-05-08T19:33:38.374Z","avatar_url":"https://github.com/raeidsaqur.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Inter-services communicaton using AQMP Brokers\n\nExploring inter-services communication using AQMP brokers like RabbitMQ among python and java based microservices.\n\n## Setup\n*cd* into each of the front-end, backend services directory and initiate them:\n\n```\nvagrant up --provider virtualbox\n\njava-api-backend$ gradle run\njava-api-backend$ cd ../knockout-frontend\n\nknockout-frontend$ python -m SimpleHTTPServer 8090\nknockout-frontend$ cd ../python-scraping-service\n\npython-scraping-service$ pip install -r requirements.txt\npython-scraping-service$ python worker.py\n\n```\n\n### Prerequisites\n\n_Note_: You must have *wget* and *apt-get* installed on Mac OS X for the vagrant scripts to execute successfully.\n\n_To install *wget*, simply run:_ `brew install wget`\n\n\n\n### Vagrant Setup\n\nI've used virtualbox with ubuntu/trusty64 environment for running this. If you don't have it setup, the easiest to do this in Mac OS X is using Homebrew Cask:\n\n##### Install\n\n```\n\t$ brew cask install virtualbox\n\t$ brew cask install vagrant\n```\n_Vagrant Manager_ helps you manage all your VMs in one place from menubar\n\n```\n\t$ brew cask install vagrant-manager\n```\nEvery Vagrant development environment requires a box. You can search for boxes at [link][2]\n\nThe virtual box used for this demo is ubuntu/trusty64 [link][3]\n\n```\n\t$ vagrant init ubuntu/trusty64; \n```\nYou should get a CL message: _A `Vagrantfile` has been placed in this directory. You are now ready to `vagrant up` your first virtual environment! Please read\nthe comments in the Vagrantfile as well as documentation on\n`vagrantup.com` for more information on using Vagrant._\n\n```\n\t$ vagrant up --provider virtualbox\n```\n\n![alt text][vagrant-up]\n\nTo get rid of the vagrant VM, just run `vagrant destroy`\n\nAlso, you may find it easier to manage the virtual boxes using *vagrant-manager*, which can be installed using `brew install vagrant-manager`\n\n![alt text][vagrant-manager]\n\n\n**Note**: to make things easier, in application.properties the line spring.jpa.hibernate.ddl-auto=create allows us to automatically create the tables when starting up. However, this means all tables get erased with each new start. Change the line to spring.jpa.hibernate.ddl-auto=validate (after you have started up the backend at least once) to avoid data loss.\n\n\n### Python Modules and Requirements\n\n[Pika link][1]: Pika is a pure-Python implementation of the AMQP 0-9-1 protocol that tries to stay fairly independent of the underlying network support library.\n\n#### Python Scraper\n\nFor the actual scraping of a website’s summary, we use https://github.com/raeidsaqur/sumy library. Please see their docs (especially as it requires to have nltk installed on your system).\n\n\nThe scraper is not doing much except using the sumy library and returning the result.\n\nTo run the python scraper, install requirements.txt (preferably in a virtualenv) and then simply run worker.py:\n\n```\n(venv)python-scraping-service$ python worker.py \n```\n\n### Spring-boot Java Requirements\n\nSpring has a boot starter module available for RabbitMQ [link][4] `org.springframework.boot:spring-boot-starter-amqp`, which we add to our dependencies.\n\n\n### Knockout JS front-end Requirements\n\n### Reference:\n\n1. [https://pika.readthedocs.io/en/0.10.0/index.html][1]\n2. [https://atlas.hashicorp.com/boxes/search][2]\n3. [https://atlas.hashicorp.com/ubuntu/boxes/trusty64][3]\n4. [Spring Boot RabbitMQ][4]\n\n[vagrant-up]: https://github.com/raeidsaqur/springboot-python-microservices-amqp/blob/develop/docs/vagrant-up.png \"vagrant up CLI message\"\n[vagrant-manager]: https://github.com/raeidsaqur/springboot-python-microservices-amqp/blob/develop/docs/vagrant-manager.png\n\n\n[1]: https://pika.readthedocs.io/en/0.10.0/index.html\n[2]: https://atlas.hashicorp.com/boxes/search\n[3]: https://atlas.hashicorp.com/ubuntu/boxes/trusty64\n[4]: https://spring.io/guides/gs/messaging-rabbitmq/\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fraeidsaqur%2Fspringboot-python-microservices-amqp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fraeidsaqur%2Fspringboot-python-microservices-amqp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fraeidsaqur%2Fspringboot-python-microservices-amqp/lists"}