Kafka基础

Kafka定义

Kafka是一个分布式的基于发布/订阅模式的消息队列MQ(Message Queue)Kafka多用于对接Spark

- Message Queue
	- 消息队列
	- 传统应用场景
			1. 同步处理
				直接调用接口对业务进行调用 (流处理)
				优点:速度快 
				缺点:不安全
			2. 异步处理
				将请求发送到MQ中等待 在没有得到反馈之前 先对请求做出响应 (批处理)
				优点:
						1. 解耦合
							可以将程序之间分隔,易于去拓展 、优化、更改两边的处理过程 。
						2.可恢复性 	
							当系统的部分组件发生故障时,消息仍然在MQ中 在系统恢复后可以将消息恢复过来
						3. 缓冲
							可以控制和优化生产消费数据的速度,解决,生产消息和消费消息处理速度不一致的情况	生产>消费
						4. 削峰
							在面临访问量剧增的情况下,在生产数据达到一定数值时,将数据先存储到MQ中进行暂存
				缺点:处理速度慢
消息队列的两种模式
  1. 点对点模式(一对一,消费者主动拉取数据,消息收到后消息清除)
  • 生产者将数据生产数据发送到Queue(队列)中----->>>>由消费者从Queue中将数据拉取出来消费掉。
  • Queue中的数据在消费后,不再存储。Queue支持多个消费者,但是对于一个消息而言,只有一个消费者进行分析

如何解决kafka消息队列的消息积压问题 kafka消息队列的缺点_kafka

  1. 发布/订阅模式(一对多,消费者消费数据后数据不会清除)
    两种模式
    1. 发布模式是由生产者主动进行消息发布
    2. 订阅模式是由消费者主动进行消息拉取 (缺点:当MQ中没有消息时,该模式还会进行不停的拉取 浪费资源)
优点:
 	- Queue会对消息队列中的数据进行保留 具体保留时间 根据自己的需求在配置文件中进行配置
 	- 是生产者主动推出的消息
 	- 生产者将消息发布到topic中,同时多个消费者消费这条信息,这个发送到topic中的消息会被所有的订阅者消费
 	
 缺点:
 	- 会将消费者不需要的消息推送过来
 	- 推送消息的时候  速度是由Queue来决定 , 不会估计下流消费者的消费速度,存在资源浪费
 	-

如何解决kafka消息队列的消息积压问题 kafka消息队列的缺点_1024程序员节_02