搜集赏

1
总会有光明的东西的,在未来。

——《像少年啦飞驰》韩寒


阅读全文

RAFT常见问题与解答

假设在网络被划分的同时选出了一个新的领导者,但是旧的领导者在不同的划分中。老领导怎么知道停止提交新条目?

旧领导要么无法获得大多数成功响应(如果它在少数分区中),要么如果它可以与多数节点通信的话,则多数节点必然会与新领导的多数重叠,重叠中的服务器将告诉旧领导有一个更高的term任期。这将导致旧的领导者转变为追随者。

阅读全文

轻量化日志服务Loki分享

做了一个关于Loki的简单分享,也是因为在项目中有使用到它,现在使用大多还是单体,还没有说需要上到分布式的场景,此处既是对Loki基础理论的一次分享。

阅读全文

raft扩展论文(中文)

raft-zh

阅读全文

raft设置结构体的建议(6.824)

Raft Structure Advice

A Raft instance has to deal with the arrival of external events
(Start() calls, AppendEntries and RequestVote RPCs, and RPC replies),

阅读全文

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。

阅读全文