Kafka概览

一、消息中间件/消息系统

消息中间件/消息系统的功能是从一个系统将数据传递给另外一个系统。如果单纯只是传递数据的话,有很多种方式,比如:http、rpc、webService、定时任务等等。如果接受方处理不了传递过来的数量,则就需要引入消息系统。

二、消息系统分类

消息系统分类主要有:点对点、发布-订阅

  • 点对点:主要采用的队列方式,如A->B 当B消费队列中的数据,那么队列中被消费的数据会被删除。这种方式有个缺点:如果B一直不消费那么队列中就会存在很多的脏数据。

  • 发布-订阅:必须要有主题的概念。主题是指一个消息分类。发布者是将消息采用推的方式给系统。订阅者可以采用拉、推的方式从消息系统中拿数据。

三、Kafka说明

  • Kafka是用scala语音开发的
  • kafka-2.11-0.10.1.tar.gz :2.11 是指scala版本;0.10.1是指kafka的版本

四、kafka的架构

  • Zookeeper:管理borker集群、管理元数据

  • Broker服务:Kafka集群包含一个或多个服务器,服务器即broker。一般情况一台主机就一个broker服务,但是也可以一台主机多个broker服务,只要端口不一样存储路径不一样就可以了,但这种方式不推荐。

  • Topic:每条发布到Kafka集群的消息都有一个类别,类别即Topic

  • Message:消息,有定长的消息与变长的消息体组成

  • Partition:分区,Partition是物理上的概念,每个Topic包含一个或多个Partition

  • Producer:消息生产者,负责发布消息到Kafka broker

  • Consumer:消息消费者,向Kafka broker读取消息的客户端

  • Consumer Group :消费组,每个Consumer属于一个特定的Consumer Group。如果没有指定group name,则属于默认的group。在同一个消费组中的消费者,对同一条消息,只能消费一次。

Group Coordinator:每一个消费者组,会选择一个Broker作为协调者

  • offset:某一个消费组,当前对于某一个主题下的某一个分区的消费偏移量。

五、kafka的启动

1、启动zookeeper
2、启动kafka server
3、创建主题
4、创建生产者
5、创建消费者

六、Kafka消息系统应用

1、异步操作提升体验(用户注册后,发消息到Kafka通知送优惠券、送积分,立即响应用户……优惠券、积分系统再来处理具体业务)
2、流量消峰
3、程序解耦(比如一端是Java,另外一端是C,中间用Kafka解耦)
4、高吞吐量,业务日志、用户行为数据日志(大量数据)收集分发处理
5、大数据处理

你可能感兴趣的:(Kafka概览)