关于Docker 网上关于Docker的介绍有很多,我就不复制粘贴了,大家可以自行查找。为什么用Docker?,一般来说是为了保证开发和线上环境一致,并能保证机器的干净,不会被安装一堆依赖。说下题外话,之前开发EOS的时…
标签:golang
golang结构体标签与反射
本文对golang反射做了一些尝试,整理了一些关键理解。 结构体标签(structure tag) 用过golang json的同学应该对下面的结构体定义很熟悉: type Request struc…
golang实现快速排序
快速排序的原理就不介绍了。在网上看到一个有趣的视频,大家可以看看,非常详细且有趣。 快速排序视频 代码:https://play.golang.org/p/Fw5gtzrPj0 package main import (…
Swoole 2.1 正式版发布,协程+通道带来全新的 PHP 编程模式
PHP的异步、并行、高性能网络通信引擎 Swoole 已发布 2.1.0 版本。新版本提供了全新的短名 API,完整支持了协程(Coroutine)+通道(Channel)特性,为 PHP 语言带来了全新的编程模式。Sw…
caddy(四)Run详解
caddy(四)Run详解 前言 平时我们使用 caddy 都是使用 它的 二进制 分发文件,我们现在来分析 caddy 的 Run 函数。从最外层抽象的看它都做了些什么。 Caddy Run 我们来看看 Caddy R…
mongo数据类型笔记
MongoDB以BSON一种序列化的二进制格式存储数据。在每个序列化之前的文档又支持以下列表中的数据类型,每种数据类型都有一个对应的数字和字符串别名。可以用在$type操作符中用于查询文档 数据类型: Type Numb…
聊一聊,Golang相对路径问题
前言 Golang 中存在各种运行方式,如何正确的引用文件路径成为一个值得商议的问题 以 go-gin-example 为例,当我们在项目根目录下,执行 go run main.go 时能够正常运行(go build也是…
向Go转型的点滴
1. 初识 初次接触golang是因为我们业务上有一个比较扯淡的需求,要给N多台不同的vm上每一台安装一个agent,用来采集监控指标和日志内容,这种需求估计绝大部分互联网从业者都见过。目标机上好几种不同的操作系统让人想…
【Go语言干货】从入门说起,你不得不要知道的goroutine和Channel
理论基础:Communication Sequential Process(CSP) 不要通过共享内存来通信;通过通信来共享内存 goroutine 任何函数只需加上go就能送给调度器运行 不需要在定义时区分是否是异步函…
Go基于Gin框架快速实现中间件(http拦截器)
Go是比较容易基于net/http来实现中间件的,比如现在要加一个http访问的拦截器, 可以对那些需要授权才能访问的接口进行验证。 比如: func HTTPInterceptor(h http.HandlerFunc…
基于环形队列和令牌桶实现的限流模块
概述 在分布式服务架构下,比如微服务架构,一般需要构建一个独立的gateway模块。gateway模块的主要作用包括流量控制,规则路由,负载均衡,鉴权,熔断等等;而gateway一般是stateless的,因此可自由弹性…
Golang并发下载多个文件
背景说明 假设有一个分布式文件系统,现需要从该系统中并发下载一部分文件到本地机器。 已知该文件系统的部分节点ip, 以及需要下载的文件fileID列表,并能通过这些信息来拼接下载地址。 其中节点ip列表保存在xx_nod…