Commit inicial
This commit is contained in:
		
						commit
						82fb88a4e7
					
				
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					node_modules
 | 
				
			||||||
							
								
								
									
										40
									
								
								consumer.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								consumer.js
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,40 @@
 | 
				
			|||||||
 | 
					const { Kafka } = require('kafkajs')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const kafka = new Kafka({
 | 
				
			||||||
 | 
					  clientId: 'my-app',
 | 
				
			||||||
 | 
					  brokers: ['localhost:9092']
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//const producer = kafka.producer()
 | 
				
			||||||
 | 
					const consumer = kafka.consumer({ groupId: 'test-group' })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const run = async () => {
 | 
				
			||||||
 | 
					  // // Producing
 | 
				
			||||||
 | 
					  // await producer.connect()
 | 
				
			||||||
 | 
					  // await producer.send({
 | 
				
			||||||
 | 
					  //   topic: 'test-topic',
 | 
				
			||||||
 | 
					  //   messages: [
 | 
				
			||||||
 | 
					  //     { value: 'Hello KafkaJS user!' },
 | 
				
			||||||
 | 
					  //   ],
 | 
				
			||||||
 | 
					  // })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  // Consuming
 | 
				
			||||||
 | 
					  await consumer.connect()
 | 
				
			||||||
 | 
					  await consumer.subscribe({ topic: process.env.TOPIC, fromBeginning: true })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  await consumer.run({
 | 
				
			||||||
 | 
					    eachMessage: async ({ topic, partition, message }) => {
 | 
				
			||||||
 | 
					      const obj = JSON.parse(message.value)
 | 
				
			||||||
 | 
					      console.log('Message consumer successfully!');
 | 
				
			||||||
 | 
					      console.log(obj.name)
 | 
				
			||||||
 | 
					      // console.log({
 | 
				
			||||||
 | 
					      //   partition,
 | 
				
			||||||
 | 
					      //   offset: message.offset,
 | 
				
			||||||
 | 
					      //   value: Json.parse(message.value),
 | 
				
			||||||
 | 
					      // })
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					run()
 | 
				
			||||||
							
								
								
									
										28
									
								
								create-topic.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								create-topic.js
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,28 @@
 | 
				
			|||||||
 | 
					const { Kafka } = require('kafkajs');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const kafka = new Kafka({
 | 
				
			||||||
 | 
					  clientId: 'my-app',
 | 
				
			||||||
 | 
					  brokers: ['localhost:9092']
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const admin = kafka.admin();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					async function createTopic() {
 | 
				
			||||||
 | 
					  try {
 | 
				
			||||||
 | 
					    await admin.connect();
 | 
				
			||||||
 | 
					    await admin.createTopics({
 | 
				
			||||||
 | 
					      topics: [{
 | 
				
			||||||
 | 
					        topic: 'my-topic-1',
 | 
				
			||||||
 | 
					        numPartitions: 2,
 | 
				
			||||||
 | 
					        replicationFactor: 1
 | 
				
			||||||
 | 
					      }]
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					    console.log('Topic created successfully!');
 | 
				
			||||||
 | 
					  } catch (error) {
 | 
				
			||||||
 | 
					    console.error('Error creating topic:', error);
 | 
				
			||||||
 | 
					  } finally {
 | 
				
			||||||
 | 
					    await admin.disconnect();
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					createTopic();
 | 
				
			||||||
							
								
								
									
										21
									
								
								list-topic.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								list-topic.js
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,21 @@
 | 
				
			|||||||
 | 
					const { Kafka } = require('kafkajs');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const kafka = new Kafka({
 | 
				
			||||||
 | 
					  clientId: 'my-app',
 | 
				
			||||||
 | 
					  brokers: ['localhost:9092']
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const admin = kafka.admin();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					async function listTopic() {
 | 
				
			||||||
 | 
					  try {
 | 
				
			||||||
 | 
					    const list = await admin.listTopics()
 | 
				
			||||||
 | 
					    console.log(list);
 | 
				
			||||||
 | 
					  } catch (error) {
 | 
				
			||||||
 | 
					    console.error('Error creating topic:', error);
 | 
				
			||||||
 | 
					  } finally {
 | 
				
			||||||
 | 
					    await admin.disconnect();
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					listTopic();
 | 
				
			||||||
							
								
								
									
										27
									
								
								package-lock.json
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								package-lock.json
									
									
									
										generated
									
									
									
										Normal file
									
								
							@ -0,0 +1,27 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					  "name": "kafkajs",
 | 
				
			||||||
 | 
					  "lockfileVersion": 2,
 | 
				
			||||||
 | 
					  "requires": true,
 | 
				
			||||||
 | 
					  "packages": {
 | 
				
			||||||
 | 
					    "": {
 | 
				
			||||||
 | 
					      "dependencies": {
 | 
				
			||||||
 | 
					        "kafkajs": "^2.2.2"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/kafkajs": {
 | 
				
			||||||
 | 
					      "version": "2.2.4",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/kafkajs/-/kafkajs-2.2.4.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-j/YeapB1vfPT2iOIUn/vxdyKEuhuY2PxMBvf5JWux6iSaukAccrMtXEY/Lb7OvavDhOWME589bpLrEdnVHjfjA==",
 | 
				
			||||||
 | 
					      "engines": {
 | 
				
			||||||
 | 
					        "node": ">=14.0.0"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  "dependencies": {
 | 
				
			||||||
 | 
					    "kafkajs": {
 | 
				
			||||||
 | 
					      "version": "2.2.4",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/kafkajs/-/kafkajs-2.2.4.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-j/YeapB1vfPT2iOIUn/vxdyKEuhuY2PxMBvf5JWux6iSaukAccrMtXEY/Lb7OvavDhOWME589bpLrEdnVHjfjA=="
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										5
									
								
								package.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								package.json
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,5 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					  "dependencies": {
 | 
				
			||||||
 | 
					    "kafkajs": "^2.2.2"
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										50
									
								
								producer.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								producer.js
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,50 @@
 | 
				
			|||||||
 | 
					const { Kafka, Partitioners } = require('kafkajs')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const kafka = new Kafka({
 | 
				
			||||||
 | 
					  clientId: 'my-app',
 | 
				
			||||||
 | 
					  brokers: ['localhost:9092']
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const producer = kafka.producer({ createPartitioner: Partitioners.LegacyPartitioner });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const run = async () => {
 | 
				
			||||||
 | 
					  const obj = {
 | 
				
			||||||
 | 
					    id: 1,
 | 
				
			||||||
 | 
					    name: 'John 1',
 | 
				
			||||||
 | 
					    age: 30
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  // Producing
 | 
				
			||||||
 | 
					  try {
 | 
				
			||||||
 | 
					    await producer.connect()
 | 
				
			||||||
 | 
					    await producer.send({
 | 
				
			||||||
 | 
					      topic: process.env.TOPIC,
 | 
				
			||||||
 | 
					      messages: [
 | 
				
			||||||
 | 
					        { value:  JSON.stringify(obj)  },
 | 
				
			||||||
 | 
					      ],
 | 
				
			||||||
 | 
					    })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    console.log('Message sent successfully!');
 | 
				
			||||||
 | 
					  } catch (error) {
 | 
				
			||||||
 | 
					    console.error('Error sending message:', error);
 | 
				
			||||||
 | 
					  } finally {
 | 
				
			||||||
 | 
					    await producer.disconnect();
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  // Consuming
 | 
				
			||||||
 | 
					  // await consumer.connect()
 | 
				
			||||||
 | 
					  // await consumer.subscribe({ topic: 'test-topic', fromBeginning: true })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  // await consumer.run({
 | 
				
			||||||
 | 
					  //   eachMessage: async ({ topic, partition, message }) => {
 | 
				
			||||||
 | 
					  //     console.log({
 | 
				
			||||||
 | 
					  //       partition,
 | 
				
			||||||
 | 
					  //       offset: message.offset,
 | 
				
			||||||
 | 
					  //       value: message.value.toString(),
 | 
				
			||||||
 | 
					  //     })
 | 
				
			||||||
 | 
					  //   },
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					  // })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					run()
 | 
				
			||||||
							
								
								
									
										5
									
								
								start
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								start
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,5 @@
 | 
				
			|||||||
 | 
					// Start Zookeeper
 | 
				
			||||||
 | 
					/usr/local/bin/zookeeper-server-start /usr/local/etc/zookeeper/zoo.cfg
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// start Kafka
 | 
				
			||||||
 | 
					/usr/local/bin/kafka-server-start /usr/local/etc/kafka/server.properties
 | 
				
			||||||
							
								
								
									
										8
									
								
								yarn.lock
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								yarn.lock
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,8 @@
 | 
				
			|||||||
 | 
					# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
 | 
				
			||||||
 | 
					# yarn lockfile v1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					"kafkajs@^2.2.2":
 | 
				
			||||||
 | 
					  "integrity" "sha512-j/YeapB1vfPT2iOIUn/vxdyKEuhuY2PxMBvf5JWux6iSaukAccrMtXEY/Lb7OvavDhOWME589bpLrEdnVHjfjA=="
 | 
				
			||||||
 | 
					  "resolved" "https://registry.npmjs.org/kafkajs/-/kafkajs-2.2.4.tgz"
 | 
				
			||||||
 | 
					  "version" "2.2.4"
 | 
				
			||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user