第一章Kafka基础目录Contents消息队列的基本介绍kafka的基本介绍kafka的架构说明Kafka集群的搭建操作kafka的相关shell命令操作kafka的基准测试kafka的javaAPI的操作学习目标LearningObjectives1.了解消息队列的应用场景2.能够搭建kafka集群3.理解kafka的架构,以及kafka的重要概念4.能够完成kafka的shell命令的操作5.能够完成生产者、消费者java代码编写消息队列的基本介绍•什么是消息队列•消息队列的应用场景•消息队列的两种模式•常见的消息队列的产品01消息队列,英文名:MessageQueue,经常缩写为MQ。从字面上来理解,消息队列是一种用来存储消息的队列。来看一下下面的代码什么是消息队列上述代码,创建了一个队列,先往队列中添加了一个消息,然后又从队列中取出了一个消息。这说明了队列是可以用来存取消息的总结:消息队列指的就是将数据放置到一个队列中,从队列一端进入,然后从另一端流出的过程消息队列在实际应用中包括如下四个场景:1)应用耦合:多应用间通过消息队列对同一消息进行处理,避免调用接口失败导致整个过程失败;2)异步处理:多应用对消息队列中同一消息进行处理,应用间并发处理消息,相比串行处理,减少处理时间;3)限流削峰:广泛应用于秒杀或抢购活动中,避免流量过大导致应用系统挂掉的情况;4)消息驱动的系统:系统分为消息队列、消息生产者、消息消费者,生产者负责产生消息,消费者(可能有多个)负责对消息进行处理下面详细介绍上述四个场景以及消息队列如何在上述四个场景中使用消息队列的应用场景具体场景:用户为了使用某个应用,进行注册,系统需要发送注册邮件并验证短信。对这两个操作的处理方式有两种:串行及并行。1)串行方式:新注册信息生成后,先发送注册邮件,再发送验证短信注意:在这种方式下,需要最终发送验证短信后再返回给客户端消息队列的应用场景异步处理2)并行处理:新注册信息写入后,由发短信和发邮件并行处理注意:在这种方式下,发短信和发邮件需处理完成后再返回给客户端。假设以上三个子系统处理的时间均为50ms,且不考虑网络延迟,则总的处理时间:串行:50+50+50=150ms并行:50+50=100ms如果引入消息队列,在来看整体的执行效率:消息队列的应用场景异步处理在写入消息队列后立即返回成功给客户端,则总的响应时间依赖于写入消息队列的时间,而写入消息队列的时间本身是可以很快的,基本可以忽略不计,因此总的处理时间相比串行提高了2倍,相比并行提高了一倍;具...