const createConsumerGroup = ({ autoCommitInterval, autoCommitThreshold }) => { return new ConsumerGroup({ logger: rootLogger, topics: keys(topics), topicConfigurations: topics, cluster, groupId, assigners, sessionTimeout, rebalanceTimeout, maxBytesPerPartition, minBytes, maxBytes, maxWaitTimeInMs, instrumentationEmitter, autoCommitInterval, autoCommitThreshold, isolationLevel, rackId, metadataMaxAge, }) }
consumerGroup = new ConsumerGroup({ logger: newLogger(), topics: ['topic1'],
this.consumer = new Kafka.ConsumerGroup(consumerOptions, topics);
expect(transporter.producer.createTopics).toHaveBeenCalledWith(["MOL-TEST.REQ.node", "MOL-TEST.RES.node"], true, jasmine.any(Function)); expect(Kafka.ConsumerGroup).toHaveBeenCalledTimes(1); expect(Kafka.ConsumerGroup).toHaveBeenCalledWith( { "encoding": "buffer", "fromOffset": "latest",
consumerGroup(type = 'web', fn) { assert(type, '[egg-kafka] consumers type argument must be required'); const kafkaConfig = this.app.config.kafka; const kafkaHost = kafkaConfig.client.kafkaHost; const consumerOption = kafkaConfig.consumerGroup[type] || {}; const topic = consumerOption.topic; consumerOption.kafkaHost = kafkaHost; const ConsumerGroup = kafka.ConsumerGroup; const _consumer = new ConsumerGroup(consumerOption, topic); _consumer.on('error', err => { this.app.coreLogger.error(`[egg-kafka] consumer have error ${err}`); }); _consumer.on('message', message => { fn && fn(message); }); }
function instrument(kafka) { shimmer.wrap(Object.getPrototypeOf(kafka.Producer.prototype), 'send', shimSend); shimmer.wrap(kafka.Consumer.prototype, 'emit', shimEmit); if (kafka.HighLevelConsumer) { // kafka-node 4.0.0 dropped the HighLevelConsumer API shimmer.wrap(kafka.HighLevelConsumer.prototype, 'emit', shimEmit); } else { // kafka-node 4.0.0 refactored the ConsumerGroup to not longer inherit from HighLevelConsumer so it needs to be // shimmed explicitly shimmer.wrap(kafka.ConsumerGroup.prototype, 'emit', shimEmit); } }
consumerGroup(type = 'web', fn) { assert(type, '[egg-kafka] consumers type argument must be required'); const kafkaConfig = this.app.config.kafka; const kafkaHost = kafkaConfig.client.kafkaHost; const consumerOption = kafkaConfig.consumerGroup[type] || {}; const topic = consumerOption.topic; consumerOption.kafkaHost = kafkaHost; const ConsumerGroup = kafka.ConsumerGroup; const _consumer = new ConsumerGroup(consumerOption, topic); _consumer.on('error', err => { this.app.coreLogger.error(`[egg-kafka] consumer have error ${err}`); }); _consumer.on('message', message => { fn && fn(message); }); }