如何在 Go Kratos 框架中使用 GORM 事务 ? 如何在 Go Kratos 框架中使用 gorm 事务 ? 准备工作 创建新项目 1234567kratos new helloworldcd helloworld# 拉取项目依赖go mod download# 项目中的 config 等请自行修改 添加事务如果您还不了解 Kratos、 mysql 事务 和 GORM 的话请先了解一下。 data 层承载事务是否比较合适? 其实最简单也 2022-02-25 Go kratos
kratos 框架商城微服务实战之用户服务API (五) Go-kratos 框架商城微服务实战之用户服务 (五) 这篇主要给服务加入链路追踪,完善 consul,并测试 shop 的 http api 接口 文章写的不清晰的地方可通过 GitHub 源码进行查看, 也感谢您指出不足之处,欢迎大佬指教。 注:竖排 … 代码省略,为了保持文章的篇幅简洁,我会将一些不必要的代码使用竖排的 . 来代替,你在复制本文代码块的时候,切记不要将 . 也一同复制进去。 2022-02-17 Kratos 微服务商城 Go kratos
kratos 框架商城微服务实战之用户服务 (四) Go-kratos 框架商城微服务实战之用户服务 (四) 这篇主要编写 HTTP API 端的服务,跟前几篇写的用户服务对接上,主要还是项目的初始化准备工作。写的不清晰的地方可看GitHub 源码 , 也感谢您指出不足之处。 注:竖排 … 代码省略,为了保持文章的篇幅简洁,我会将一些不必要的代码使用竖排的 . 来代替,你在复制本文代码块的时候,切记不要将 . 也一同复制进去。这里所有 import 2022-02-12 Kratos 微服务商城 Go kratos
kratos 框架商城微服务实战之用户服务 (三) Go-kratos 框架微服务商城实战之用户服务 (三)这篇主要编写第一篇写的用户服务的 rpc 接口。文章写的不清晰的地方可通过 GitHub源码 查看, 也感谢您指出不足之处。 注:横排 … 为代码省略,为了保持文章的篇幅简洁,我会将一些不必要的代码使用横排的 . 来代替,如果你在复制本文代码块的时候,切记不要将 . 也一同复制进去。 新增 RPC 接口 注:这里的目录指的是 kratos 2022-02-11 Kratos 微服务商城 Go kratos
kratos 框架商城微服务实战之用户服务 (二) Go-kratos 框架商城微服务实战之用户服务 (二) 这篇主要编写单元测试。文章写的不清晰的地方可通过 GitHub源码 查看, 也感谢您指出不足之处。 注:横排 … 为代码省略,为了保持文章的篇幅简洁,我会将一些不必要的代码使用横排的 . 来代替,如果你在复制本文代码块的时候,切记不要将 . 也一同复制进去。 准备工作本文主要使用 Ginkgo 、gomock 、Gomega 工具来实现单 2022-02-11 Kratos 微服务商城 Go kratos
Mac 通过 Docker 安装 Elasticsearch 通过 Docker 安装 Elasticsearch 安装 docker每个人使用的设备不同这里就不演示了。去到 Docker 官网 找到自己属于自己设备的安装包,下一步下一步就 OK 了。 准备工作本人使用的的 MacBook ,流程如下,不过其他电脑也大同小异,无非就是目录不同。 新建 es 所需的目录 1234567891011mkdir -p ~/docker/elasticsearc 2022-02-11 Docker ES Elasticsearch
kratos 框架商城微服务实战之用户服务(一) kratos 微服务框架商城实战之用户服务(一) 推荐看一下Kratos 官方文档 更加流畅观看此文章,本机器这里已经安装好了kratos、proto、wire、make 等所需的命令工具 准备工作初始化项目目录进入自己电脑中存放 Go 项目的目录, 新建 kratos-shop/service 目录并进入到新建的目录中, 执行 kratos new user 命令并进入 user 目录, 执 2022-02-07 Kratos 微服务商城 Go kratos
Mac 通过 Docker 安装 RocketMQ 安装 安装好 docker 之后,在 mac 上新建目录 12345678mkdir /Users/gyl/docker/rocketmq/datacd /Users/gyl/docker/rocketmq/datamkdir logs mkdir storemkdir -p broker/conf mkdir -p broker/logs mkdir -p broker/storevim 2022-01-28 RocketMQ Docker RocketMQ
Go 库存扣减的几种实现 Go 库存扣减的几种实现方法Go Mutex 实现 这里使用了 grpc、proto、gorm、zap、go-redis、go-redsync 等 package 123456789101112131415161718192021222324252627282930var m sync.Mutexfunc (*InventoryServer) LockSell(ctx context.Conte 2022-01-17 Go
TCP 粘包 什么是 TCP 粘包 粘包问题是指当发送两条消息时,比如发送了 ABC 和 DEF,但另一端接收到的却是 ABCD,像这种一次性读取了两条数据的情况就叫做粘包(正常情况应该是一条一条读取的),正确读取 ABC 和 DEF 两条信息。 当发送的消息是 ABC 时,另一端却接收到的是 AB 和 C 两条信息,像这种情况就叫做半包。 为什么会有粘包和半包? 这是因为 TCP 是面向连接的传输协议,TC 2021-12-17 TCP socket