网站建设到运营赚钱,自助建站的一般流程,有没有专门做老年婚介的网站,北京小程序制作实惠华网天下一#xff1a;Kafka简介 Apache Kafka是分布式发布-订阅消息系统#xff0c;在 kafka官网上对 kafka 的定义#xff1a;一个分布式发布-订阅消息传递系统。 它最初由LinkedIn公司开发#xff0c;Linkedin于2010年贡献给了Apache基金会并成为顶级开源项目。Kafka是一种快速、… 一Kafka简介 Apache Kafka是分布式发布-订阅消息系统在 kafka官网上对 kafka 的定义一个分布式发布-订阅消息传递系统。 它最初由LinkedIn公司开发Linkedin于2010年贡献给了Apache基金会并成为顶级开源项目。Kafka是一种快速、可扩展的、设计内在就是分布式的分区的和可复制的提交日志服务。 二Kafka基本架构 它的架构包括以下组件 1、话题Topic是特定类型的消息流。消息是字节的有效负载Payload话题是消息的分类名或种子Feed名 2、生产者Producer是能够发布消息到话题的任何对象 3、服务代理Broker已发布的消息保存在一组服务器中它们被称为代理Broker或Kafka集群 4、消费者Consumer可以订阅一个或多个话题并从Broker拉数据从而消费这些已发布的消息 上图中可以看出生产者将数据发送到Broker代理Broker代理有多个话题topic消费者从Broker获取数据。 三Kafka基本原理 我们将消息的发布publish称作 producer将消息的订阅subscribe表述为 consumer将中间的存储阵列称作 broker代理这样就可以大致描绘出这样一个场面 生产者将数据生产出来交给 broker 进行存储消费者需要消费数据了就从broker中去拿出数据来然后完成一系列对数据的处理操作。 kafka 官方给出的图 多个 broker 协同合作producer 和 consumer 部署在各个业务逻辑中被频繁的调用三者通过 zookeeper管理协调请求和转发。这样一个高性能的分布式消息发布订阅系统就完成了。 图上有个细节需要注意producer 到 broker 的过程是 push也就是有数据就推送到 broker而 consumer 到 broker 的过程是 pull是通过 consumer 主动去拉数据的而不是 broker 把数据主懂发送到 consumer 端的。 四Zookeeper在kafka的作用 1无论是kafka集群还是producer和consumer都依赖于zookeeper来保证系统可用性集群保存一些meta信息。 2Kafka使用zookeeper作为其分布式协调框架很好的将消息生产、消息存储、消息消费的过程结合在一起。 3同时借助zookeeperkafka能够生产者、消费者和broker在内的所以组件在无状态的情况下建立起生产者和消费者的订阅关系并实现生产者与消费者的负载均衡。 五Kafka的特性 1.高吞吐量、低延迟 kafka每秒可以处理几十万条消息它的延迟最低只有几毫秒每个topic可以分多个partition, consumer group 对partition进行consume操作。 2.可扩展性 kafka集群支持热扩展 3.持久性、可靠性 消息被持久化到本地磁盘并且支持数据备份防止数据丢失 4.容错性 允许集群中节点失败若副本数量为n,则允许n-1个节点失败 5.高并发 支持数千个客户端同时读写 Kafka的使用场景 1.日志收集 一个公司可以用Kafka可以收集各种服务的log通过kafka以统一接口服务的方式开放给各种consumer例如hadoop、Hbase、Solr等。 2.消息系统 解耦和生产者和消费者、缓存消息等。 3.用户活动跟踪 Kafka经常被用来记录web用户或者app用户的各种活动如浏览网页、搜索、点击等活动这些活动信息被各个服务器发布到kafka的topic中然后订阅者通过订阅这些topic来做实时的监控分析或者装载到hadoop、数据仓库中做离线分析和挖掘。 4.运营指标 Kafka也经常用来记录运营监控数据。包括收集各种分布式应用的数据生产各种操作的集中反馈比如报警和报告。 5.流式处理 比如spark streaming和storm 六ActiveMQ、Kafka、RabbitMQ消息系统的对比 你可能也喜欢: 消息中间件系列七如何从0到1设计一个消息队列中间件 消息中间件系列三主流的消息队列中间件有哪些 消息中间件系列一消息中间件介绍、典型使用场景、以及使用原则 消息中间件系列四消息队列MQ的特点、选型、及应用场景详解 消息中间件系列八Kafka、RocketMQ、RabbitMQ等的优劣势比较 消息中间件系列五MQ消息队列的12点核心原理总结