`

学习golang并做一个简单分布式存储项目

 
阅读更多

从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. 写单元测试真的方便

0
1
分享到:
评论

相关推荐

    基于golang的分布式百万级即时通讯系统.zip

    本项目"基于golang的分布式百万级即时通讯系统"利用Go语言的强大特性和高效性能,旨在构建一个能够处理百万级用户的实时通信平台。 【描述】基于golang开发的系统 Go语言,又称Golang,是由Google公司设计的一种...

    基于Golang的分布式态势感知系统系统.zip

    分布式态势感知系统是一种用于网络安全监控和预警的技术,...总的来说,这个基于Golang的分布式态势感知系统是一个复杂的、高度集成的网络安全解决方案,利用现代技术栈和最佳实践,实现了高效、可扩展的安全监控能力。

    Go-一个简单的golang布隆过滤器

    在Go语言中实现一个简单的布隆过滤器可以帮助我们高效地处理大数据集,尤其是在内存有限的情况下。以下是对这个主题的详细说明: 1. **布隆过滤器原理**: 布隆过滤器基于多个哈希函数,将元素映射到一个固定大小...

    Go-基于golang和redis实现的简单易用的队列

    本文将深入探讨如何使用Golang(Go语言)与Redis构建一个简单易用的消息队列系统,以此来提升系统的可扩展性和解耦性。 首先,我们来看标题"Go-基于golang和redis实现的简单易用的队列",这表明我们将使用Go语言...

    yascrapy用golang和Python联合完成的高性能分布式爬虫

    `yascrapy` 是一个创新的项目,它结合了 Go 语言和 Python 的优势,构建出一个高性能的分布式网络爬虫框架。在理解这个项目之前,我们需要先了解两个核心部分:Go 语言和 Python 在爬虫开发中的角色。 1. **Go 语言...

    gxApp后端项目-golang gin/gorm redis mysql

    【标题】"gxApp后端项目-golang gin/gorm redis mysql"是一个基于Golang语言的后端应用程序,它集成了多个关键技术栈,包括Gin框架、Gorm ORM、Redis缓存以及MySQL数据库。这个项目旨在展示如何在Golang中构建高效、...

    Go:Golang项目存储库

    标题“Go: Golang项目存储库”指的是一个专门存放Go语言相关项目的仓库。这个仓库可能包含多个Go语言编写的项目源代码、文档、示例以及测试用例等资源。这样的存储库对于开发者来说是宝贵的资源库,他们可以在这里...

    Container-Orchestrator:GoLang中的一个简单项目,用于模仿容器Orchestrator

    【标题】:“Container-Orchestrator:GoLang中的一个简单项目,用于模仿容器Orchestrator” 在当今的云计算和DevOps环境中,容器化技术已经变得至关重要,它允许开发者以可移植和可扩展的方式部署应用程序。Docker...

    Go-riot是一个Go语言开发的开源分布式简单高效搜索引擎

    Go-riot是一个基于Go语言构建的开源分布式搜索引擎,它的设计目标是实现简单高效,这使得它在处理大规模数据检索时具备高性能和可扩展性。在深入探讨Go-riot之前,我们先来了解一下Go语言和分布式系统的基础知识。 ...

    一个基于 Go 语言实现的分布式云存储服务,慕课网实战仿百度网盘项目。.zip

    Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。...如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。

    golang.org.zip

    此外,golang.org还提供了一个活跃的社区,包括邮件列表、论坛和问题跟踪系统,开发者可以在这里交流经验、寻求帮助,共同推动Go语言的发展。Go语言的生态也在不断壮大,有许多优秀的第三方库,如Gin(Web框架)、...

    基于Golang的个人简易博客系统.zip

    在这个项目中,我们关注的是一个用Golang编程语言构建的个人博客系统。Golang,通常简称为Go,是Google在2009年发布的一种静态类型的、编译型的、并发式的、垃圾回收的、面向对象的、C风格的编程语言。它的设计目标...

    基于golang开发的网站爬虫模板

    本教程将详细讲解如何使用Golang(Go语言)开发一个基础的网站爬虫模板。 Golang是Google推出的一种静态类型、编译型的编程语言,因其高效、简洁和并发特性,常被用于后端服务开发,包括网络爬虫的编写。以下是你...

    开源项目-golang-go.zip

    开源项目-golang-go.zip是一个与Go编程语言相关的开源项目,由1.8版本的发布方提供。Go,也称为Golang,是由Google开发的一种静态类型的、编译式的、垃圾回收的、并发型且具有C/C++风格语法的编程语言。自2009年公开...

    一个简单的golangweb服务器,具有基本的日志记录、跟踪、健康检查、正常关闭和零依赖.zip

    通过学习和理解这个项目,你可以掌握如何使用Golang构建一个健壮、高效的Web服务器,并了解如何实现上述各种特性。此外,它还展示了Golang在编写低耦合、高内聚代码方面的优势,以及如何利用其强大的标准库来构建无...

    golang项目如何上线部署到Linu服务器(方法详解)

    - 注意:有时需要自定义`GOPATH`,例如创建一个新的目录`/newhome/go/gopath`,并在环境中设置`GOPATH`,同时在`gopath`下创建`src`、`pkg`、`bin`三个子目录。 - **方法二:本地跨平台编译**: - 在Windows环境...

    基于Golang框架的在线读书社区源码.zip

    总的来说,"基于Golang框架的在线读书社区源码"是一个集成了Golang语言特性和各种开发最佳实践的项目,它展示了如何利用Go语言高效地构建一个功能丰富的在线平台。深入研究这个源码,对于学习和理解Golang以及后端...

    golang-crawler:从简单到并发到分布式爬虫

    在IT行业中,Go语言(Golang)因其高效、并发能力强以及简洁的语法而...这个项目对于想要学习和提升Go语言爬虫技能的开发者来说,是一个宝贵的资源。通过深入理解和实践其中的代码,可以提升在爬虫开发领域的专业能力。

    基于golang go语言的网盘系统.zip

    本项目“基于Golang Go语言的网盘系统”是一个使用Go语言实现的网络存储平台,可能包含了用户管理、文件上传下载、权限控制、多线程处理等功能。作为毕业设计或课程作业,这样的项目有助于学生深入理解和掌握Go语言...

Global site tag (gtag.js) - Google Analytics