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.
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.
在现有的需求中,因业务需求还在扩充,使得前期搜集需求的过程中,很难完整的穷尽所有的处理逻辑。此时,需要一种技术,能够做到后期补充操作逻辑。在完成整体开发后,由其他开发人员进行扩展,由此,其他开发人员将无需更改应用程序的代码,更不至于重新编译整个应用程序。
在Go语言中,已知的插件系统中,可有三种选项:Hashicorp
go-plugin,内置plugins
软件包,以及Go Javascript解释器。
首先Go Mod最好设置Goproxy,这样可以解决很多包拉取的问题:
1 | go env -w GOPROXY="https://goproxy.cn,direct" |
在对Go-Micro库改造中,碰到了一个nil与interface比较的问题。现象是我返回的接口是nil,返回值是另一个接口接收,在函数外,与nil进行比较,其竟然不为nil。
基于我对网上搜索过后的结果,大多数对Micro的测试都是基于V1版本的,当然V1版本的性能也确实拉跨,被吊打的不得了,那V2版本是否有相应的进步呢?这点没有在网上搜索到,那就只能自己动手改造一个了。
最近有接触到一些嵌入式设备,因为长期用Go,对C语言比较生疏,那也就直接使用CGO直接对数据进行读写。当我以为是很简单的一件事的时候,但我发现Linux下,直接对块设备通信,发生了一些问题。