egg-kafka-cluster
Version:
provides egg bindings for the kafka.
81 lines (60 loc) • 1.97 kB
Markdown
provides egg bindings for the kafka.
[](https://github.com/uccu/egg-kafka-cluster/actions/workflows/publish.yml)
[![NPM version][npm-image]][npm-url]
[](https://github.com/uccu/egg-kafka-cluster/issues)

[]: https://img.shields.io/npm/v/egg-kafka-cluster.svg?style=flat-square
[]: https://npmjs.com/package/egg-kafka-cluster
[]: https://img.shields.io/npm/dm/egg-kafka-cluster.svg?style=flat-square
[]: https://npmjs.com/package/egg-kafka-cluster
```bash
$ npm i egg-kafka-cluster --save
```
```js
// {app_root}/config/plugin.ts
export const kafkaCluster = {
enable: true,
package: 'egg-kafka-cluster',
};
// {app_root}/config/config.default.ts
exports.kafka = {
consumerGlobalConfig: {
'group.id': 'consumer-default',
'metadata.broker.list': 'kafka',
},
consumerTopicConfig: {
'auto.offset.reset': 'beginning',
},
readStreamOptions: {
topics: [ 'activity' ],
},
producerGlobalConfig: {
'metadata.broker.list': 'kafka',
},
producerTopicConfig: {},
writeStreamOptions: {
topic: 'activity',
},
};
```
```typescript
// Producer
this.app.kafka.write('activity', {status: 'start'});
// Consumer
// {app_root}/app/mq/Activity.ts
import { Consumer } from 'egg-kafka-cluster';
export default class Activity extends Consumer {
async run(data: Record<string, unknown>) {
console.log('Topic Activity Data: %s', JSON.stringify(data));
}
}
```
see [config/config.default.ts](config/config.default.ts) for more detail.
Please open an issue [here](https://github.com/uccu/egg-kafka-cluster/issues).
[](LICENSE)