Kafka Streams 最佳实践:今天要尝试的 3 个

Kafka Streams 最好定义为专门为构建应用程序和微服务而设计的客户端库。考虑 Kafka 流的一种简洁方法是将其视为一种消息服务,其中数据(以消息的形式)在 Kafka 集群中从一个应用程序传输到另一个应用程序,从一个位置传输到另一个仓库。所有输入和输出数据都存放在 Apache Kafka 集群中。

为了形象化,这是 Kafka 环境中数据传输的样子:数据请求(消费者,用 Kafka 术语来说)被创建并发送到另一端。在这里,生产者响应请求生成内容,并通过 Kafka 架构将其直接传送回消费者,消费者随后消费信息。

Kafka Streams 是开发人员非常流行的工具,主要是因为它可以处理从消费者到生产者的数百万个请求,并将它们分布在数十台服务器上,以确保快速和连续传输,同时保持准确性。相反,该平台可以将大量数据从生产者转移到消费者,同时保证消费者实际上能够以他们需要的速度和他们需要的顺序消费数据。

但人们真正喜欢 Kafka Streams 的地方在于数据流没有停顿。大规模实时数据处理对于许多应用程序来说至关重要。 (没有它,Facebook 或 Uber 就会有大麻烦。)Kafka 不间断地传输数据,这与使用过时遗留应用程序的传统环境不同。 Kafka Streams 可在其集群内实现无阻碍的数据流,确保数据在来回循环中从一个应用程序传输到另一个应用程序,从消费者传输到生产者,中间没有任何停顿。其内置冗余可确保数据在传输过程中不会丢失,并完好无损地到达预定目的地。

所以:Kafka Streams 很棒。 Kafka Streams 为任何应用程序开发项目带来的优势直接证明了该平台越来越受欢迎和无处不在。但要真正从 Kafka Streams 中获得最大价值,您需要将一些最佳实践应用于底层 Kafka 平台:

如果你想优化 Kafka Streams 环境中的数据流,你需要跟踪很多事情。其中之一是速度,因为它涉及:

速度是一个关键组成部分。 Kafka Streams 可以有效地促进数据在集群内的移动。但是,如果消息移动的速度对您的应用程序来说不够快,则可能意味着麻烦。确保数据和消息以您需要的速度移动。

要完全优化 Kafka Streams,您的架构必须使用适量的资源构建,以便它获得并保持必要的数据流速度以实现其目标。简而言之,您需要解决以下问题:

必须构建消息路由以满足您的应用程序要求并且吞吐量要令您满意。这是关于为工作而建造的。你不会想要一辆半卡车来运送比萨饼。同样的原则适用于比特,而不仅仅是原子。

如果 Kafka 开始表现不佳,问题可能出在 Kafka 指标上。但这也可能是另一个问题,例如硬盘驱动器或某些性能不佳的内存。团队需要能够尽可能快速有效地进行故障排除。

借助正确的大数据分析工具,您可以集中查看堆栈中的所有硬件、应用程序和监控指标,包括来自 Kafka Streams 的指标。您得到的是一个单一的统一界面,其中指标和消息传递相互关联。这使您可以查看哪个应用程序遇到问题以及它如何影响 Kafka 及其功能。

在大多数大数据监控设置中,硬件监控不同于大数据应用程序监控。将 Kafka 监控添加到图片中,您将拥有一个大的脱节监控环境。但是使用像 Pepperdata 这样的统一监控套件,您可以查看和跟踪所有内容。您对大数据堆栈享有绝对且无与伦比的可见性和可观察性。

Kafka 是一个丰富而复杂的平台。还有很多东西要学。但是 Kafka Streams 的这三个最佳实践是让您获得成功的强大基础。

关注公众号“大模型全栈程序员”回复“小程序”获取1000个小程序打包源码。更多免费资源在http://www.gitweixin.com/?p=2627