gf框架之gparser – 异常强大灵活的数据格式编码/解析包

gf框架针对常用的数据格式编码解析,提供了异常强大灵活的功能,由gparser包提供,支持 Go变量(interface{})、JSON、XML、YAML/YML、TOML 数据格式之间的相互转换,支持按照层级进行数据检索访问、支持运行时动态修改/新增/删除层级变量(并发安全)等特性。 Continue reading “gf框架之gparser – 异常强大灵活的数据格式编码/解析包”

gf框架之gvalid – 强大灵活的数据校验/表单校验模块

gf提供了非常强大易用的数据校验功能,通过gvalid包提供,封装了40种常用的校验规则,支持单数据多规则校验、多数据多规则批量校验、自定义错误信息、自定义正则校验等特性。由于gf是模块化、低耦合设计,gvalid包也可以在项目中单独引入使用。

使用方式:

Continue reading “gf框架之gvalid – 强大灵活的数据校验/表单校验模块”

gf框架之grpool – 高性能的goroutine池

Go语言中的goroutine虽然相对于系统线程来说比较轻量级,但是在高并发量下的goroutine频繁创建和销毁对于性能损耗以及GC来说压力也不小。充分将goroutine复用,减少goroutine的创建/销毁的性能损耗,这便是grpool对goroutine进行池化封装的目的。例如,针对于100W个执行任务,使用goroutine的话需要不停创建并销毁100W个goroutine,而使用grpool也许底层只需要几千个goroutine便能充分复用地执行完成所有任务。经测试,在高并发下grpool的性能比原生的goroutine高出几倍到数百倍!并且随之也极大地降低了内存使用率。

性能测试报告:http://johng.cn/grpool-performance/ Continue reading “gf框架之grpool – 高性能的goroutine池”

grpool协程池(goroutine池)性能测试

Go语言中的goroutine虽然相对于系统线程来说比较轻量级,但是在高并发量下的goroutine频繁创建和销毁对于性能损耗以及GC来说压力也不小。充分将goroutine复用,减少goroutine的创建/销毁的性能损耗,这便是grpool对goroutine进行池化封装的目的。例如,针对于100W个执行任务,使用goroutine的话需要不停创建并销毁100W个goroutine,而使用grpool也许底层只需要几千个goroutine便能充分复用地执行完成所有任务。经测试,在高并发下grpool的性能比原生的goroutine高出几倍到数百倍!并且随之也极大地降低了内存使用率。 Continue reading “grpool协程池(goroutine池)性能测试”

gkvdb的性能测试(v1.0)

分别从100W、500W、1000W的写入、查询、删除次数及耗时,计算对应的每次操作耗时平均数,用以衡量性能。

需要注意的是,

1、为方便测试,使用的数据是按照 Key: key_xxx => Value: value_xxx 顺序递增的,而不是使用的随机数据,因此对于leveldb和boltdb来说性能会有所提高,但不影响大概的测试结果;

2、以下的时间单位为微秒(μs),1微秒(μs)=0.001毫秒(ms)=0.000001秒(s);

3、性能测试的代码在这里Continue reading “gkvdb的性能测试(v1.0)”

gkvdb的介绍及设计

gkvdb是Go语言开发的基于DRH(Deep-Re-Hash)深度哈希分区算法的高性能Key-Value嵌入式数据库,gkvdb是开源的、免费的,基于MIT协议进行发布,项目地址:https://gitee.com/johng/gkvdb

gkvdb的使用方式极其简单,可参考项目地址中的说明进行操作即可。为了保证gkvdb的高性能,除了使用简单可靠的DRH算法外,gkvdb的一些组件也进行了非常优秀的设计,本文主要对gkvdb的一些核心组件进行简单的介绍。 Continue reading “gkvdb的介绍及设计”

dister的使用示例

这一节我们来演示搭建一个dister集群,为简单起见,我们这个集群只有3个节点:192.168.2.15、192.168.2.63、192.168.2.114,名称分别设置为node1、node2、node3。

一、dister选举流程

node1:

node2:

node3:

Continue reading “dister的使用示例”

dister的安装及使用

一、dister的安装

dister采用了go语言进行开发,因此dister具有优异的跨平台性能,dister是开源的、免费的,采用MIT协议进行发布。

dister的开源项目地址:https://gitee.com/johng/dister

 

安装方式1(推荐):

dister提供了各个平台预编译好的二进制版本,下载地址是:https://gitee.com/johng/dists/tree/master/dister/

dister不需要任何的运行环境依赖,用户根据自己运行的平台选择对应的二进制文件下载运行即可。

 

安装方式2:

您也可以自行下载源代码进行编译安装,所使用到的编译环境除了go语言开发环境外,还包括dister使用到的轻量级框架gf,开源项目地址:https://gitee.com/johng/gf

如果预编译的常用平台版本中没有您需要的版本,那么您可以选择自行进行编译安装。 Continue reading “dister的安装及使用”