理论教育 Kafka未来研究方向及Scala开发实践

Kafka未来研究方向及Scala开发实践

时间:2023-11-24 理论教育 版权反馈
【摘要】:通过LinkedIn公布的相关文档表明,Kafka的可靠性、使用成本、安全性、可用性及其他的相关基础指标,成为Kafka未来发展目标。这种配置的变化不会对Kafka Broker的稳定性产生影响。这项特性运行良好,有望在下一版本的Kafka发布版中。其成果就是加密、认证和权限等功能将会添加到Kafka中。

Kafka未来研究方向及Scala开发实践

目前,越来越多的国内外公司在使用Kafka,如Yahoo!、Twitter、Netflix和Uber等,所涉及的功能从数据分析到流式处理应用不一而足,这也让大家特别关注Kafka的发展。通过LinkedIn公布的相关文档表明,Kafka的可靠性、使用成本、安全性、可用性及其他的相关基础指标,成为Kafka未来发展目标。下面对其做一些总结。

1.特征一:限额分配 一般情况下,同一个Kafka集群同时被不同的应用使用,如果其中的一个应用滥用Kaf⁃ka集群,这将对Kafka集群中其他应用产生性能和SLA(服务等级协议,Service-level Agreement)等影响。比如由于某种原因,想重新处理整个数据库中的所有数据,数据库中的所有记录会迅速推送到Kafka上,即使再高的Kafka的性能,也比较容易出现网络饱和及磁盘的冲击。

为了解决这个问题,LinkedIn的团队研发了一项特性,如果每秒钟的字节数超过了一个阈值,就会降低这些Producer和Consumer的速度。对于大多数应用来讲,这个默认的阈值都是可行的。但是有些用户会要求更高的带宽,于是他们引入了白名单机制。白名单中的用户能够使用更高数量的带宽。这种配置的变化不会对Kafka Broker的稳定性产生影响。这项特性运行良好,有望在下一版本的Kafka发布版中。

2.特征二:开发新的不依赖Zookeeper的Consumer 目前的Kafka Consumer客户端依赖于ZooKeeper,这种依赖会产生一些大家所熟知的问题,包括ZooKeeper的使用缺乏安全性,以及Consumer实例之间可能会出现的脑裂现象(Split Brain)。因此,LinkedIn与Confluent,以及其他的开源社区合作开发了一个新的Con⁃sumer。这个新的Consumer只依赖于Kafka Broker,不再依赖于ZooKeeper。这是一项很复杂的特性,因此需要很长的时间才能完全应用于生产环境中。

3.特征三:提升Kafka的可用性和可靠性

Kafka在可靠性方面的增强包括:跨集群同步方案、Mirror Maker无损的数据传输、副本的延迟监控、实现新的Producer、删除Topic等,下面对这些特征进行详细阐述。

Mirror Maker无损的数据传输:Mirror Maker是Kafka的一个组件,用来实现Kafka集群和Kafka Topic之间的数据转移。但是它在设计的时候存在一个缺陷,在传输时可能会丢失数据,尤其是在集群升级或机器重启的时候。为了保证所有的消息都能正常传输,Kafka在设计上做了修改,确保只有消息成功到达目标Topic时,才会认为已经完全消费掉了。(www.daowen.com)

副本的延迟监控:所有发布到Kafka上的消息都会复制副本,以提高持久性,这是0.8.∗版本推出的新功能。当副本无法“跟上”主版本(Master)时,就认为这个副本处于非健康的状态。在这里,“跟上”的标准指的是配置好的字节数延迟。这里的问题在于,如果发送内容很大的消息或消息数量不断增长的话,那么延迟可能会增加,系统就会认为副本是非健康的。为了解决这个问题,在Kafka的新版本中,将副本延迟的规则修改为基于时间的判断。

实现新的Producer:实现新的Producer,这个新的Producer允许将消息实现为管道(pipeline),来提升性能。目前该功能尚有部分缺陷,正在处于修复之中。

删除Topic:作为如此成熟的产品,Kafka在删除Topic的时候,会出现难以预料的后果或集群不稳定,这一点颇令人惊讶。该缺陷还在不断地测试和修改,到Kafka的下一个主版本时,就能安全地删除Topic了。

4.特征四:安全性 在Kafka中,安全性是参与者最多的特性之一,众多的公司互相协作来解决这一问题。其成果就是加密、认证和权限等功能将会添加到Kafka中。

除了上面的特征外,很多公司还基于自己的实际业务开发出很实用的特性和工具,比如LinkedIn研发的Simoorg故障引导框架,它针对一些低级别的机器故障,如磁盘写失败、关机、杀死进程等。而应用延迟监控Burrow工具,能够监控Consumer消费消息的延迟,从而监控应用的健康状况。更多的新特征请关注Apache Kafka官方网站及LinkedIn最新动态

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