用kafka实现消息推送

 一个人知道的Topic是单点推送,大家都知道Topic是广播。

kafka消息消费机制:

1.广播消费:通过定义topic前缀来标识属于广播的消息(例如:topicname:gonggao1535680698557,gonggao1535680722624,gonggao1535681677381等topic),消费这些前缀为公告的消息时,不同的角色,不同的userid代表对应的groupid,实现广播消费。

2.单个消费:通过定义topic前缀为person的topic(例如:person1time1536031022097  persion和time中间的数字为当前用户:1  ,person2time165156165 persion和time中间的数字为当前用户:2 ),对应的在消费该消息时groupid固定,kafka就不能广播消费,只能对应某个用户消费了。

注意:在消费过程中有一个配置:enable.auto.commit(当为true则消费该消息,下次再消费就不能消费了,当为false时消费该消息,下次还能消费)。

Kafka只支持消息持久化,消费端为拉模型,消费状态和订阅关系由客户端端负责维护,消息消费完后不会立即删除,会保留历史消息。因此支持多订阅时,消息只会存储一份就可以了。

用代码说话:

3.消费者配置连接kafka:

4.消费者消费消息:

 

——————————————————

推荐阅读:

大数据Spark与Storm技术选型

华为Java编程军规,每季度代码验收标准

SpringBoot外置tomcat

Kafka 入门教程

你可以不懂但一定要知道的代码审查 Code Review

猜你喜欢

转载自www.cnblogs.com/Javame/p/9644398.html