Kafka和RabbitMQ一样,是个消息服务,差不多就是个消息代理,接收和转发消息(接收-存储-转发),差不多是一个具有存储功能的对列。就是生产者(发布者)往里面发送消息,相当于往里面放数据,然后消费者(订阅者)往里面拿对应消息出来处理。

生产消费者模式(数据接入):就比如每刷卡进入一个乘客,闸机就会上传交易数据上来,数据上报接口拿到数据后就会放到对列中就立即返回,然后数据处理接口则从对列中取出数据进行处理。

订阅发布模式(事件分发):比如我们的设备离线时,需要在这件事上做其他处理,比如发送短信或邮件通知等等。发送短信或邮箱通知是事件处理,离线是事件。该事件处理绑定该事件,当服务模块发布事件时,消息中心会分发到处理器的对应处理者上。

下面来讲讲Kafka的生产消费者模式:

Kafka主要由生产者,消费者和Broker组成,其中生产者和消费者由我们编写而已。

Topic:是消息类别,用来区分、隔离不同的消息数据,比如交易类的数据、行程类的数据等等。就是所谓的往哪个topic写数据发送数据。然后从哪个topic中取出数据。

Consumer Group:消费者组,同一个topic会发到不同的group里去,然后同一个group中只有一个worker拿到这个数据(就是说一个消费者组里有好多消费者,一个消费者组里只有一个消费者拿到这个topic里的数据)。

下面给出生产者发送消息和消费者消费消息的部分:

生产者:

     Client:

消息总线kafka上传文件 kafka消息发送的几种模式_数据

          应用:

消息总线kafka上传文件 kafka消息发送的几种模式_kafka_02

生产者主要参数是要发送的topic和要发送的消息。

消费者:

   Client:

消息总线kafka上传文件 kafka消息发送的几种模式_数据_03

           应用:

消息总线kafka上传文件 kafka消息发送的几种模式_数据_04

消费者主要参数是消费者组和topics。其中上面的LoopInterface是自定义的,遍历topic,然后每个topic执行LoopInterface的run方法,进行消费者和消息的一些处理。如:

消息总线kafka上传文件 kafka消息发送的几种模式_消息服务Kafka_05

上面的实例是用于数据同步上的。将业务上的数据同步到后台管理上。

这就是kafka的简单概述,其实最简单的理解就是kafka帮你把要发送的数据先存起来,相当于存储功能吧,然后需要数据那一端直接从kafka那里获取数据。只是怎么获取,怎么存要了解而已。根据topic去区分数据类别,然后也是根据topic去取数据类别吧。具体的再仔细研究了。