raft使用锁的建议(6.824)

Raft Locking Advice

If you are wondering how to use locks in the 6.824 Raft labs, here are
some rules and ways of thinking that might be helpful.

阅读全文

Golang插件使用

在现有的需求中,因业务需求还在扩充,使得前期搜集需求的过程中,很难完整的穷尽所有的处理逻辑。此时,需要一种技术,能够做到后期补充操作逻辑。在完成整体开发后,由其他开发人员进行扩展,由此,其他开发人员将无需更改应用程序的代码,更不至于重新编译整个应用程序。

在Go语言中,已知的插件系统中,可有三种选项:Hashicorp go-plugin,内置plugins软件包,以及Go Javascript解释器。

阅读全文

Go Modules设置私有库,以及支持HTTP的私有库操作

常规设置

首先Go Mod最好设置Goproxy,这样可以解决很多包拉取的问题:

1
go env -w GOPROXY="https://goproxy.cn,direct"

阅读全文

Go中的nil和interface

在对Go-Micro库改造中,碰到了一个nil与interface比较的问题。现象是我返回的接口是nil,返回值是另一个接口接收,在函数外,与nil进行比较,其竟然不为nil。

阅读全文

go-micro config包解读

直接使用config包中函数,例如Get/Load...等函数,我们使用的是config包,默认变量DefaultConfig

初始化过程为:

阅读全文

golang fmt.Fscanf()读取文件数据异常问题

今天看到朋友代码时,发现一个小问题,fmt.Fscanf()读取数据老是不正常,总体,可以看出来是,多读了一个0。这个现象有点问题。

阅读全文

Go Micro性能测试

基于我对网上搜索过后的结果,大多数对Micro的测试都是基于V1版本的,当然V1版本的性能也确实拉跨,被吊打的不得了,那V2版本是否有相应的进步呢?这点没有在网上搜索到,那就只能自己动手改造一个了。

阅读全文

Go Micro使用pprof查找问题

pprof 是用于可视化和分析性能分析数据的工具。

当服务出现异常CPU占用,或者内存出现爆炸式增长时,我们可以使用pprof来帮助我们进行分析。

阅读全文

块设备在Linux上读写直接使用IO

最近有接触到一些嵌入式设备,因为长期用Go,对C语言比较生疏,那也就直接使用CGO直接对数据进行读写。当我以为是很简单的一件事的时候,但我发现Linux下,直接对块设备通信,发生了一些问题。

阅读全文