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…
Reference in New Issue
Block a user