2024年8月3日

go-zero 微服务框架集成 gorm 实操

摘要: 目录1.config 的结构体2.配置文件声明3.添加 svcContext4.定义你的相关表或者模型 作为服务,肯定要和数据库交互的,所以在 go-zero 框架里集成 数据库 的操作是必不可少的,今天看看 go-zero 的 rpc 应用如何集成 gorm 框架。 总体的思路分这几步: 定义你的 阅读全文

posted @ 2024-08-03 15:01 进击的davis 阅读(261) 评论(0) 推荐(0) 编辑

2024年8月2日

go-zero 使用 redis 作为 cache 的 2 种姿势

摘要: 在 go-zero 框架内,如在 rpc 的应用 service 中,其内部已经预置了 redis 的应用,所以我们只需要在配置中加入相关字段即可,另外,在 svcContext 声明 redis client 后即可在具体的业务逻辑处理中应用。 但这里有个问题,如我用的是 go-zero 1.5. 阅读全文

posted @ 2024-08-02 21:41 进击的davis 阅读(338) 评论(0) 推荐(0) 编辑

2024年8月1日

golang etcd容器构建与客户端操作踩坑实操

摘要: 目录1.问题说明2. etcd 容器构建3.goalng etcd 客户端实现 1.问题说明 在用 go-zero 实现相关服务时一直报错,从报错信息看应该是 etcd 的容器有问题,应该是之前的构建哪里出错了,所以重新构建 etcd 容器应用。 记录下主要的踩坑情况: 1.连接 etcd 容器没有 阅读全文

posted @ 2024-08-01 11:36 进击的davis 阅读(79) 评论(0) 推荐(0) 编辑

2024年7月31日

go-zero api 调用 rpc 实践

摘要: 目录rpc 部分proto定义rpc 代码生成完成 rpc server 业务逻辑修改 rpc 配置文件启动 rpc serverapi 部分api 定义复制 rpc 生成的代码到 api修改对应代码启动 api server测试及结果postman 发送请求apis erverrpc server 阅读全文

posted @ 2024-07-31 17:53 进击的davis 阅读(225) 评论(0) 推荐(0) 编辑

2024年7月30日

go-zero 自定义中间件的几种方式

摘要: 目录1.通过 api 文件生成并填入具体逻辑定义 api生成对应的模板填充中间件逻辑2.在 server 启动前完成 中间件 的注册定义中间件:注册到 server 中 首先 go-zero 已经为我们提供了很多的中间件的实现,但有时难免有需求需要自定义,这里介绍几种自定义的方法,供参考。 1.通过 阅读全文

posted @ 2024-07-30 18:17 进击的davis 阅读(201) 评论(0) 推荐(0) 编辑

go-zero 微服务框架如何将日志输出到文件

摘要: 在 go-zero 中,默认日志是输出到 控制台 的,项目运行起来后,往往都是输出到日志,今天看看 go-zero 框架的 API 功能的日志配置。 目前网上关于 go-zero 的配置相对少,找了一圈,没找到更多的资料或者案例,而且官方给的 doc 又是一笔带过,不多说,下面看看吧。 我们直接给出 阅读全文

posted @ 2024-07-30 12:32 进击的davis 阅读(283) 评论(0) 推荐(0) 编辑

2024年7月27日

golang 数组转为链表 - 正序和逆序

摘要: 有时候,有这样的场景,我们需要就给定数组将其转为一个链表,通常的思路有两种: 正序 逆序 以下是具体的代码实现和测试函数: package main import ( "fmt" "testing" ) type listNode struct { next *listNode val int } 阅读全文

posted @ 2024-07-27 19:53 进击的davis 阅读(16) 评论(0) 推荐(0) 编辑

2024年7月24日

golang channel 和 mutex 及原子操作 用于并发控制的性能对比

