13518219792

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

Apache Kafka在大型应用中的20项优秀实践

Apache Kafka在大型应用中的20项优秀实践

译文
作者:陈峻编译 2018-08-30 09:00:00

开源

Kafka 一位软件工程师将通过本文向您呈现Apache Kafka在大型应用中的20项最佳实践。Apache Kafka是一款流行的分布式数据流平台,它已经广泛地被诸如New Relic(数据智能平台)、Uber、Square(移动支付公司)等大型公司用来构建可扩展的、高吞吐量的、且高可靠的实时数据流系统。

【51CTO.com快译】Apache Kafka是一款流行的分布式数据流平台,它已经广泛地被诸如New Relic(数据智能平台)、Uber、Square(移动支付公司)等大型公司用来构建可扩展的、高吞吐量的、且高可靠的实时数据流系统。例如,在New Relic的生产环境中,Kafka群集每秒能够处理超过1500万条消息,而且其数据聚合率接近1 Tbps。

可见,Kafka大幅简化了对于数据流的处理,因此它也获得了众多应用开发人员和数据管理专家的青睐。然而,在大型系统中Kafka的应用会比较复杂。如果您的consumers无法跟上数据流的话,各种消息往往在未被查看之前就已经消失掉了。同时,它在自动化数据保留方面的限制,高流量的发布+订阅(publish-subscribe,pub/sub)模式等,可能都会影响到您系统的性能。可以毫不夸张地说,如果那些存放着数据流的系统无法按需扩容、或稳定性不可靠的话,估计您经常会寝食难安了。

为了减少上述复杂性,我在此分享New Relic公司为Kafka集群在应对高吞吐量方面的20项***实践。我将从如下四个方面进行展开:

  1. Partitions(分区)
  2. Consumers(消费者)
  3. Producers(生产者)
  4. Brokers(代理)

快速了解Kafka的概念与架构

Kafka是一种高效的分布式消息系统。在性能上,它具有内置的数据冗余度与弹性,也具有高吞吐能力和可扩展性。在功能是,它支持自动化的数据保存限制,能够以“流”的方式为应用提供数据转换,以及按照“键-值(key-value)”的建模关系“压缩”数据流。

要了解各种***实践,您需要首先熟悉如下关键术语:

time = messages / (consume rate per second - produce rate per second)

针对Partitions的***实践

有关topic partition的使用,您可以参阅《Kafka Topic Partition的各种有效策略》(https://blog.newrelic.com/engineering/effective-strategies-kafka-topic-partitioning/),以了解更多。

针对Consumers的***实践

针对Producers的***实践

针对Brokers的***实践

其他资源

希望上述各项建议能够有助于您更有效地去使用Kafka。如果您想提高自己在Kafka方面的专业知识,请进一步查阅Kafka配套文档中的“操作”部分,其中包含了有关操作群集等实用信息。此外,Confluent(https://www.confluent.io/)也会定期举行并发布各种在线讨论,以帮助您更好地了解Kafka。


网页题目:Apache Kafka在大型应用中的20项优秀实践
网页路径:http://cdbrznjsb.com/article/dpgeshd.html

其他资讯

让你的专属顾问为你服务