上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 26 下一页
摘要: Prometheus告警规则分发服务,根据一致性哈希将规则分发到多个节点,使用多个goroutine处理应用告警,在服务增加时可以增加goroutine,服务减少时降低goroutine数目。 规则下发服务 规则下发服务和规则处理服务是一对客户端和服务端的实现,前者可以对接多个集群,后者为集群中的某 阅读全文
posted @ 2021-11-01 21:56 charlieroro 阅读(393) 评论(0) 推荐(0)
摘要: golang []byte和string的高性能转换 在fasthttp的最佳实践中有这么一句话: Avoid conversion between []byte and string, since this may result in memory allocation+copy. Fasthtt 阅读全文
posted @ 2021-10-15 14:29 charlieroro 阅读(1894) 评论(0) 推荐(1)
摘要: 最近项目组在做Prometheus指标采集和告警,其中用到了Prometheus的exemplar特性,由于该特性比较新,当前支持该特性的存储有比较少。因此需要自行实现exemplar功能。 我在github上创建了一个代码库,内容如下: 功能支持列表 支持从kafka消费Prometheus指标数 阅读全文
posted @ 2021-09-30 15:22 charlieroro 阅读(813) 评论(0) 推荐(1)
摘要: 从头编写一个时序数据库 本文介绍如何去设计一个时序数据库,可以学习一下文章中提及的一些技术点。需要注意的是,本文编写的时间为2017年4月,因此文中需要改善的也是老版本的Prometheus存储存在的问题。 译自:Writing a Time Series Database from Scratch 阅读全文
posted @ 2021-09-18 09:56 charlieroro 阅读(720) 评论(0) 推荐(1)
摘要: 解析PromQL 目前对Prometheus 的promQL 的解析文章比较少,且Prometheus官方也没有提供一个公共的库来对其进行解析。下面实现对promQL的解析,并实现注入label功能。 表达式类型 AggregateExpr 对应聚合操作,如sum without (instance 阅读全文
posted @ 2021-09-14 09:52 charlieroro 阅读(1954) 评论(0) 推荐(0)
摘要: 存储和节点的创建 raftexample中的存储其实有两种,一个是通过raft.NewMemoryStorage()进行创建的raft.raftStorage,关联到单个raft节点,另一个是通过newKVStore创建的kv存储,用于服务来自外部的访问。 节点启动时raft.raftStorage 阅读全文
posted @ 2021-08-30 09:18 charlieroro 阅读(1000) 评论(0) 推荐(0)
摘要: 本文仅介绍wal的基本处理,如create、open、close、read等操作,从wal目录中加载snapshot,wal文件的创建,以及读取wal目录中的所有数据(主要是entryType、stateType、metadataType这几类)和接收到node.Ready()之后的写操作。 WAL 阅读全文
posted @ 2021-08-10 23:47 charlieroro 阅读(1014) 评论(0) 推荐(0)
摘要: 本章给出了raftexample中使用的传输层代码,补全了上一节中传输层与raft节点(raft server和channel server)的交互细节。下图中流程的核心在于传输层中的streamRt和pipelineRt,raft的传输层通过这两个roundtrip与其他节点交互,并通过strea 阅读全文
posted @ 2021-08-05 09:25 charlieroro 阅读(265) 评论(0) 推荐(0)
摘要: 最近在看raft相关的代码和实现,发现etcd的raft模块在实现上还是比较灵活的,但缺点就是需要用户实现比较多的功能,如存储和网络等,同时带来的优点就是不会对用户的存储和传输作限制。网上对该模块的描述也比较多,这里我主要根据代码画出简易的处理逻辑,代码逻辑可以参考这里(后续流程图也会按照这个系列的 阅读全文
posted @ 2021-08-03 22:04 charlieroro 阅读(591) 评论(0) 推荐(1)
摘要: Waltz 一种分布式预写日志系统 本文讲述了一种分布预写式日志系统Waltz,文中介绍了在实现预写式日志系统时遇到的问题及其解决方案,可以为类似的需求提供一定的启发。 译自:Waltz: A Distributed Write-Ahead Log 简介 Waltz 是一种分布式预写式日志(WAL) 阅读全文
posted @ 2021-07-27 10:04 charlieroro 阅读(762) 评论(0) 推荐(0)
上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 26 下一页