基于golang channel实现的轻量级异步任务分发器示例代码

前言有时候我们为了更好的利用计算机资源,可以把一些耗时长的任务队列化异步执行。举个对应简单的生活中例子就是大多数餐厅里面点菜都是先找地方做,看了菜单选好菜之后找服务...

浅谈Golang中创建一个简单的服务器的方法

我们知道,golang中的net/http包对网络的支持非常好,这样会让我们比较容易的建立起一个相对简单的服务器,我们来看一段代码func sayHi(w http.ResponseWriter, r *http.Request)...

Golang对MongoDB数据库的操作简单封装教程

前言Golang 对MongoDB的操作简单封装使用MongoDB的Go驱动库 mgo,对MongoDB的操作做一下简单封装mgo(音mango)是MongoDB的Go语言驱动,它用基于Go语法的简单API实现了丰富的特性,...

golang中sync.Map并发创建、读取问题实战记录

背景:我们有一个用go做的项目,其中用到了zmq4进行通信,一个简单的rpc过程,早期远端是使用一个map去做ip和具体socket的映射。问题大概是这样struct SocketMap { sync.Mutex sock...

golang基础之Gocurrency并发

goroutine只是由官方实现的超级"线程池"而已,每个实例4-5kb的栈内存占用和用于实现机制而大幅减少的创建和销毁开销。并发不是并行(多CPU): Concurrency Is Not Parallelism并...

go如何利用orm简单实现接口分布式锁

在开发中有些敏感接口,例如用户余额提现接口,需要考虑在并发情况下接口是否会发生问题。如果用户将自己的多条提现请求同时发送到服务器,代码能否扛得住呢?一旦没做锁,那么就真的...

Go语言开发发送Get和Post请求的示例

在使用Go语言进行开发的时候,有的时候可能要发送get或者post请求,下面我对post和get请求做一下简单的介绍:关于 HTTP 协议
HTTP(即超文本传输协议)是现代网络中最常见和常用的协...

golang使用信号量热更新的实现示例

配置文件热更新是服务器程序的一个基本功能,通过热更新可以不停机调整程序的配置,特别是在生产环境可以提供极大的便利,比如发现log打得太多了可以动态调高日志等级,业务逻辑参...

golang package time的用法具体详解

在我们编程过程中,经常会用到与时间相关的各种务需求,下面来介绍 golang 中有关时间的一些基本用法,我们从 time 的几种 type 来开始介绍。时间可分为时间点与时间段, golang...

Go语言开发区块链只需180行代码(推荐)

区块链开发用什么语言?通过本文你将使用Go语言开发自己的区块链(或者说用go语言搭建区块链)、理解哈希函数是如何保持区块链的完整性、掌握如何用Go语言编程创造并添加新的块...

Go语言中的函数式编程实践

本文主要讲解Go语言中的函数式编程概念和使用,分享给大家,具体如下:主要知识点: Go语言对函数式编程的支持主要体现在闭包上面 闭包就是能够读取其他函数内部变量的函数。只有...

golang 获取明天零点的时间戳示例

实例如下所示:package mainimport ( "fmt" "time")func main() { timeStr := time.Now().Format("2006-01-02") fmt.Println(timeStr) //使用Parse 默认获取为UTC时区 需要获...

在Golang中使用Redis的方法示例

周五上班的主要任务是在公司老平台上用redis处理一个队列问题,顺便复习了一下redis操作的基础知识,回来后就想着在自己的博客demo里,用redis来优化一些使用场景,学习一下golang...

详解golang consul-grpc 服务注册与发现

在微服务架构里面,每个小服务都是由很多节点组成,节点的添加删除故障希望能对下游透明,因此有必要引入一种服务的自动注册和发现机制,而 consul 提供了完整的解决方案,并且内置了...

golang实战之truncate日志文件详解

前言有时候我们生成的日志文件很大,如果文件过大,或者磁盘空间有限,那么我们就需要把日志文件改小一点。
(当然实际应用场景中,一般采用log rotate的方式实现多个日志文件,定期把...

Go语言中的上下文取消操作详解

前言许多使用Go的人,都会用到它的上下文库。大多数使用 context 进行下游操作,比如发出HTTP调用,或者从数据库获取数据,或者在协程中执行异步操作。最常见的用法是传递可由所有...

golang struct 实现 interface的方法

golang中,一般strcut包含 interface类型后,struct类型都需要实现 interface导出的接口,从而成为相应的 interface接口类。实际上,struct包含interface之后,并不需要实现interface...

go实现redigo的简单操作

golang操作redis主要有两个库,go-redis和redigo。两者操作都比较简单,区别上redigo更像一个client执行各种操作都是通过Do函数去做的,redis-go对函数的封装更好,相比之下redigo...

golang中struct和[]byte的相互转换示例

在网络传输过程中,经常会这样处理:socket接收到数据,先获取其消息头,然后再做各种不同的业务处理。在解析消息头的时候的方法有多种多样。其中最为高效解析消息头的方法就是直接...

golang利用pprof与go-torch如何做性能分析

前言软件开发过程中,项目上线并不是终点。上线后,还要对程序的取样分析运行情况,并重构现有的功能,让程序执行更高效更稳写。 golang的工具包内自带pprof功能,使找出程序中占内存...

浅谈go语言renderer包代码分析

renderer是Go语言的一个简单的、轻量的、快速响应的呈现包,它可以支持JSON、JSONP、XML、HYAML、HTML、File等类型的响应。在开发web应用或RESTFul API的时候,这个包是非常方...

Go Web框架gin的入门教程

目前,基于Go的web框架也可谓是百花齐放了,之所以选择 gin ,没其他原因,就只是因为其在github上的star数是最多的,而且仅仅从README看,其文档也是相当丰富的。安装gin直接使用 go g...

用golang实现一个定时器任务队列实例

很有幸得到公司信任,采用新的语言进行一些底层服务的开发,在实现功能的同时,也获得了一些感悟,因此在这记录一下,方便自己查看也可以共享给大家。
golang中定时器golang中提供了...

go语言学习之包和变量详解

前言本文主要介绍了关于go语言之包和变量的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。一、包的概念
包是go语言中不可缺少部分,在每个go源码的...

Golang 中整数转字符串的方法

整形转字符串经常会用到,本文讨论一下 Golang 提供的这几种方法。基于 go1.10.1fmt.Sprintf
fmt 包应该是最常见的了,从刚开始学习 Golang 就接触到了,写 ‘hello, world' 就得...

返回顶部
顶部