消息队列Kafka|青训营笔记

44 阅读2分钟
  • Kafka的使用场景一般是用在这种离线的消息处理当中。
  • Magic 其实是程序在运行当中的话,去对它做一些程序状态的采集,比如说一些QPS,然后服务的一些查询写入的一些耗时,比如说程序可以通过一条曲线的话来去评判我当前程序是否处于一个健康的状态。
  • 比如在我们使用 APP 的时候,一些用户行为,比如像搜索、点赞、评论、收藏,它都有自己的一些用户行为数据也会放到消息队列里边来。
  • 生产上,需要去创建这样一个 Kafka 集群,需要去在集群当中去创建一个topic,然后并且设置好它的一个分区数量。去引入这个 Kafka 的SDK,分别去实现上游的生产逻辑,也就是你把你要把你的 hello world 给发送到我们的 topic 当中,也就是 Kafka 当中。然后第四一步的话,也就是通过消费者把你刚刚写入的那条 hello world,通过 pull 的方法把它给拉取出来进行一个业务的处理。
  • Kafka的基本概念,一个 topic 其实就是一个 Kafka 当中的一个逻辑队列,可以理解成每一个不同的业务场景,它就是一个不同的topic,对于这个业务来说的话,所有的数据都存储在这个 topic 当中。然后第二个是cluster, cluster 其实是Kafka的物理集群,每一个集群当中都可以去新建不同的一个topic,来去处理不同的一个业务数据。然后是producer,它其实就是生产者的意思,负责将一个消息发送到对应的一个 topic 当中。
  • 由 consumer 进行一个消费处理,还有一个跟 product 不同的概念,就是对于 consumer 来说,它有一个 consumer group 的概念,也就是消费者组。对于不同的消费者组来讲的话,它其实是消费的。这种顺序性的话,它是一个独立的。也就是对于 group1 来讲的话,可以去从某一个时间点去消费。对于一个新的 group 来讲的话,它其实可以互不干涉的,又从另外一个位置开始去进行一个消费。
  • 对于集群的上层来说的话,其实还有一个 zookeeper 组件,在集群当中其实去跟 Controller 去配合,然后负责存储一些集群的元数据信息,包括分区的一些分配信息等等。