4)扩展性分析
由于 SnifferServer 是偏计算类型的服务,并且从 Kafka 到 SnifferServer 到 Clickhouse,需要大量的数据传输,需要较好的 cpu 和网卡才可以充分发挥 SnifferServer 的性能;
① SnifferServer 内部扩展性
SnifferServer 的每个模块都可以通过设置线程数和缓存大小提高性能;
② SnifferServer 级别的扩展性
对于单个队列,受限于 Kafka 的 partition 数量,最多有于 partition 数量相等的 SnifferServer 运行,超过 partition 数量时节点不再参与队列消费;
③ Kafka 的 Partition
单个 Kafka 集群的 partition 理论上没有限制,受限于服务器资源、Zookeeper 和运维的方便性等,需要设置上限;
④ 整个服务
可以规划针对不同的 IDC,向不同的 Kafka 写入日志数据,这样日志数据将被分区;
5)可用性分析
SnifferServer 之间通过 consumerGroup 消费 Kafka 队列中的数据 。对于单个队列通过冗余 SnifferServer,即使单个 SnifferServer 挂掉,不会影响整体服务 。
5、SnifferAnalyze
1)说明
按照天级别定时从 Clickhouse 中获取聚合数据,分析、汇总,存储分析之后的结果并提供接口和页面展示结果 。
2)设计
分析汇总之后的结果大概分为两类数据,第一类是初步聚合的粗粒度数据,数据量比较大 。数据一旦产生不会修改,只有大范围的删除,一般是溯源、分析、下钻查询使用,使用的频率不是很高;第二类是汇总的报告数据 。部分数据会存在大范围的修改,较多的并发查询 。整体数据量相对于第一类数据量较少,一般是展示结果、接口查询较多;
Clickhouse 在大规模存储上的单表查询和写入效率较高,压缩效率较高但不擅长做并发查询和频繁的修改数据,官网建议每秒最多查询 100 次 。相比较而言,MySQL 适合存储小体量数据,以及数据的增删改查,并擅长高并发查询 。
综合考虑节省存储成本以及各个存储的特性,第一类数据适合存储到 Clickhouse 中,第二类数据适合存储到 MySQL 中 。针对原始日志数据设置合适的过期时间,超过指定时间的数据都予以删除,而汇总数据相较于原始数据量已经大幅度减少,可以保留较长的过期时间 。
依托 Clickhouse 的分析能力,对于第一类数据直接将 Clickhouse 中的数据分析出来直接写入到 Clickhouse 中,避免中间转储 。第二类数据需要从 Clickhouse 中获取出来,分析、计算、汇总之后再写入到 MySQL 中 。
每个任务执行前都需要获取锁,只有成功获取到锁的任务才可以执行该任务 。SnifferAnalyze 多个节点在执行任务前会通过抢占的方式获取任务锁,仅当成功获取了锁的节点会执行任务,保证了单个节点挂掉不影响分析任务的执行 。但是如果任务执行过成中被终端,目前需要人为介入处理 。
3)扩展性分析
目前分析类型的任务节点扩展能力有限 。
4)可用性分析
由于分析类型的任务扩展能力有限,故只能在节点之间保证高可用 。并且一旦任务执行中断需要人为介入处理 。
6、Clickhouse
1)说明
Clickhouse 架构图
文章插图
例如图示 Clickhouse 有两个分片(A 和 B),每个分片有两个副本([A1,A2],[B1,B2]),集群与三节点的 Zookeeper 通讯 。
① 同步
Clickhouse 集群 Replication 引擎的副本是通过 Zookeeper 实现的,Zookeeper 存储数据块的元数据信息 。分片 A 有 A1 和 A2 两个节点,A1 和 A2 共同监听 Zookeeper 执行目录下节点的数据 。当 A1 节点写入数据块之后,A1 在 Zookeeper 上变更元数据信息 。A2 收到 Zookeeper 的元数据变更之后,向 A1 发起拉取指定数据块的通知,A1 将指定的数据块发送给 A2,完成数据传输 。同理 A2 也可以写入数据,通知 Zookeeper 变更数据,并向 A1 传输数据 。数据同步是异步的,传输数据块时会去重 。更多副本相关的信息请见官网说明 。
② 分片
分片依靠 Distribute 引擎实现 。Distribute 引擎不存储任何数据,Clickhouse 有 Distribute 引擎支持将数据按照指定的规则(random,hash,range,自定义)将数据分发到各个分片 。
推荐阅读
- 6 张图详解 DNS:网络世界的导航
- DNS 如果中美的网络断开,我们要提前准备什么?域名系统问题
- |男子烫发头上被分12个区收费每个区域398元 网友:直接按根算多好?
- |《请叫我总监》收视上升,林更新化身陆怼怼,网友齐齐喊话快破产
- 崂山红茶的冲泡方法,崂山红茶作用
- 电影|老戏骨刘子枫逝世 曾获金鸡奖影帝:网友悼念 一路走好
- 新茶网红茶评鉴,红茶和绿茶都用什么壶泡
- 红茶泡水喝去火吗,枸杞能与红茶起泡吗
- 丝网印刷机的原理是什么
- 黑客|钓个鱼,我盘哭了黑坑老板?5本钓鱼主题网文推荐!