从14年中开始陆续一年,断断续续学习了下Golang,看了Go语言编程,Go语言程序设计2本书。
始终觉得应该做点项目锻炼下,因为正好看《从paxos到zookeeper》,就尝试写一些网络应用,分布式存储这块是比较热门的,自己就比葫芦画瓢做了一个项目whisper。
http://git.oschina.net/key232323/whisper
Raft协议到是看懂了,但一直没有自己写,开源上也有golang的库,自己就偷懒了,还是master/slave的简单粗暴。
用了一些第三方库gorpc,btree做索引,自己设计了索引分片、日志,多副本存储,sub/pub等。
整个集群网络中有一个协调者,一个索引存储单元,多个数据存储node,多个对外提供服务的node。
整个项目是个半成品,中间也不断的进行代码重构。总得下来,有几个感觉:
1. golang是一个简单、实用的语言,sdk已经很强大,上手很容易
2. golang社区日趋成熟,第三方库不难找到
3. 语法格式统一性强,大家写的代码几乎都一样,liteide足够用
4. 写单元测试真的方便
相关推荐
golang建立一个基本的分布式系统1
管理系统系列--GoScan是采用Golang语言编写的一款分布式综合资产管理系统,适合红队、SRC等使用
Golang实现的基于DHT分布式存储网络爬虫, 抱着学习 Golang 的目的。 DHT 网络 DHT 全称叫分布式哈希表(Distributed Hash Table),是一种分布式存储方法。在不需要服务器的情况下,每个客户端负责一个小范围的路由,...
GoWorld – 用Golang写一个分布式可扩展、可热更的游戏服务器
└─redis ├─common:统一错误码(实际并没有怎么用) ├─config:统一项目配置(数据库,oss,mq,redis,监听地址等) ├─db:提供数据库(dao层)支持,包括创建连接池,提供crud接口│└─mysql ├─doc:...
基于golang语言开发一个个人博客项目
vegamcache是一个使用gossip协议构建的分布式内存中golang缓存库
4个优秀的的golang开源项目,非常适合初学入门,可以学习如何优雅的使用go语言。 郑重声明:该资源仅供学习交流使用。
golang分布式多业务线定时任务系统
golang环境配置及对接s3对象存储demo手册及源代码 开发环境 安装go环境 Windows Linux 使用golang-demo Windows Linux 代码分析
GoScan GoScan是采用Golang语言编写的一种分布式综合资产管理系统,Web端负责...分布式简单:通过golang语言编写的nsq消息串行进行分布式调度,排除了如redis,其他大型的MQ环境(本项目只有三个初始化文件:web,ns
零基础学习golang,或者有一定语言基础的人转go,描述了go的常用用法
主要介绍了基于golang的简单分布式延时队列服务的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
算法学习 Golang 版 - 探索算法始末
MinIO 是一款基于Go语言发开的高性能、分布式的对象存储系统。客户端支持Java,Net,Python,Javacript, Golang语言。
goweb编程和学习golang两本书的pdf文档 golang入门 go语言学习 这是关于来自 Google 的 Go 语言的简介。目标是为这个新的、革命性的语言提供一个指南。
minio 兼容Amason的S3分布式对象存储项目,采用Golang实现,客户端支持Java,Python,Javacript, Golang语言。 Minio可以做为云存储的解决方案用来保存海量的图片,视频,文档。由于采用Golang实现,服务端可以工作 ...
利用Redis和Golang实现分布式令牌桶算法,令牌桶算法对速率限制和网络拥塞控制非常有用
学习 Go 语言(Golang),简单易懂的Go语言教程,让你分分钟学会GO语言
在这个教程中,你将学习如何使用Golang创建一个命令行应用程序,如何使用文件系统存储数据,以及如何实现基本的CRUD(创建、读取、更新、删除)操作。通过这个实战项目,你将学到Golang的基础语法和常用库,以及如何...