Broker节点

在druid集群环境中 broker节点的作用是查询。它知道metadata 通过zookeeper发送到了集群中的哪个节点,从而能够准确的查询到。broker也把各个节点的结果汇聚到一个节点中。On start up, Realtime nodes announce themselves and the segments they are serving in Zookeeper.

启动类

io.druid.cli.Main server broke

查询转发

大多数durid查询中包含一个时间间隔对象数据.同样在druid 的segments  中也有时间间隔对象。同一天或者同一星期的数据可能在集群中的不同节点中。因此,查询可能会涉及到多个节点。

要确定把查询转发到哪个节点中,broke需要从zookeeper中获取一个视图。Zookeeper 维护着 Historical 和Realtime节点中segments  的保存信息。Zookeeper 为每个数据源和broke建立一个时间关系。当查询收到特定的数据源和间隔,broke执行查找到与查询的查询数据源相关联的时间间隔和检索查询的节点包 含数据。代理节点然后转发查询选中的节点。

缓存

broker 采用LRU缓存失效的缓存机制,他把每次的查询结果存储在缓存中,可以只本地的缓存,也可以是mamcache等一些缓存集群。每次收到请求,现在缓存中 查询。如果没有在到historical 中查询,并且把查询结果保存到缓存中用于下次查询。real-time节点不的数据不缓存,因为real-time的数据是实时变化的。

posted @ 2015-04-08 17:26  三单联咖啡色  阅读(348)  评论(0编辑  收藏  举报