基于Kafka的订阅推送

Posted Nathon的学习笔记

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于Kafka的订阅推送相关的知识,希望对你有一定的参考价值。

Kafka作为一个高吞吐量的分布式发布订阅消息系统,可以很高的处理网站中的动作流式数据.个人觉得也类似于一种消息的中间件,可以广泛用于实时消息的处理.

       来看看它的构造,kafka是根据Topic进行分类,发送消息方为producer,接受方为consumer,所以它也类似于一种生产者-消费者模型.每个kafka集群可以有多个实例组成,每一个实例也就是所谓的broker。

     谈到集群,就不得不说zookeeper了,可以说kafka是依赖于zookeeper的,它是通过zookeeper来实现集群的高可用性和元数据的管理。

 可以看下,这里集群有3个节点,我在其中一个节点上创建了一个topic,每个topic有2个分区,topic的副本数量为2(用于集群的高可用和容错机制)。集群上的描述如下:

(2号节点作为生产者)

基于Kafka的订阅推送

(3号节点作为消费者)

基于Kafka的订阅推送

在正常的生产中,少不了这种场景,就是某个节点挂掉了,那么网络间的通信或者数据传递怎么办?来看看,kafka利用zookeeper来作为容错的机制。

例如,这里2号节点宕掉了(这里直接把该节点的kafka应用进程2876给kill掉);

再来看下,集群中的描述,存活的节点只有1号和3号broker,跟之前的个数不一样.

换言之,当集群中某个broker挂了,zookeeper会选择新的broker提供服务,这里partition 0的2号broker挂掉了,kafka有优先副本的机制,选取了3号节点作为该分区的leader进行服务,达到了leader分配的负载均衡作用。


以上是关于基于Kafka的订阅推送的主要内容,如果未能解决你的问题,请参考以下文章

使用 kafka 作为消息代理为桌面/移动/Web 应用程序创建实时推送通知系统

扒房源线索消息推送设计

IBM Worklight - 仅向订阅用户推送通知

IBM Workilght 6.0 - 注销后无法订阅推送通知

技术分享| 基于RTM 实现的呼叫邀请如何添加推送功能?

如何设计一个在长链接基础上的安全可扩展的订阅/推送服务