jasper的技术小窝

关注DevOps、运维监控、Python、Golang、开源、大数据、web开发、互联网

深入Golang之http

作者:jasper | 分类:Golang | 标签:   | 阅读 25 次 | 发布:2017-12-10 8:43 p.m.

Golang作为一个适用于高并发场景的语言,非常适合用以构建web服务。而且基于Golang的HTTP模块可以很方便地来实现,因为他自带了路由注册,连接处理等功能,这也是现在开源界Golang的web框架如此多的原因。下面我们就来看看Golang中HTTP的实现,从中我们也可以学习到Golang编程的一下小技巧。

阅读全文

使用InfluxDB监控kafka

作者:jasper | 分类:kafka | 标签:     | 阅读 34 次 | 发布:2017-12-02 5:30 p.m.

在很早之前的一篇文章里面,介绍了使用JMXTrans来监控kafka,最近在玩InfluxDB,想着也可以用InfluxDB来存储kafka的监控数据。虽然仍然可以使用JMXTrans来将数据发到kafka,实际上网上也有这样的实现,但是其部署和配置都不够简便,所以本文提供了一个更方便的方案。

阅读全文

深入Golang之netpoller

作者:jasper | 分类:Golang | 标签:   | 阅读 71 次 | 发布:2017-11-26 9:33 p.m.

Golang是一门主要面向互联网环境的分布式语言,这意味着它需要面对高并发的挑战。当系统出现高并发的IO访问时,如一个网络服务器通常要并发处理成百上千的链接,每个链接可能都是由一个用户任务执行的,那么将会出现大量阻塞的IO操作,如果为每个阻塞操作都单独分配一个OS线程,那么将会增加系统的负载。在Golang中针对网络IO做了特别的优化,而这就是我们这一篇将要探讨的netpoller。

阅读全文

深入Golang之sync.pool

作者:jasper | 分类:Golang | 标签:   | 阅读 74 次 | 发布:2017-11-25 10:12 p.m.

在高并发或者大量的数据请求的场景中,我们会遇到很多问题,垃圾回收就是其中之一(garbage collection),为了减少优化GC,我们一般想到的方法就是能够让对象得以重用。这就需要一个对象池来存储待回收对象,等待下次重用,从而减少对象产生数量。

阅读全文

深入Golang之sync.mutex

作者:jasper | 分类:Golang | 标签:   | 阅读 65 次 | 发布:2017-11-20 10:03 p.m.

锁不管在操作系统里面,还是在各个编程语言里面都是非常重要的。特别是在Golang的goroutine中,会涉及到很多对同一个对象的操作,虽然考虑到锁对性能的影响,我们在Golang中会尽量使用channel来达到同样的效果,但是有时候还是不得不使用锁,现在来看看锁在Golang中的实现。

阅读全文

深入Golang之goroutine

作者:jasper | 分类:Golang | 标签:   | 阅读 86 次 | 发布:2017-11-12 12:08 a.m.

终于要来说说Golang中最吸引人的goroutine了,这也是Golang能够横空出世的主要原因。不同于Python基于进程的并发模型,以及C++、Java等基于线程的并发模型。Golang采用轻量级的goroutine来实现并发,可以大大减少CPU的切换。现在已经有太多的文章来介绍goroutine的用法,在这里,我们从源码的角度来看看其内部实现。

阅读全文

深入Golang之select

作者:jasper | 分类:Golang | 标签:   | 阅读 123 次 | 发布:2017-10-21 6:52 p.m.

接着上一篇的channel来说,channel就像一个管道,而我们在利用Golang的goroutines来编程的时候,对于多个goroutines(最常见的用time.Tick来控制时间的)的情况,我们一般需要用select语句来接收channel中的数据。本篇就来看看select的内部实现。

阅读全文

深入Golang之channel

作者:jasper | 分类:Golang | 标签:   | 阅读 142 次 | 发布:2017-10-15 6:53 p.m.

在Golang中channel被广泛地运用,它可以被存储到变量中,可以作为参数传递给函数,也可以作为函数的返回值返回。在Golang中常常使用channel+goroutine来实现并发的控制并发,下面来了解下channel的内部实现。

阅读全文

深入Golang之interface

作者:jasper | 分类:Golang | 标签:   | 阅读 196 次 | 发布:2017-09-23 11:43 p.m.

Golang中的interface是其比较有特色的地方,其并不只是类似于Java中的Object一样,是所有对象的祖先,而且在Golang中interface还有很多不一样的特性。Go语言的主要设计者之一罗布·派克( Rob Pike)曾经说过,如果只能选择一个Golang语言的 性移植到其他语言中,他会选择interface。

阅读全文

深入Golang之map

作者:jasper | 分类:Golang | 标签:   | 阅读 206 次 | 发布:2017-09-16 10 p.m.

现在我们接着来看一看Golang中的map,map具有O(1)的存取速度,所以十分高效。同Java语言一样,Golang的map也是hash结构的,代码在“runtime/hashmap.go”中,下面让我们来细细剖析。

阅读全文

其他分类: