Go

go-zero微服务实战系列(十一、大结局)

本篇是整个系列的最后一篇了,本来打算在系列的最后一两篇写一下关于k8s部署相关的内容,在构思的过程中觉得自己对k8s知识的掌握还很不足,在自己没有理解掌握的前提下我觉得也很难写出自己满意的文章,大家看了可能也会觉得内容没有干货。我最近也在学习k8s的一些最佳实践以及阅读k8s的源码,等待时机成熟的时 ... »

kevinwan Go

用go把博客园博客下载到本地

找到cookie 直接浏览器F12 巴拉巴拉 直接上代码 用hexo建静态博客的话,go文件在\source\_posts目录下,run之后将会在此目录下生成cnblogs文件夹,以博客id作为md文件名,然后在\source\下生成一个cnblogs目录存放博客里面的图片文件,图片文件我使用htt ... »

wangpengzong

go-zero微服务实战系列(十、分布式事务如何实现)

在分布式应用场景中,分布式事务问题是不可回避的,在目前流行的微服务场景下更是如此。比如在我们的商城系统中,下单操作涉及创建订单和库存扣减操作两个操作,而订单服务和商品服务是两个独立的微服务,因为每个微服务独占一个数据库实例,所以下单操作就涉及到分布式事务问题,即要把整个下单操作看成一个整体,要么都成 ... »

kevinwan Go

gnet: 一个轻量级且高性能的 Go 网络框架 使用笔记

一个偶然的机会接触到了golang,被它的高并发传说所吸引,就开始学这门语言,越学感觉越有意思^_^ 注册了博客园这么多年,第一次写东西,年纪大了,脑子不好使了,就得写下来,记下来,为了自己以后查阅,同时也分享给golang的爱好者。 gnet 在CSDN上的介绍如下:https://blog.cs ... »

ericliangchina

go语言学习笔记-初识Go语言

Go语言是怎样诞生的? Go语言的创始人有三位,分别是图灵奖获得者、C语法联合发明人、Unix之父肯·汤普森(Ken Thompson)、Plan 9操作系统领导者、UTF-8编码的最初设计者罗伯·派克(Rob Pike)、以及Java的HotSpot虚拟机和Chrome浏览器的JavaScript ... »

go培训课程都学什么?xorm框架学习系列(二):xorm结构体映射规则和表操作

上节内容我们学习了基本的xorm框架的知识和基础配置的相关信息。本节课内容我们继续学习相关的知识和相关操作。 名称映射规则 名称映射规则主要负责结构体名称到表名和结构体field到表字段的名称映射。 在xorm框架中由core.IMapper接口的实现者来管理,xorm内置了三种IMapper实现:core.SnakeMapper,core.SameMapper和core.GonicMapper。 »

Go 操作文件及文件夹 os.Mkdir及os.MkdirAll两者的区别

os.MkdirAll 创建多级目录 案例 创建单个目录 err:=os.Mkdir("./dirname",os.ModePerm) if err!=nil{ fmt.Println(err) }   创建多级目录 err:=os.Mkdir("./dirname",os.ModePerm) if err!=nil{ fmt.Println(err) }   根据日期创建文件 »

GO获取随机数

  使用的"math/rand"包。基本随机数 a := rand.Int() b := rand.Intn(100) //生成0-99之间的随机数 fmt.Println(a) fmt.Println(b) 可以生成随机数,但是数值不会变。生成可变随机数 //将时间戳设置成种子数 rand.Seed(time.Now().UnixNano()) //生成10个0-99之间的随机数 for i »

go mod路径引入并代码提示

  如果做php开发基本了解依赖包引入的模式,常见新建项目composer init开始,然后执行相应命令引入对应的包即可。   现在切换学习go的情况也是同样,这里再1.14版本后更多参照上面引入并统一管理依赖包的问题,是使用到go.mod,如下图所示:        不过也会遇到类似情况,go mod 引入了,并且通过go env查询环境配置路径也没问题,代码也能执行成功,但是想要使用引入的该 »

