程序笔记   发布时间:2022-07-14  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了kafka介绍,优势,应用场景大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

1.1 介绍

​ Kafka是最初由Linkedin公司开发,是一个分布式、分区的、多副本的、多生产者、多订阅者,基

于zookeeper协调的分布式日志系统(也可以当做MQ系统),常见可以用于web/nginx日志、访问日

志,消息服务等等,Linkedin于2010年贡献给了Apache基金会并成为顶级开源项目。

主要应用场景是:日志收集系统和消息系统。

Kafka主要设计目标如下:

  • 以时间复杂度为O(1)的方式提供消息持久化能力,即使对TB级以上数据也能保证常数时间的

    访问性能。

  • 高吞吐率。即使在非常廉价的商用机器上也能做到单机支持每秒100K条消息的传输。

  • 支持Kafka Server间的消息分区,及分布式消费,同时保证每个partition内的消息顺序传输。

  • 同时支持离线数据处理和实时数据处理。

  • 支持在线水平扩展

消息传递模式有两种:点对点传递模式、发布订阅模式

大部分的消息系统选用发布-订阅模式。Kafka就是一种发布订阅模式

kafka介绍,优势,应用场景

对于消息中间件,消息分推拉两种模式。Kafka只有消息的拉取,没有推送,可以通过轮询实现消

息的推送。

  • Kafka在一个或多个可以跨越多个数据中心的服务器上作为集群运行。
  • Kafka集群中按照主题分类管理,一个主题可以有多个分区,一个分区可以有多个副本分区。
  • 每个记录由一个键,一个值和一个时间戳组成

Kafka具有四个核心API:

  • Producer API:允许应用程序将记录流发布到一个或多个Kafka主题

  • Consumer API:允许应用程序订阅一个或多个主题并处理为其生成的记录流。

  • Streams API:允许应用程序充当流处理器,使用一个或多个主题的输入流,并生成一个或多个输出主题的输出流,从而有效地将输入流转换为输出流

  • Connector API:允许构建和运行将Kafka主题连接到现有应用程序或数据系统的可重用生产者或使用者。例如,关系数据库的连接器可能会捕获对表的所有更改

1.2 Kafka优势

  • 高吞吐量:单机每秒处理几十上百万的消息量。即使存储了许多TB的消息,它也保持稳定的性能。

  • 高性能:单节点支持上千个客户端,并保证零停机和零数据丢失。

  • 持久化数据存储:将消息持久化到磁盘。通过将数据持久化到硬盘以及Replication防止数据丢失

    • 零拷贝
    • 顺序读,顺序写
    • 利用Linux的页缓存
  • 分布式系统,易于向外扩展。所有的Producer、Broker和Consumer都会有多个,均为分布式的。无需停机即可扩展机器。多个Producer、Consumer可能是不同的应用

  • 可靠性 - Kafka是分布式,分区,复制和容错的。

  • 客户端状态维护:消息被处理的状态是在Consumer端维护,而不是由server端维护。当失败时能自动平衡。

  • 支持online和offline的场景

  • 支持多种客户端语言。Kafka支持Java、.NET、php、Python等多种语言

1.3 kafka应用场景

日志收集:一个公司可以用Kafka可以收集各种服务的Log,通过Kafka以统一接口服务的方式开放给各种Consumer

消息系统:解耦生产者和消费者、缓存消息等;

用户活动跟踪:Kafka经常被用来记录Web用户或者App用户的各种活动,如浏览网页、搜索、点击等活动,这些活动信息被各个服务器发布到Kafka的Topic中,然后消费者通过订阅这些Topic来做实时的监控分析,亦可保存到数据库

运营指标:Kafka也经常用来记录运营监控数据。包括收集各种分布式应用的数据,生产各种操作的集中反馈,比如报警和报告;

流式处理:比如Spark Streaming和Storm

大佬总结

以上是大佬教程为你收集整理的kafka介绍,优势,应用场景全部内容,希望文章能够帮你解决kafka介绍,优势,应用场景所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。