首页 » 分类 » Golang

Golang 微服务实践 —— Go Micro

Micro是一套微服务构建工具库。对于微服务架构的应用,Micro提供平台层面、高度弹性的工具组件,让服务开发者们可以把复杂的分布式系统以简单的方式构建起来,并且尽可能让开发者使用最少的时间完成基础架构的构建。Go Micro简介micro工具库由以下几个部分组成:ap…

- 阅读全文 -

Golang 微服务 —— grpc

大家可以发现,Go越来越流行,在微服务方面,Go展示很大的优势性.随着微服务的兴起,现在越来越多的 rpc 框架 开始出现,前段时间自己学习搭建了一下 grpc ,在这里记录一下.gRPCgrpc 是谷歌开源的rpc框架,基于http2实现,并支持跨语言,目前基本涵盖了…

- 阅读全文 -

Golang 微服务 —— protocol-buffers

protocol buffers 是一种语言无关、平台无关、可扩展的序列化结构数据的方法,它可用于通信协议、数据存储等。protocol buffers 是什么?protocol buffers 是一种灵活,高效,自动化机制的结构数据序列化方法-可类比 XML,但是比 …

- 阅读全文 -

Golang 实现常见设计模式

今天我想聊聊Golang语言下的设计模式问题,我觉得这个话题还是比较有意思的。用Go把设计模式实现一遍。构建一个知识库。 虽然网上有《Go Patterns》,不过是英文版的,并且不全,我就想把它翻译成中文的,并且补全。单利设计模式(Singleton)单例对象的类必须…

- 阅读全文 -

Golang gin框架源码解析

Gin框架是golang的一个常用的web框架,因在项目中使用了它,所以对它进行了学习。gin包非常短小精悍,不过主要包含的路由,中间件,日志都有了。自身的net/http足够简单,性能也非常不错。框架更像是一些常用函数或者工具的集合。借助框架开发,不仅可以省去很多常用…

- 阅读全文 -

Golang 的 goroutine 是如何实现的?

Go runtime的调度器:在了解Go的运行时的scheduler之前,需要先了解为什么需要它,因为我们可能会想,OS内核不是已经有一个线程scheduler了嘛?熟悉POSIX API的人都知道,POSIX的方案在很大程度上是对Unix process进场模型的一个…

- 阅读全文 -

Golang WaitGroup 实现源码剖析

Golang中WaitGroup的用途是它能够一直等到所有的goroutine执行完成,并且阻塞主线程的执行,直到所有的goroutine执行完成。下面这篇文章就从WaitGroup源码来分析一下处理逻辑及其使用方法,部分无关代码直接略去,比如 race detect,…

- 阅读全文 -

Golang map 实现源码剖析

在Golang开发过程中,map是必不可少的数据结构,使用map或多或少会遇到与其他语言不一样的体验,比如访问不存在的元素会返回其类型的空值,map的大小究竟是多少,为什么会报"cannot take the address of"错误,遍历map的随机性等等。本文希望…

- 阅读全文 -

Golang slice 实现源码剖析

Golang 数组的长度不可改变,在特定场景中这样的集合就不太适用,Golang中提供了一种灵活,功能强悍的内置类型slice,与数组相比slice的长度是不固定的,可以追加元素,在追加时可能使切片的容量增大。这篇文章介绍一下 Golang slice 的内部实现原理,…

- 阅读全文 -

Golang channel 实现源码剖析

channel是golang的一种重要特性,正是因为channel的存在才使得golang不同于其它语言。channel使得并发编程变得简单容易有趣。这篇文章介绍一下 Golang channel 的内部实现原理,包括 channel 的数据结构以及相关操作的代码实现。…

- 阅读全文 -