时序数据库 InfluxDB(五)
系统监控
InfluxDB 自带有一个监控系统,默认情况下此功能是开启的,每隔 10 秒中采集一次系统数据并把数据写入到 _internal 数据库中,其默认使用名称为 monitor 的 RP(数据保留 7 天),相关配置见配置文件中的:
InfluxDB 自带有一个监控系统,默认情况下此功能是开启的,每隔 10 秒中采集一次系统数据并把数据写入到 _internal 数据库中,其默认使用名称为 monitor 的 RP(数据保留 7 天),相关配置见配置文件中的:
InfluxDB 数据的写入如下图所示:
所有数据先写入到 WAL( Write Ahead Log )预写日志文件,并同步到 Cache 缓存中,当 Cache 缓存的数据达到了一定的大小,或者达到一定的时间间隔之后,数据会被写入到 TSM 文件中。
InfluxDB 是一个无结构模式,这也就是说你无需事先定义好表以及表的数据结构。
InfluxDB 支持的数据类型非常简单:
你可以看到除了 field value 支持的数据类型多一点之外,其余全是字符串类型。
先回顾一下 RP 策略( retention policy ),它由三个部分构成:
前两个部分没啥好说的,而 shard duration 和 shard group 的概念你可能会感到比较陌生。
数据库种类有很多,比如传统的关系型数据库 RDBMS( 如 MySQL ),NoSQL 数据库( 如 MongoDB ),Key-Value 类型( 如 redis ),Wide column 类型( 如 HBase )等等等等,当然还有本系列文章将会介绍的时序数据库 TSDB( 如 InfluxDB )。
Golang 中的 error 是一个内置的特殊的接口类型:
|
|
在 Go 1.13 版本之前,有关 error 的方法只有两个:
errors.New
:
|
|
fmt.Errorf
:
|
|
这两个方法都是用来生成一个新的 error 类型的数据。
Garbage Collection( GC )也就是垃圾回收到底是什么?内存空间是有限的,诸如变量等需要分配内存才能存储数据,而当这个变量不再使用的时候就需要释放它占用的内存,这就是垃圾回收。
本文翻译自: https://betterprogramming.pub/is-node-js-really-single-threaded-7ea59bcc8d64
CPU密集型任务会阻塞 Node.js 吗?
让我们使用加密任务做个简单测试:
如图所示,连续执行四次加密任务,打印耗时,结果会发生什么?
文本翻译自: https://blog.logrocket.com/how-javascript-works-optimizing-the-v8-compiler-for-efficiency
理解 JavaScript 是如何工作的对于编写高效的 JS 大有帮助。
V8 执行 JS 分为三个阶段:
第一个阶段并不是文本的讨论范围,第二三阶段对于编写优化 JS 有直接影响。
RPC 是什么?Remote Procedure Call ,远程过程调用,一种通信协议。你可以理解为,在某台机器上调用另外一台机器上的服务或方法。
应用服务对外可以提供 REST 接口以供进行服务的调用,那么对于分布式系统内部的微服务之间的相互调用呢?REST 的方式仍然可行,但是效率不高,因此 RPC 出现了。