在nodejs microservice中设置kafka侦听器

y53ybaqx  于 2021-06-08  发布在  Kafka
关注(0)|答案(0)|浏览(239)

我想知道如何继续设置Kafka听众。我应该运行两个独立的进程吗 node server.js 以及 node kafka-listener.js 每一个微服务?
我有两个的示例代码:
这是 server.js 运行节点服务器的

  1. require('dotenv').config() // Accesses the environment variables from .env file at the root of the folder or from the docker environment
  2. var port = process.env.PORT;
  3. const express = require("express"),
  4. createtables = require("./config/createtables.js"),
  5. vogels = require('vogels'),
  6. morgan = require('morgan'),
  7. logger = require('./config/logger'),
  8. app = express(),
  9. bodyParser = require("body-parser");
  10. createtables();
  11. app.use(bodyParser.urlencoded({extended:true}));
  12. app.use(bodyParser.json());
  13. //We are using a different port for testing because we might want to have the development server ON when we run tests
  14. if (process.env.NODE_ENV === "test") {
  15. port = 3002
  16. }
  17. app.use(morgan('dev', {
  18. skip: function (req, res) {
  19. return res.statusCode < 400
  20. }, stream: process.stderr
  21. }));
  22. app.use(morgan('dev', {
  23. skip: function (req, res) {
  24. return res.statusCode >= 400
  25. }, stream: process.stdout
  26. }));
  27. var routes = require('./api/routes/LRRoutes');
  28. routes(app);
  29. app.listen(port, function(){
  30. logger.info('Example app listening on port ' + port);
  31. });
  32. module.exports = app; // for testing

这是一个示例Kafka听众( kafka-listener.js ):

  1. var kafka = require('kafka-node'),
  2. Consumer = kafka.Consumer,
  3. client = new kafka.Client(),
  4. consumer = new Consumer(client,
  5. [{ topic: 'name', offset: 0}],
  6. {
  7. autoCommit: false
  8. }
  9. );
  10. consumer.on('message', function (message) {
  11. console.log(message);
  12. });
  13. consumer.on('error', function (err) {
  14. console.log('Error:',err);
  15. })
  16. consumer.on('offsetOutOfRange', function (err) {
  17. console.log('offsetOutOfRange:',err);
  18. })

侦听器是否应该作为单独的进程运行?或者还有其他的选择吗?
如果您有输入,那么一旦有消息发送给侦听器,路由是如何完成的。请再加上这个。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题