kafka 原理与应用

540 55
  • 全部
最热 | 最新
  • 1)如果是Kafka消费能力不足,则可以考虑增加Topic的分区数,并且同时提升消费组的消费者数量,消费者数=分区数。(两者缺一不可) 2)如果是下游的数据处理不及时:提高每批次拉取的数量。批次拉取数据过少(拉取数据/处理时间<生产速度),使处理的数据小于生产的数据,也会造成数据积压。
  • 加消费者 消费改异步
  • 1. 在 Kafka Broker 丢失数据 Broker 会将数据写入系统缓存,然后返回确认信息给 Producer,如果是单点的 Kafka,数据丢失无法避免,原因是只能调节数据刷到硬盘的时间间隔和缓存大小,到调整时间间隔越小、缓存(PageCache)越小时性能会严重下降 结合 Producer 和多副本可以基本避免数据丢失: Producer 发送请求,主分片 Broker 收到数据,写入到缓存,然后刷到磁盘上,会同步数据到从分片 从分片收到请求,将数据写入到系统缓存,然后恢复 ack 主分片收到从分片的 Ack,然后回复 Ack 给 Producer 这个过程中,如果主分片在第一个步骤断电,数据在内存中,Producer 收不到 ACK 会重试,知道达到重试阈值。 这个过程需要权衡配置 acks 的要求,如果为 0,则表示 Producer 直接写入不等待 ACK,数据很可能丢失;如果为 1,则表示 Producer 写入数据到系统 Cache,数据在 Producer 可能丢失,如果为-1,表示要等待所有从分片确认信息,数据则不回丢失 性能考虑和可靠性考虑需要权衡 对于可靠性要求很高的场景,应该要求最小副本数(min.insync.replicas),如果没有达到最小副本数,可能存在 ack=1 的场景,那么数据就可能丢失。 2. Producer 数据丢失 Producer 为了提高发送数据的效率,可以将数据缓存在 Buffer 中,一次性发送大量数据,那么如果 Buffer 中数据没有及时处理 Producer 就因为某些原因退出(OOM、被 Kill 等)就可能导致数据丢失。或者生产数据过快,导致 Buffer 装满了还没有发送,也可能导致丢失。 避免或者缓解方式: Producer 同步数据发送,或者采用阻塞的带一定容量上限的线程池 扩大 Buffer 大小,防止 Buffer 装满,但是如果程序被异常退出,则数据会丢失 生产的数据在 Producer 本地落盘,然后再使用另一个程序来发送到 Kafka,例如 Filebeat、Logstash 等 3. Consumer 端数据丢失 Consumer 会从 Kafka 中接收并处理消息,然后记录 offset,提交 offset 有两种方式,分为手动提交和自动提交,如果是自动提交,就可能存在数据丢失的情况,就是在数据还没有消费成功就已经提交了 offset,如果这时 Consumer 被退出,数据就丢失了。 避免方法: 采用手动提交方式可以避免出现上述问题,但会造成数据被重复消费
  • 积压说明生产与消费有吞吐量差,生产数据量由业务决定,基本上动不了,消费端要分辨是 kafka 的瓶颈还是消费者业务端的瓶颈并做针对性扩容,一般来说 kafka 瓶颈总是伴随着 100%io 或是打满的网络带宽 如果只是一段时间的业务高峰造成了堆积,并且对于业务来说,实时重要性远大于数据完整,可以直接调整 offet 来迅速追上数据
  • 生活就是晨起晨落日子就是早出晚归做个快乐的大人对生活比个耶🍉🍇
  • ‌市场和行业竞争‌:为了吸引优秀人才,公司需要提供有竞争力的薪酬。随着市场行情的变化,新员工的薪酬必须接轨市场,而老员工的薪酬则相对稳定,难以调整。 ‌人工成本‌:招聘新员工的成本相对较低,尤其是当公司需要大规模招聘时,可以更好地控制成本。相比之下,给老员工普遍涨薪会增加较大的成本负担。 ‌调节团队积极性‌:新员工的加入可以激发老员工的积极性,形成“鲶鱼效应”,促进团队的整体活力。 ‌老员工的问题‌:老员工可能存在抱怨、居功自傲或能力不足的问题,这些问题会影响团队氛围和工作效率,因此公司更倾向于招聘新人。 ‌内部制度‌:公司的薪酬体系通常有固定的薪资带宽,老员工涨薪会触及薪资上限,而招聘新人则没有这个问题。 ‌个人因素‌:老员工可能因为习惯和惯性,对涨薪的期望值较低,而新员工则对薪酬有更高的期望,这也会影响公司的决策。 ‌补充原因‌: ‌老板的节流策略‌:很多老板通过控制人工成本来增加利润,因此不愿意给老员工涨薪。 ‌避免连锁反应‌:给部分老员工涨薪可能会引发其他员工的不满,导致连锁反应,因此公司更倾向于避免这种情况。 ‌不可替代性弱‌:老员工可能因为长期在同一个岗位工作,缺乏市场竞争力,公司更愿意招聘更有潜力的新人。
  • 两天一夜的毕业旅行,哪位家长还没回复我信息,麻烦回复一下是否去哈!
  • 装修了,不按我说的装,瞎给我弄弄
  • 他们在家玩的很开心希望别来打扰你
  • 哈哈电话不接微信不回我也无语