收藏本版 |訂閲

Go语言论坛 今日: 0|主題: 602|排名: 87 

  • 漏桶、令牌桶限流的Go语言实现
    本文首发于我的个人博客:liwenzhou.com,更多更详细的Go语言项目实战内容就在liwenzhou.com。 限流 限流又称为流量控制(流控),通常是指限制到达系统的并发请求数。 我们生活中也会经常遇到限流的场景,比如:某景区限制每日进入景区的游客数量为8万人;沙河地铁站早高峰通过站外排队逐一放行的方式限制同一时间进入车站 ...
    0125 橄榄树林 发表于 2020-9-14 Go语言论坛
  • go switch的用法
        最近一直在写go, switch说实话用的不算多。但是今天用了下发现go的switch可真不太一样啊。 无需break func main() { i := 0 switch i { case 0: fmt.Println("0000000000") fmt.Println("0") case 1: fmt.Println("1111111111") fmt.Println("1") case 2: fmt.Println("2222222222") ...
    0118 中福画业 发表于 2020-9-14 Go语言论坛
  • Go中sync.map使用小结
    sync.map 前言 深入了解下 查看下具体的实现 Load Store Delete LoadOrStore 总结 流程图片 参考 sync.map 前言 Go中的map不是并发安全的,在Go1.9之后,引入了sync.Map,并发安全的map。 深入了解下 对于map,我们常用的做法就是加锁。 对于sync.Map这些操作则是不需要的,来看下sync.Map的特点: 1、以空间换效率 ...
    080 肖依彤 发表于 2020-9-13 Go语言论坛
  • 使用Go env命令设置Go的环境
    1 前言 在进行Go开发的时候,设置Go的环境变量信息是必须的。下面介绍windows和Linux,以及Go自身提供的命令进行设置的形式 2 设置 2.1 Linux的设置 In Linux or macOS, you can execute the below commands.(在Linux或者macOS,你可以执行下面的命令) # Enable the go modules feature export GO111MODULE=on # Set ...
    096 医者行喀布尔 发表于 2020-9-11 Go语言论坛
  • Go语言的原子操作atomic
    atomic 原子操作 Go中原子操作的支持 CompareAndSwap(CAS) Swap(交换) Add(增加或减少) Load(原子读取) Store(原子写入) 原子操作与互斥锁的区别 atomic.Value Load Store 总结 参考 atomic 原子操作 原子操作即是进行过程中不能被中断的操作,针对某个值的原子操作在被进行的过程中,CPU绝不会再去进行其他的 ...
    032 夏雨初晴 发表于 2020-9-10 Go语言论坛
  • go select的用法
    golang中的select语句格式如下 select { case <-ch1: // 如果从 ch1 信道成功接收数据,则执行该分支代码 case ch2 <- 1: // 如果成功向 ch2 信道成功发送数据,则执行该分支代码 default: // 如果上面都没有成功,则进入 default 分支处理流程 }    可以看到select的语法结构 ...
    080 伟哥的伟伟哥的哥 发表于 2020-9-7 Go语言论坛
  • GitHub 热点速览 Vol.35:Let's Go,Rust 大放异彩
    摘要:语言之争,一直存在于各类社群,不论是单个编程语言的交流群,亦或是 NoSQL、云开发等技术群,总能看到“要不要换 Go”、“Rust 比 C++ 更强”的影子。撇开语言特性,本周的热点趋势周榜上 Rust 和 Go 开发的项目表现都很良好,比如,搜索引擎:MeiliSearch,虽然 ES 在搜索这块独占鳌头,但是 MeiliSearch 凭借它 ...
    058 菲鸟欢 发表于 2020-9-1 Go语言论坛
  • Go | Go 语言打包静态文件以及如何与Gin一起使用Go-bindata
    Go | Go 语言打包静态文件以及如何与Gin一起使用Go-bindata 系列文章目录 第一章 Go 语言打包静态文件以及如何与Gin一起使用Go-bindata Table of Contents 系列文章目录 前言 一、go-bindata是什么? 二、使用步骤 1. 安装 2. 使用 3. 读取文件 三、和 Gin 一起使用 1. 使用 go-bindata-assetfs 进行打包 2. 安装 g ...
    068 田行健中 发表于 2020-8-22 Go语言论坛
  • go语言gRPC系列(三) - 使用grpc-gateway同时提供HTTP和gRPC服务
    1. gRPC提供HTTP服务 1.1 存在的意义 1.2 代码示例 1.3 使用postman尝试调用 1.4 gRPC客户端代码调用 2. 使用grpc-gateway同时提供HTTP和gRPC服务 2.1 前言 2.2 安装 2.3 目录结构 2.4 示例代码 2.4.1 编写proto描述文件:proto/hello_http.proto 2.4.2 编译proto 2.4.3 实现HTTP服务端 2.4.4 实现gRPC服务端 2.4.5 ...
    0105 志英舅 发表于 2020-8-15 Go语言论坛
  • Win10系统下设置Go环境变量
    前言 本人安装Window系统下的Go语言的相关信息如下: Go语言版本:go1.14.6 安装包:go1.14.6.windows-amd64.msi 安装路径:D:\Program Files\Go Win10系统下配置Go语言环境变量 打开Win10下的环境变量设置界面 右键我的电脑->属性->高级系统设置->环境变量。 它有用户变量和系统变量。两者的区别是用户变量下配置只对 ...
    055 等娘娘烘焙 发表于 2020-8-13 Go语言论坛
  • go语言gRPC系列(一) - gRPC入门
    1. 前言 2. gRPC与Protobuf简介 3. 安装 4. 中间文件演示 4.1 编写中间文件 4.2 运行protoc命令编译成go中间文件 5. 创建gRPC服务端 5.1 新建Product.protoc 5.2 运行protoc命令 5.3 实现RegisterProdServiceServer接口 5.4 准备工作完成,创建main函数将服务端跑起来 6. 创建gRPC客户端 6.1 拷贝Product.pb.go到客 ...
    033 云之鹰 发表于 2020-8-11 Go语言论坛
  • go微服务系列(一) - go micro入门
    1. 什么是go micro 1.1 go micro作用 1.2 go micro架构组成 2. go micro入门 3. 结合consul进行服务注册/发现 3.1 consul的安装 3.2 服务注册代码示例 3.2 服务发现代码示例 1. 什么是go micro 1.1 go micro作用 它是一个可插入的RPC框架,用于在Go中编写微服务。开箱即用,您将收到: 服务发现: 应用程序自动注册 ...
    0124 亮剑天涯 发表于 2020-8-9 Go语言论坛
  • GO语言获取文件的大小
    在项目中,我们可能会需要获取一个文件的大小,在Go语言中,有很多方法来获取一个文件的大小 Read字节方式 func main() { file,err:=os.Open("water") if err ==nil { sum := 0 buf:=make([]byte,2014) for { n,err:=file.Read(buf) sum+=n if err== ...
    093 楠山烟酒 发表于 2020-8-5 Go语言论坛
  • Go操作Redis
    简介 Remote Dictionary Server, 翻译为远程字典服务, Redis是一个完全开源的基于Key-Value的NoSQL存储系统,他是一个使用ANSIC语言编写的,遵守BSD协议,支持网络、可基于内存的可持久化的日志型、Key-Value数据库,并提供多种语言的API. 它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Hash) ...
    038 纯爱战士 发表于 2020-7-31 Go语言论坛
  • Go语言如何将json时间格式化为dateime格式
    目录问题一、示例:原生time.Time的json输出为UTC格式二、自定义结构体Datetime(缺点是需要手动转换类型)三、自定义结构体Datetime+自定义临时结构体(最佳方案) 问题 我们知道go语言的time.Time类型在转为json的时候,输出的是UTC的时间,而我们绝大部分时候使用的都是Datetime格式。 其实解决问题的核心就是使用自定义 ...
    090 冬季很冷 发表于 2020-7-31 Go语言论坛
  • Go操作Elasticsearch
    安装ES 拉取es到本地 docker pull docker.elastic.co/elasticsearch/elasticsearch:7.3.0 创建一个网络 docker network create esnet 启动容器 docker run --name es -p 9200:9200 -p 9300:9300 --network esnet -e "discovery.type=single-node" bdaab402b220 安装ElisticHD docker run -p 9800:9800 -d --link es:de ...
    0119 刘启洪 发表于 2020-7-28 Go语言论坛
  • go操作elasticsearch
    简介:   es包地址:https://github.com/olivere/elastic/ 这个版本被广泛使用,我们也用这个。   注意:es版本不同,要导入不同的包。6.0版本导入“github.com/olivere/elastic”   连接es: var host = "http://xxx.com:9201" func es_init() { client, err := elastic.NewClient( elastic.SetURL(hos ...
    037 子航 发表于 2020-7-21 Go语言论坛
  • Go RPCX学习:快速入门
    RPCX的产生 rpcx是一个类似阿里巴巴 Dubbo 和微博 Motan 的分布式的RPC服务框架,基于Golang net/rpc实现。 谈起分布式的RPC框架,比较出名的是阿里巴巴的dubbo,包括由当当网维护的dubbox。不知道dubbo在阿里的内部竞争中败给了HSF,还是阿里有意将其闭源了,官方的代码使用的spring还停留在2.5.6.SEC0 ...
    030 月浩有约 发表于 2020-7-18 Go语言论坛
  • go操作redis
    golang操作redis主要有两个库,go-redis和redigo。两者操作都比较简单,区别上redigo更像一个client执行各种操作都是通过Do函数去做的,redis-go对函数的封装更好,相比之下redigo操作redis显得有些繁琐。但是官方更推荐redigo,所以项目中我使用了redigo。 redigo的使用入门可以去查godoc:http://godoc.org/github.com/ga ...
    081 麻芝酱 发表于 2020-7-12 Go语言论坛
  • go template使用
    以text/template为例, 而html/template的接口与前者一样,不再缀述。 模板文件一般由.tmpl或.tpl为后缀。 一些名词 dot:用表示.,相当于一个变量,保存着传进来的值,可以改变 pipeline:从字面上看,有点像管道|,但从文档上看,实际上指的是一切取值操作,包括{{ . }}、{{ $name }},而|与unix中的一样:作为函数的最 ...
    094 不思量 发表于 2020-7-8 Go语言论坛
  • 下一頁 »

    快速發帖

    還可輸入 180 個字符
    您需要登錄後才可以發帖 登錄 | 立即注册

    本版積分規則

    相关侵权、举报、投诉及建议等,请发 E-mail:qiongdian@foxmail.com

    Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

    在本版发帖返回顶部