美文网首页
2020-04-25 消息系统kafka

2020-04-25 消息系统kafka

作者: 奇妙林林 | 来源:发表于2020-04-26 21:31 被阅读0次

    一.消息系统的分类: 

    1.Peer-to-Peer

     一般基于Pull或者Poling接受消息

    发送到队列中的消息被一个而且仅仅一个接受者所接收,即使有多个接受者在同一个队列中侦听同一消息

    即支持异步“即发即弃”的消息传送方式,也支持同步请求、应答传送方式

    2.发布/订阅

    发布到一个主题的消息,可被多个订阅者所接收

    发布/订阅即可基于Push消费数据,也可基于Pull或者Polling消费数据

    解耦能力比p2p模型更强

    二.在什么场景下使用消息系统:

    解耦:各位系统之间通过消息系统这个统一的接口交换数据,无须了解彼此的存在

    冗余:部分消息系统具有消息持久能力,可规避消息处理前丢失的风险

    扩展:消息系统是统一的数据接口,各系统可独立扩展

    峰值处理能力:消息系统可顶住峰值流量,业务系统可根据处理能力从消息系统中获取并处理对应量的请求。

    可恢复性:系统中部分组件失效并不会影响整个系统,它恢复后仍可以从消息系统中获取并处理数据

    异步通信:在不需要立即处理请求的场景下,可以将请求放入消息系统,合适的时候再处理。

    kafka设计目标:

    高吞吐量:在廉价的商用机器上单机可支持每秒100万条消息的读写

    消息持久化:所有消息均被持久化到磁盘,无消息丢失,支持消息重放

    完全分布式:Producer,Broker,Consumer均支持水平扩展

    同时满足适应在线流处理和离线批处理

    kafka架构图:

    kafka主要需要依赖zookper。

    分布式系统遵循cap理论:

    一致性:

    泛指在系统中一个节点被写操作,在其他节点做读操作时,要是可行的。

    可用性:

    泛指在系统中其他节点发生宕机时,只要有一个任意的节点存活,就要在有限的时间内返回数据。

    分区容忍性:

    部分节点宕机时或与其他节点无法通讯时,各分区间还可以保持分布式系统的功能。

    数据在Kafka上的分布简单描述图:

    相关文章

      网友评论

          本文标题:2020-04-25 消息系统kafka

          本文链接:https://www.haomeiwen.com/subject/aemlwhtx.html