2016年国庆节(10月1日)开始接触 Go 语言,记录一下它的 版本发布 与 TIOBE 排名:
转载
2017-03-10 17:08:00
139阅读
2评论
在前一篇介绍中实现了一个工作队列,它假设队列中的每一个任务都只会被分发到一个工作者进行处理。在本篇中,我们尝试将同一个消息发送给多个消费者进行处理,这就是广为人知的发布/订阅模式。本篇通过搭建一个日志系统来阐述发布/订阅模式,它包含两部分内容:一个用于产生日志消息的程序,另一个用于接收和打印消息。
在这个日志系统中,每一份接收者程序的拷贝都能收到消息,因此我们可以轻易地使用一个程序将日志写入磁盘,
转载
2023-07-02 19:54:12
95阅读
什么是撤回?我们使用版本机制将 Go Module 发布到 Github。假设其中一个模块带着错误并以新的版本号 (v0.1.0) 被发布到了产品中。与此同时,我们发现了这个错误,并发布了一个新的修复版本 (v0.2.0)。我们不能修改 v0.1.0 中的代码,可能有些人已经在使用它们了。在此之前我们没有好办法去通知用户不要使用这个版本。Go 1.16 撤回功能通过将版本标记为 retract 来
转载
2024-05-28 22:20:30
75阅读
背景:redis集群执行lua脚本时不同于单机情况,lua脚本在执行时需要确保key在同一个node节点上,换句话说也就是需要保证 slot=crc16%16384,通过对key进行hash运算,其slot会分布在同一个node节点所属范围。解决思路:为了使key都落在一个node节点上可以通过添加 {} hashTag来实现。原理:相同的hashtag被分配到相同的节点,相同的槽。
hash算法
转载
2023-05-25 11:22:06
224阅读
前言最近突然发现golang更新版本1.18了, 于是迫不及待的来看看这个版本加了些什么新特性. 没准就有之前困扰很久的问题, 在新版本被官方解决了呢.先简单概述一下都有些什么变化, 后面再细说:增加泛型的支持系统库方法增加修复 bug另外, 像"系统内核更新"这种, 我们在实际开发中根本就无需关心的内容, 我就没有列出, 完整更新内容到官网去看吧. 1.18版本的官方说明链接: https://
转载
2024-05-02 21:31:04
64阅读
文章目录1.前言2.新建仓库3. 构建项目和代码4.提交和发布代码5.引入和使用包 1.前言我们平时在Golang项目的编码过程中,除了经常通过import使用官方提供的依赖包,也经常通过go get -u github.com/xxx/xxx命令下载第三方包来使用。那么我们如何将自己封装的包开源发布出去,让所有人都可以像使用其他三方包一样使用我们的包呢?2.新建仓库首先在我们的 Github
转载
2024-05-07 23:05:08
236阅读
Context简介: Context由Google官方开发,在1.7版本引入, 在Go服务器程序中,每个请求都会有一个goroutine去处理。然而,处理程序往往还需要创建额外的goroutine去访问后端资源,比如数据库、RPC服务等。由于这些goroutine都是在处理同一个请求,所以它们往往需要访问一些共享的资源,比如用户身份信息、认证
转载
2024-10-29 16:55:01
49阅读
## Docker发布Golang程序
> 本文介绍如何使用Docker发布Golang程序。我们将使用Docker容器化Golang应用程序,并演示如何构建和运行容器以及将应用程序发布到容器中。此外,我们还将介绍如何使用Docker Compose简化多个容器的管理。
### Docker简介
Docker是一个开源的容器化平台,它可以将应用程序及其依赖项打包到一个称为Docker容器的独
原创
2023-08-26 05:19:27
111阅读
# Golang Redis发布订阅
## 简介
Redis是一种高性能的键值缓存数据库,而发布订阅(Pub/Sub)是Redis提供的一种消息传递机制。本文将介绍如何使用Golang与Redis进行发布订阅。
## 什么是发布订阅
发布订阅模式是一种消息传递模式,它包括两个角色:发布者和订阅者。发布者将消息发布到指定的频道,而订阅者则可以订阅一个或多个频道并接收发布者发布的消息。
发布
原创
2023-09-12 15:44:22
214阅读
一、背景 业务中经常会有这样的场景: 到期后自动执行指定操作; 查询某个任务是否完成,未完成等待一定时间再次查询; 回调通知,当回调失败时,等待后重试;等等还有其他很多类似的场景。 很多时候我们会直接通过一个本地定时器来帮我们完成这个任务。如果我们的系统是多实例分布式的,本地定时器就会面临很多问题,如:怎么保证重复处理的问题;统一管控的问题等等。面
转载
2023-06-05 15:38:19
167阅读
WebSocket是什么WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议。其最大特点之一就是:服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话。开发前期准备(默认已经安装了golang语言环境)我这里通过两个库来实现整个WebSocket的开发,这两个库分别是gin和gorilla/websocket。这里有两种方法来获取这两个库,其一就是
转载
2023-09-15 23:17:07
187阅读
目录结构如下myproject
+-- src
|-- myapp
| +-- myapp.go
+-- mylib
&n
原创
2017-03-02 10:56:42
1223阅读
文章目录一 GO语言简介二 包三 基本语法3.1 书写规范3.2 函数3.3 关键字3.3.1 `type`3.3.2 `const `3.3.3 `var`3.3.4 `defer`3.3.5 `if`3.3.6 `switch`3.3.7 `for`3.4 数据类型3.4.1 指针3.4.2 `string`3.4.3 数组3.4.4 切片3.4.5 可变参数3.4.6 `map`3.5 面
基本介绍 输入流和输出流 os.File 封装所有文件相关操作,File 是一个结构体 打开文件和关闭文件使用的函数和方法 案列演示 读文件操作应用实例 1)读取文件的内容并显示在终端(带缓冲区的方式),使用 os.Open, file.Close, bufio.NewReader(), reader.ReadString 函数和方法
# 在Docker中构建指定Golang版本的应用
在现代开发中,Docker是一个强大的工具,可帮助开发者在隔离的环境中构建和运行应用。本文将介绍如何在Docker中构建Golang应用,并指定特定的Golang版本。以下是整个流程的概览。
## 流程步骤
| 步骤 | 描述 |
|------|------------------
原创
2024-09-29 06:19:30
141阅读
一直想实现一个go语言版本的ntp客户端程序,今天终于鼓捣出来了,还是在家里学习效
原创
2022-11-19 09:44:46
383阅读
Go 1.0[1] - 2012 年 3 月: 随着 Go 第一个版本发布的还有一份兼容性说明文档[2] 。该文档承诺,Go 的未来版本会尽可能确保向后兼容性,不会破坏现有程序。 For instance, code that runs under Go 1.2 should be compatib
原创
2023-04-19 20:28:55
1776阅读
Go 1.0[1] - 2012 年 3 月: 随着 Go 第一个版本发布的还有一份兼容性说明文档[2] 。该文档承诺,Go 的未来版本会尽可能确保向后兼容性,不会破坏现有程序。
原创
2023-04-21 16:37:41
1040阅读
g2 是golang 版的gearman 实现,包含了server (支持leveldb,以及metrics)、client 代码、worker 代码 使用上还是很方便的,同时部署也比较简单,结合docker 我们可以实现快速的部署 使用go mod 进行包管理 docker-compose文件 v
原创
2021-07-19 15:39:33
242阅读
golang 通过go get | go mod download下载安装包安装完golang后,输入go env可以看到GOPATH="/home/zhongzhanhui/go"
GOROOT="/usr/local/go"
GOBIN=""1.go get参考http://c.biancheng.net/view/123.htmlgo get 命令可以借助代码管理工具通过远程拉取或