MQTT---HiveMQ源码详解(十五)Persistence-Cluster/Single

功能

  • Cluster/Single Persistence主要是处理如下这些数据信息:

  • client session

  • client session subscriptions

  • outgoing message flow

  • queued message

  • retained message

  • topic tree

  • Cluster/Single分别是在用户配置不同的场景为用户加载不同的实现


类图

这里写图片描述

  • Cluster主要是协调Single与Cluster的数据存储与读取,使用VectorClock(后续章节再详解,不了解的可以先google下)解决集群数据备份、同步,通过异步ClusterRequest(后续章节会详细讲解)整合本地数据,组成提供服务所需的全部数据

  • Single主要是协调本地数据的读取与存储,此处就不需要考虑集群同步了,相对较简单,习惯web开发的朋友可以把这个当成domain service,把cluster当成application service即可。

  • Cluster和Single的实现类都同时实现Cluster/Single对应接口,根据用户配置的信息使用Provider来进行提供对应的实现类。


MQTT交流群:221405150

RocketMQ交流群:10648794

NewSQL交流群:153575008


推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 118,269评论 14 132
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 154,781评论 23 678
  • As a local variable: @property (nonatomic, copy, nullabil...
    陈胜华阅读 94评论 1 0
  • 《爱和自由》作者:孙瑞雪 001 学会放开手 儿童的智力发展,是从感觉训练开始的。 放手让孩子从小自己去探索,在视...
    青Iris阅读 61评论 3 4
  • 无论哪个季节,无论身在何方,萦绕游子心头和脑海的,总有那故乡的袅袅炊烟和潺潺溪水,总有那故乡的篱笆矮墙和柴垛灶炕,...
    420_c644阅读 1,172评论 5 45