企业中离线业务场景实时业务场景都需要使用到kafka
Kafka具备数据的计算能力和存储能力,但是两个能力相对(MR/SPARK,HDFS)较弱.
Kafka角色的角色与hbase比较像,层级关系比较多。
消息:应用之间传送的数据,或点与点之间,点与多点之间传递的数据,传递的信息。
消息队列:是一种应用间的通信方式以队列的形式传递。
消息队列的应用场景
应用解耦合:多应用间通过消息队列对同一消息进行处理
异步处理:多应用对消息队列中同一消息进行处理
限流削峰:用于秒杀或抢购活动中,避免流量过大导致应用系统挂掉的情况;
消息驱动的系统:有前面消息传递到后,后面的才会触发动作。
在学习MR时做的游戏,后面的同学在没有接收到前面同学的信息之前是不允许操作的,这个就是消息系统。
消息系统的方式
1、点对点的方式
消息队列
发送者 (生产者):生产数据的程序/人/对象
接收者(消费者):处理队列内的数据的程序/人/对象
每个消息只有一个接收者,发送者和接收者间没有依赖性,接收者在成功接收消息之后需向队列应答成功。
2、发布-订阅的方式
角色主题(Topic):消息得分类,分组(王者荣耀,QQ飞车)
发布者(Publisher):生产者
订阅者(Subscriber):消费者
每个消息可以有多个订阅者,发布者和订阅者之间有时间上的依赖性,订阅者需要提前订阅该角色主题。
Kafka
:是一个分布式的(可以多节点),分区的,多副本的,多订阅者的消息发布订阅系统。
Kafka对消息分类使用topic
生产者:Producer
消费者:Consumer
服务器:Broker