/images/avatar.png

时序数据库 InfluxDB(二)


RP


先回顾一下 RP 策略( retention policy ),它由三个部分构成:

  • DURATION:数据的保留时长。
  • REPLICATION:集群模式下数据的副本数,单节点无效。
  • SHARD DURATION:可选项,shard group 划分的时间范围。

前两个部分没啥好说的,而 shard duration 和 shard group 的概念你可能会感到比较陌生。

时序数据库 InfluxDB(一)


数据库种类有很多,比如传统的关系型数据库 RDBMS( 如 MySQL ),NoSQL 数据库( 如 MongoDB ),Key-Value 类型( 如 redis ),Wide column 类型( 如 HBase )等等等等,当然还有本系列文章将会介绍的时序数据库 TSDB( 如 InfluxDB )。

Go Errors 错误处理

Golang 中的 error 是一个内置的特殊的接口类型:

1
2
3
type error interface {
    Error()  string
}

在 Go 1.13 版本之前,有关 error 的方法只有两个:

  • errors.New :
1
func New(text string) error
  • fmt.Errorf :
1
func Errorf(format string, a ...interface{}) error

这两个方法都是用来生成一个新的 error 类型的数据。

Go 垃圾回收

Garbage Collection( GC )也就是垃圾回收到底是什么?内存空间是有限的,诸如变量等需要分配内存才能存储数据,而当这个变量不再使用的时候就需要释放它占用的内存,这就是垃圾回收。

从 V8 优化看高效 JavaScript【译】

文本翻译自: https://blog.logrocket.com/how-javascript-works-optimizing-the-v8-compiler-for-efficiency


理解 JavaScript 是如何工作的对于编写高效的 JS 大有帮助。

V8 执行 JS 分为三个阶段:

  • 源代码转换为 AST 抽象语法树。
  • 语法树转换为字节码:这个过程由 V8 的 Ignition 完成,2017年之前是没有的。
  • 字节码编译成机器码:由 V8 的编译器 TurboFan 来完成。

第一个阶段并不是文本的讨论范围,第二三阶段对于编写优化 JS 有直接影响。

微服务互通的桥梁: gRPC 入门示例

RPC 是什么?Remote Procedure Call ,远程过程调用,一种通信协议。你可以理解为,在某台机器上调用另外一台机器上的服务或方法。

应用服务对外可以提供 REST 接口以供进行服务的调用,那么对于分布式系统内部的微服务之间的相互调用呢?REST 的方式仍然可行,但是效率不高,因此 RPC 出现了。

为什么你应该使用 Go module proxy

自从 Go v1.11 版本之后 Go modules 成了官方的包管理方式,与此同时还有一个 Go module proxy ,它到底是个什么东西?顾名思义,其实就是个代理,所有的模块和依赖库都可以从这个代理上下载。

Dockerfile 最佳实践

Dockerfile 是用来构建 docker 镜像的配置文件,语法简单上手容易,你可以很轻松的就编写一个能正常使用的 Dockerfile ,但是它很有可能还不够好,本文将会从细节上介绍一些 tips 助你实现最佳实践。