文档详情

大数据平台与编程第9章 分布式消息队列Kafka.pptx

发布:2024-09-09约1.83万字共65页下载文档
文本预览下载声明

第9章分布式消息队列Kafka

?Kafka概述目录?Kafka工作流程?本章小结?本章习题?KafkaAPI

Kafka概述初识KafkaApacheKafka是最初由Linkedin公司开发,是一个分布式、分区的、多副本的、多订阅者,基于zookeeper协调的分布式日志系统(也可以当做MQ系统),常见可以用于web/nginx日志、访问日志,消息服务等。ApacheKafka是一个分布式发布-订阅消息系统和一个强大的队列,可以处理大量的数据,并使您能够将消息从一个端点传递到另一个端点。?Kafka适合离线和在线消息消费。?Kafka消息保留在磁盘上,并在群集内复制以防止数据丢失。?Kafka构建在ZooKeeper同步服务之上。?它与ApacheStorm和Spark非常好地集成,用于实时流式数据分析。

消息队列消息队列的应用场景场景说明:用户注册后,需要发送注册短信和页面响应注册成功。对这两个操作的处理方式有同步处理和异步处理。2.注册信息写入数据库2.注册信息写入数据库4.发送短信4.发送短信1.填写注册信息3.调用发送短信接口5.页面响应注册成功1.填写注册信息3.调用发送短信接口5.页面响应注册成功同步处理异步处理同步处理:1.填写注册信息;2.注册信息写入数据库;3.调用发送短信接口;4.发送短信;5.页面响应注册成功。异步处理:1.填写注册信息;2.注册信息写入数据库(同时用户已经获取到了页面响应注册成功的反馈);3.发送短信请求道MQ,MQ自己去执行发送短信。

消息队列使用消息队列的好处:解耦允许独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束。2.可恢复性系统的一部分组件失效时,不会影响到整个系统。消息队列降低了进程间的耦合度,所以即使一个处理消息的进程挂掉,加入队列中的消息仍然可以在系统恢复后被处理。3.缓冲有助于控制和优化数据流经过系统的速度,解决生产消息和消费消息的处理速度不一致的情况。

消息队列4.灵活性峰值处理能力在访问量剧增的情况下,应用仍然需要继续发挥作用,但是这样的突发流量并不常见。如果为以能处理这类峰值访问为标准来投入资源随时待命无疑是巨大的浪费。使用消息队列能够使关键组件顶住突发的访问压力,而不会因为突发的超负荷的请求而完全崩溃。5.异步通信很多时候,用户不想也不需要立即处理消息。消息队列提供了异步处理机制,允许用户把一个消息放入队列,但并不立即处理它。想向队列中放入多少消息就放多少,然后在需要的时候再去处理它们。

消息队列消息队列的两种模式1.点对点模式(一对一,消费者拉取数据,消息收到后将消息进行清除)如图所示,消息生产者生产消息发送到Queue中,然后消息消费者从Queue中取出并且消费消息。消息被消费以后,queue中不再有存储,所以消息消费者不可能消费到已经被消费的消息。Queue支持存在多个消费者,但是对一个消息而言,只会有一个消费者可以消费。SenderReceiverMessagequeue

消息队列消息队列的两种模式2.发布/订阅模式(一对多,消费者消费数据后不会清除消息)如图所示,消息生产者(发布)将消息发布到topic中,同时有多个消息消费者(订阅)消费该消息。和点对点方式不同,发布到topic的消息会被所有订阅者消费。SenderReceiverMessagequeueReceiverReceiver

Kafka基础与集群架构Producer1Producer1consumer1consumer3consumer2TopicsPartition1Partition1Partition1Old······New0101230WriterdataReaddataServer1LeaderKafkaBrokersReplica1P1Server1Replica1P1Server1Replica1P1LeaderLeaderConsumergroupKafka基础主题配置为三个分区。分区1具有两个偏移因子0和1.分区2具有四个偏移因子0,1.2和3.分区3具有一个偏移因子0.副本的id与承载它的服务器的id相同。假设,如果主题的复制因子设置为3,那么Kafka将创建每个分区的3个相同的副本,并将它们放在集群中以使其可用于其所有操作。为了平衡集群中的负载,每个代理都存储一个或多个这些分区。多个生产者和消费者可以同时发布和检索消息。

Kafka基础与集群架构在深入学习Kafka之前,需要先了解topics,brokers,producers和consumers等几个主要术语。Topics(主题):属于特定类别的消息流称为主题。数据存储在主题中。主题被拆分成分区。对于每个主题,Kafka

显示全部
相似文档