摘要: 场景: 对同个数加 10w 次,看耗费时间,这里没有用 benchmark 测试,在意的请略过。 以下是测试代码: package main import ( "fmt" "sync" "sync/atomic" "testing" "time" ) func TestCount(t *testin 阅读全文

posted @ 2024-07-24 10:09 进击的davis 阅读(70) 评论(0) 推荐(0) 编辑

2024年7月23日

golang 中的并发控制与优雅结束

摘要: 目录并发控制通过 channel 实现信号通知自定义简单的协程池通过现有的 tunny/ants 协程池并发协程的优雅结束for-rangefor-select 提到 golang 并发,就可以联想到下列关键词: goroutine channel sync.WaitGroup sync.Mutex 阅读全文

posted @ 2024-07-23 15:39 进击的davis 阅读(72) 评论(0) 推荐(0) 编辑

2024年7月22日

golang 值接收者和指针接收者

摘要: 代码示例 先看个代码: package main import ( "fmt" "testing" ) func TestValRecv(t *testing.T) { var a animal = dog{"五红犬"} a.eat() a.sleep() var b animal = &dog{" 阅读全文

posted @ 2024-07-22 16:17 进击的davis 阅读(53) 评论(0) 推荐(0) 编辑

2024年7月13日

golang channel 的众多应用场景123

摘要: 目录1.应用场景2.应用场景示例2.1 并发控制2.2 管道 | 范围迭代 | 数据传输2.3 数据传递 -> 生产者-消费者模型2.4 互斥同步2.5 信号通知2.6 定时器 我们知道 go 中有个很重要的数据结构叫做 channel-通道,通过其特性,我们可以完成很多功能,自然就对应到很多应用场 阅读全文

posted @ 2024-07-13 14:48 进击的davis 阅读(191) 评论(0) 推荐(0) 编辑

go 结构体不同的字段顺序对内存的影响

摘要: 这里主要涉及到结构体内存分配的问题,如下测试: package main import ( "fmt" "unsafe" ) func main() { fmt.Printf("A size: %d\n", unsafe.Sizeof(A{})) // 32 fmt.Printf("B size: 阅读全文

posted @ 2024-07-13 10:44 进击的davis 阅读(5) 评论(0) 推荐(0) 编辑

2024年7月11日

golang sync.Pool 的基本原理

摘要: 目录1.源码解读注意开放的 APIPut()Get()pin() && pinSlow()Pool.getSlow(pid int) anyPool结构相关结构体poolCleanup()2.更多 sync.Pool 包寥寥不过300行代码,却可以为我们提供类似对象池的功能,减少了对象的重复创建于销 阅读全文

posted @ 2024-07-11 11:34 进击的davis 阅读(181) 评论(0) 推荐(0) 编辑

2024年7月4日

golang 内存逃逸 你应该知道的知识

摘要: 逃逸分析 目录1.为什么要了解内存逃逸2.什么是逃逸分析3.内存逃逸的影响 - 性能和稳定性4.内存逃逸的原因5.内存逃逸的检测6.如何避免内存逃逸7.内存逃逸代码示例 原文链接: 一文弄懂 Golang 中的内存逃逸 1.为什么要了解内存逃逸 - 内存逃逸是 Go 语言编程中一个特别需要注意的问题 阅读全文

posted @ 2024-07-04 16:15 进击的davis 阅读(86) 评论(0) 推荐(0) 编辑

2024年6月28日

golang 中四种结束子协程的方法

摘要: 在 golang 中,怎样更好的控制子协程的退出呢,这里说说可用的几种方法: channel context sync.WaitGroup runtime.GoExit() 具体见测试代码: package main import ( "context" "log" "math" "math/ran 阅读全文

posted @ 2024-06-28 10:55 进击的davis 阅读(27) 评论(0) 推荐(0) 编辑

2024年4月2日

保姆级教程告诉你 grpc-go 的服务端客户端实现

摘要: 目录1.proto环境准备2.编写 IDL3.生成pb.go, grpc_pb.go4.实现服务端5.实现客户端6.测试 以下示例来自于个人整理,大佬轻喷。 示例的项目目录: 1.proto环境准备 这里的环境准备主要就是以下三点: protoc protoc-gen-go protoc-gen-g 阅读全文

posted @ 2024-04-02 17:40 进击的davis 阅读(674) 评论(0) 推荐(0) 编辑

2024年3月27日

elasticsearch esrally 性能测试实操

摘要: 目录准备数据docker 测试环境准备正式测试 最新在用 esrally 测试 es 的性能,今天把相关操作记录下。本人非专业测试,各位大佬请轻喷。 关于 esrally 的文档,请移步:esrally测试 esrally 是个 elastic 官方的测试工具,可以对 es 进行压力测试。其运行对环 阅读全文

posted @ 2024-03-27 15:08 进击的davis 阅读(312) 评论(0) 推荐(0) 编辑

2024年3月26日

elasticsearch 组件基于单机的多实例集群

摘要: 声明: 本示例主要作为测试用,生产请慎重。 最近公司突发奇想,想让我们搞个单机多实例的 es 的集群,看看其性能咋样。通常来说,es 作为搜索引擎,应用场景不乏日志分析、网络安全、搜索引擎等,有时也会用作日志数据库使用,毕竟其出色的搜索查询性能,不是同等量级 关系型数据库可以比拟的,主要还是因为其 阅读全文

posted @ 2024-03-26 10:15 进击的davis 阅读(111) 评论(0) 推荐(0) 编辑

2024年3月23日

归并排序、快排、堆排序的比较

摘要: 目录算法比较复杂度稳定性应用场景算法实现归并排序快速排序堆排序冒泡排序测试数据量100数据量10w 个人理解,不同见解可以一起讨论。 在日常排序算法中,小数据量下,用啥区别都不大,但是数据量起来后,性能差异就会很大了。 而且在常用的大数据量的排序算法中,主要就是归并、快排和堆排,下面从几个方面一起看 阅读全文

posted @ 2024-03-23 18:04 进击的davis 阅读(74) 评论(0) 推荐(0) 编辑

2024年3月22日

Redis 通过 info 命令查看不同分区的信息

摘要: 目录分区info serverinfo clientsinfo cpuinfo memoryinfo persistenceinfo replicationinfo statsinfo keyspaceinfo cluster 连上 redis 后,通过 info 命令,可以得到以下信息,基本就表示 阅读全文

posted @ 2024-03-22 16:42 进击的davis 阅读(90) 评论(0) 推荐(0) 编辑

导航