{"id":26658945,"url":"https://github.com/denisecase/kafka-case","last_synced_at":"2025-04-11T14:09:41.409Z","repository":{"id":44699305,"uuid":"217203427","full_name":"denisecase/kafka-case","owner":"denisecase","description":"Custom Kafka Producer and Consumer","archived":false,"fork":false,"pushed_at":"2024-03-14T13:12:26.000Z","size":31,"stargazers_count":2,"open_issues_count":8,"forks_count":22,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-25T10:17:17.328Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/denisecase.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-10-24T03:27:36.000Z","updated_at":"2022-01-29T20:08:12.000Z","dependencies_parsed_at":"2023-01-21T12:16:23.370Z","dependency_job_id":null,"html_url":"https://github.com/denisecase/kafka-case","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/denisecase%2Fkafka-case","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/denisecase%2Fkafka-case/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/denisecase%2Fkafka-case/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/denisecase%2Fkafka-case/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/denisecase","download_url":"https://codeload.github.com/denisecase/kafka-case/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248413725,"owners_count":21099349,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":[],"created_at":"2025-03-25T10:17:22.110Z","updated_at":"2025-04-11T14:09:41.386Z","avatar_url":"https://github.com/denisecase.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# kafka-case\n\nCustom Kafka Producer and Consumer apps.\n\n- Article: \u003chttps://www.javaworld.com/article/3060078/big-data/big-data-messaging-with-kafka-part-1.html\u003e\n\nGoal:\n\n* Create your own CustomConsumer.\n* Create your own CustomProducer to auto-generate and send at least 10 messages to a topic using the Twitter API.\n* Use a custom namespace to avoid naming conflicts with other \"CustomProducer\" classes.\n\nAlternate:\n\n* Use Facebook API, or create a random word generator, choose a random noun-verb-noun, or cycle through a list sending one message every second.\n* Experiment - the goal is to be comfortable adding external messaging to any Java app.\n\n## Recommended Environment\n\n* [Notepad++](https://notepad-plus-plus.org/)\n* [VS Code](https://code.visualstudio.com/)\n* [VS Code Extension - Java Extension Pack](https://marketplace.visualstudio.com/items?itemName=vscjava.vscode-java-pack)\n\n## Prerequisities\n\n* Twitter Developer Account\n* OpenJDK or JDK (8 or up)\n* Apache Maven\n* Apache Zookeeper\n* Apache Kafka\n\nAlso:\n\n* Configure system environment variables including Path.\n* Configure Zookeeper\n* Configure Kafka\n\n## Complete your Project\n\n* Determine your namespace.\n* Follow the Maven standard project directory structure.\n* Use src\\main\\java for your code (with namespace folders)\n* Use src\\main\\resources for your proporties files.\n* Write your custom Kafka Producer in your namespace.\n* Write your custome Kafka Consumer in your namespace.\n* Add pom.xml\n* Add README.md\n* Add .gitignore\n\n## Compile and Build a Fat Jar File\n\nOpen PowerShell as Administrator in the root project folder, compile the code using Maven and create an executable jar file. Generated artificacts can be found in the new 'target' folder.\n\nRecommendation:  Run this command each time you make code changes. \n\n```PowerShell\nmvn clean compile assembly:single\n```\n\n## 1 - Run Zookeeper Service\n\nStart and keep running the Zookeeper service.\n\n## 2 - Run Kafka Service\n\nStart and keep running the Kafka service.\n\n## 3 - Start Consumer\n\nOpen PowerShell as Administrator in the root project folder, start the original consumer app:\n\n```PowerShell\njava -cp target/kafka-case-1.0-SNAPSHOT-jar-with-dependencies.jar edu.nwmissouri.isl.professorcase.kafka.CustomConsumer\n```\n\n## 4 - Start Producer\n\nOpen a new PowerShell as Administrator in the root project folder, start the Producer app using topic test:\n\n```PowerShell\njava -cp target/kafka-case-1.0-SNAPSHOT-jar-with-dependencies.jar edu.nwmissouri.isl.professorcase.kafka.CustomProducer\n```\n\n## Test Communications\n\nVerify messages are output by the Consumer.\n\n## Accessing Twitter with Code\n\nSee http://www.baeldung.com/twitter4j\n\nFor help registering your Twitter API see this Tweepy article: \n- \u003chttp://www.compjour.org/tutorials/getting-started-with-tweepy/\u003e\n\nRegister app:\n- https://apps.twitter.com\n\nDeveloper Agreement:\n- https://developer.twitter.com/en/developer-terms/agreement-and-policy\n\nTwitter App Attributes Example:\n\n- Name: KafkaCaseCustomProducer\n- Description: Sample app to illustrate working with the Twitter API and using Kafka from a Java application\n- Website: https://bitbucket.org/professorcase/h08\n- Callback URL: (blank)\n\n## See also\n\n- Simple examples at \u003chttps://github.com/denisecase/kafka-api\u003e\n- \u003chttp://cloudurable.com/blog/kafka-tutorial-kafka-producer/index.html\u003e\n\n## Repository\n\n- Source: \u003chttps://github.com/denisecase/kafka-case\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdenisecase%2Fkafka-case","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdenisecase%2Fkafka-case","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdenisecase%2Fkafka-case/lists"}