当前位置: 首页 > 开发杂谈 >

卡夫卡的藏书阁【Book23】- Kafka - KafkaJS 监控状态事件

“I miss you deeply, unfathomably, senselessly, terribly.”
― Franz Kafka, Letters to Milena


监控状态事件 ( Instrumentation Events )


部分的操作状态会被 EventEmitter 监听,可以用以下这些方法去取得事件的状态 consumer.on(), producer.on()admin.on(),范例如下

const { HEARTBEAT } = consumer.events
const removeListener = consumer.on(HEARTBEAT, e => console.log(`heartbeat at ${e.timestamp}`))

这些监听者都是非同步的,消费者不会因为你启动了这些监听者而导致阻塞,监听者若是发生错误并不会影响到消费者

以下为一个监听事件

{
  id: <Number>,
  type: <String>,
  timestamp: <Number>,
  payload: <Object>
}

所有可以监听的事件清单


消费者
  • REQUEST
    • payload: {broker, clientId, correlationId, size, createdAt, sentAt, pendingDuration, duration, apiName, apiKey, apiVersion}
    • 发生在每次向代理发起网路请求时
  • CONNECT
    • payload: 无
    • 消费者连线到代理
  • GROUP_JOIN
    • payload: {groupId, memberId, leaderId, isLeader, memberAssignment, groupProtocol, duration}
    • 消费者加入消费者群组
  • FETCH_START
    • payload: {}
    • 开始从(单数/复数)代理取得讯息
  • FETCH
    • payload: {numberOfBatches, duration}
    • 结束从(单数/复数)代理取得讯息
  • START_BATCH_PROCESS
    • payload: {topic, partition, highWatermark, offsetLag, offsetLagLow, batchSize, firstOffset, lastOffset}
    • 开始使用批次取得讯息
  • END_BATCH_PROCESS
    • payload: {topic, partition, highWatermark, offsetLag, offsetLagLow, batchSize, firstOffset, lastOffset, duration}
    • payload: 无
    • 结束使用批次取得讯息,包含使用方法 eachMessage/eachBatch 时
  • COMMIT_OFFSETS
    • payload: {groupId, memberId, groupGenerationId, topics}
    • 提交偏移量
  • STOP
    • payload: 无
    • 消费者停止运作
  • DISCONNECT
    • payload: 无
    • 消费者中断连线
  • CRASH
    • payload: {error, groupId, restart}
    • 消费者错误,在消费者错误的情况下,消费者会想要重启自己,如果这个错误不是重启可以解决的,消费者会停止并中断连线,你的应用程序应该要监听这个事件去做出判断
  • HEARTBEAT
    • payload: {groupId, memberId, groupGenerationId}
    • 传送给协调器的心跳
  • REBALANCING
    • payload: {groupId, memberId}
    • 消费者群组开始重新分配
  • REQUEST_TIMEOUT
    • payload: {broker, clientId, correlationId, createdAt, sentAt, pendingDuration, apiName, apiKey, apiVersion}
    • 发送给代理的请求超时
  • REQUEST_QUEUE_SIZE
    • payload: {broker, clientId, queueSize}
    • 同时并存的请求数量是依靠参数 maxInflightRequests 控制,如果数量有变化,这个事件会被触发
  • RECEIVED_UNSUBSCRIBED_TOPICS
    • payload: {groupId, generationId, memberId, assignedTopics, topicsSubscribed, topicsNotSubscribed}
    • 如果你的消费者群组部分的消费者订阅的主题跟其余的消费者订阅的主题有差异的话,此事件会被触发

生产者


  • REQUEST
    • payload: {broker, clientId, correlationId, size, createdAt, sentAt, pendingDuration, duration, apiName, apiKey, apiVersion}
    • 发生在每次向代理发起网路请求时
  • CONNECT
    • payload: 无
    • 生产者连线到代理
  • DISCONNECT
    • payload: 无
    • 生产者中断连线
  • REQUEST_TIMEOUT
    • payload: {broker, clientId, correlationId, createdAt, sentAt, pendingDuration, apiName, apiKey, apiVersion}
    • 向代理发起的请求超时
  • REQUEST_QUEUE_SIZE
    • payload: {broker, clientId, queueSize}
    • 同时并存的请求数量是依靠参数 maxInflightRequests 控制,如果数量有变化,这个事件会被触发

管理者 ( admin )


  • REQUEST
    • payload: {broker, clientId, correlationId, size, createdAt, sentAt, pendingDuration, duration, apiName, apiKey, apiVersion}
    • 发生在每次向代理发起网路请求时
  • CONNECT
    • payload: 无
    • 管理者向代理发起连线
  • DISCONNECT
    • payload: 无
    • 管理者中断连线
  • REQUEST_TIMEOUT
    • payload: {broker, clientId, correlationId, createdAt, sentAt, pendingDuration, apiName, apiKey, apiVersion}
    • 向代理发起的请求超时
  • REQUEST_QUEUE_SIZE
    • payload: {broker, clientId, queueSize}
    • 同时并存的请求数量是依靠参数 maxInflightRequests 控制,如果数量有变化,这个事件会被触发

相关文章:

  • Day 14 - UML x Interface — Portal
  • eBay促销刊登类型有哪些?
  • rsync进阶备份操作
  • [Day-14] R语言 - GMM 高斯混和模型 实作-下 feat EM调参 ( GMM & EM in R.Studio )
  • [网页漏洞] 资料库漏洞 - 绵花糖花式吃法
  • DAY 19 Big Data 5Vs – Variety(速度) EMR (2)
  • Day20 - 资料集介绍&语音特徵
  • Day 04:金鱼记忆力太短暂,交给外挂记吧!autosuggestions 与 substring-search
  • ​lazada包邮活动简介
  • Day23:Greedy Algorithm - 贪婪演算法
  • 第27天:实作档案上传功能(4)
  • Day 08 借箸代筹(2):自动转型、运算子及其後
  • 当你没有意识到,下次就该意识到
  • Day 21 Compose UI Animation III
  • 俄罗斯买家最喜爱的书籍清单
  • 阿里云OSS对象存储控制客户端
  • 搬瓦工VPS注册购买教程 – 支付宝BandwagonHost购买方法教程
  • 建网站要多少钱?企业和个人建站费用分析和建站注意事项
  • 美国花旗银行虚拟信用卡申请教程【国内怎么申请美国信用卡】
  • SiteGround主机评测和推荐
  • 新的 Web.com 电子商务平台帮助中小企业接触数百万潜在买家
  • Vultr / Digitalocean开通教程和购买教程,Vultr / Digitalocean如何切换IP教程方法
  • Python入门教程:Python怎么写
  • Yandex Money虚拟卡申请:俄罗斯银行卡预付卡申请教程
  • 国外靠谱的VPS云服务器大全
  • 让 Rank Math SEO 输出关键词 keywords meta 字段信息
  • 搬瓦工VPS优惠码/ 促销码 、最新BandwagonHost官网促销
  • HD钱包是什么?比特币钱包原理
  • 挖矿是什么?怎么挖矿怎么挖比特币?虚拟币比特币挖矿原理
  • 免费VPS/腾讯云国际版/免费送300美金/有效期6个月