拾遗:Go 单元测试

概念 回归测试:是指修改了旧代码之后,重新进行测试,以确保修改没有引入新的错误或导致其它代码产生错误; 单元测试:是指对软件中的最小可测试单元(单个函数或类)进行检查和验证 Test-Driven Development(TDD):测试驱动开发,提倡先编写测试代码,再进行开发 先编写产品函数的框架,然后编写测试函数,针对产品函数的功能编写测试用例,然后编写产品函数的代码,每写一个功能点都运行测 »

GO语言学习:简单源码入门

  在工作区目录下使用命令vim demo1.go,进入代码编辑模式,在其中写入以下代码:     package main                        //声明包名     import "fmt"                        //引入包     func main(){       fmt.Println("Hello,world!")            »

一.go语言 struct json相互转换

1.Go语言自带JSON转换库  encoding/json 2.把对象转换为json的方法为 json.Marshal(),其函数原型为: func Marshal(v interface{}) ([]byte, error) { e := newEncodeState() err := e.marshal(v, encOpts{escapeHTML: true}) if »

Sublime Text 3 搭建Go开发环境(Windows)

一、安装GO 如果已经环境已经配置好,这一步省略...、1.下载并安装go sdk 2.配置环境变量 (1). 新建 变量名:GOBIN 变量值 :F:\Go\bin (2). 新建 变量名:GOARCH 变量值:386         如果是64位系统 变量值为amd64 (3). 新建 变量名:GOOS 变量值:windows (4). 新建 变量名: GOROOT 变量值:F:\G »

go-zero微服务实战系列(九、极致优化秒杀性能)

上一篇文章中引入了消息队列对秒杀流量做削峰的处理,我们使用的是Kafka,看起来似乎工作的不错,但其实还是有很多隐患存在,如果这些隐患不优化处理掉,那么秒杀抢购活动开始后可能会出现消息堆积、消费延迟、数据不一致、甚至服务崩溃等问题,那么后果可想而知。本篇文章我们就一起来把这些隐患解决掉。 批量数据聚 ... »

kevinwan Go

Go 单例模式[个人翻译]

  原文地址:http://marcio.io/2015/07/singleton-pattern-in-go/     最近几年go语言的增长速度非常惊人,吸引着各界人士切换到Go语言。最近有很多关于使用Ruby语言的公司切换到Go、体验Go语言、和Go的并行和并发解决问题的文章。   过去10年里,Ruby on Rails已经让众多的开发者和初创公司快速开发出强大的系统,大多数时候不需要担心 »

vs code的Go Live不出现

1.检查一下你的文件是不是html文件,只有html文件才能用go live打开;js文件不可以 2.不要用vs code单独打开一个html文件,把包含它的整个文件夹打开 3.检查一下Live Server的版本,按一下Alt+o快捷键 »

go 时间戳和时间格式的相互转换

package main import( "fmt" "time" ) func main() { datetime := "2015-01-01 00:00:00" //待转化为时间戳的字符串 //日期转化为时间戳 timeLayout := "2006-01-02 15:04:05" //转化所需模板 loc, _ := time. »

Golang 加速 Go module 加速 Goproxy

The most trusted Go module proxy in China. https://goproxy.cn Go 1.13 and above (RECOMMENDED) Open your terminal and execute $ go env -w GO111MODULE=on $ go env -w GOPROXY=https://goproxy.cn,direct d »

go安装配置 Win10下安装Go开发环境

https://www.cnblogs.com/wt645631686/p/8124626.html   关于Go语言有多么值得学习,这里就不做介绍了,既然看了这篇文章,想必是对有学习意向。 这里是在Windows下安装Go环境,去中文社区的下载栏目,https://studygolang.com/dl 找到Microsoft Windows,我是用的是64位系统。 下载完成之后,一步步安 »