草庐IT

微服务追踪SQL(支持Isto管控下的gorm查询追踪)

效果图SQL的追踪正确插入到微服务的调用链之间详细记录了SQL的执行内容和消耗时间搜索SQL的类型多线程(goroutine)下的追踪效果在Kubernetes中部署微服务后,通过Istio管控微服务之间的流量,Istio默认会将微服务之间的调用关系生成追踪,放入追踪收集器。但他不支持更细化的SQL操作,比如执行了哪些SQL,每条SQL消耗多长时间。为此,我写了一个简单的支持gorm查询并生成追踪的插件:istio-gorm-tracing微服务追踪gorm插件在kubernetes上使用Istio管控微服务后,微服务之间的调用会自动上传到Jaeger的收集器。但只能追踪到服务层,这是我不能接

微服务追踪SQL(支持Isto管控下的gorm查询追踪)

效果图SQL的追踪正确插入到微服务的调用链之间详细记录了SQL的执行内容和消耗时间搜索SQL的类型多线程(goroutine)下的追踪效果在Kubernetes中部署微服务后,通过Istio管控微服务之间的流量,Istio默认会将微服务之间的调用关系生成追踪,放入追踪收集器。但他不支持更细化的SQL操作,比如执行了哪些SQL,每条SQL消耗多长时间。为此,我写了一个简单的支持gorm查询并生成追踪的插件:istio-gorm-tracing微服务追踪gorm插件在kubernetes上使用Istio管控微服务后,微服务之间的调用会自动上传到Jaeger的收集器。但只能追踪到服务层,这是我不能接

Gorm 实现无限树形菜单

原文链接:https://www.zhoubotong.site/post/91.html通常树形菜单的实现基本就是递归调用,大部分场景毕竟这种数据不多,性能倒是并不突出,下面给个demo,有兴趣的朋友可以看看:新建一个city表:CREATETABLE`city`(`id`intNOTNULLAUTO_INCREMENT,`pid`intNOTNULLDEFAULT'0'COMMENT'父级别id',`name`varchar(255)CHARACTERSETutf8mb4COLLATEutf8mb4_general_ciNOTNULLDEFAULT'0'COMMENT'名称',PRIMAR

Gorm 实现无限树形菜单

原文链接:https://www.zhoubotong.site/post/91.html通常树形菜单的实现基本就是递归调用,大部分场景毕竟这种数据不多,性能倒是并不突出,下面给个demo,有兴趣的朋友可以看看:新建一个city表:CREATETABLE`city`(`id`intNOTNULLAUTO_INCREMENT,`pid`intNOTNULLDEFAULT'0'COMMENT'父级别id',`name`varchar(255)CHARACTERSETutf8mb4COLLATEutf8mb4_general_ciNOTNULLDEFAULT'0'COMMENT'名称',PRIMAR

gorm操作sqlite3,高并发读写如何避免锁库?

1.场景这两天一直被这个sqlit3困扰,起因是项目中需要有这样一个中间,中间件承担着API角色和流量转发的角色,需要接收来自至少300个agent的请求数据,和健康检测的请求。所以当即想到用go来实现,因为数据教训,不考虑使用pg大型数据库,所以就选择了轻量化的sqlite数据库。程序很快就开发完了。上线,运行几个节点,数据读写都未发生异常,但是当测试数据到达一定量级后,会出现databaseislocked错误。查了些资料,大意是sqlite并发读支持不错,但是并发写就不太友好,所以有了此次的实践。ps:部分代码来自于chatGPT,不得不说chatGPT太香了。在Gorm中操作SQLit

gorm操作sqlite3,高并发读写如何避免锁库?

1.场景这两天一直被这个sqlit3困扰,起因是项目中需要有这样一个中间,中间件承担着API角色和流量转发的角色,需要接收来自至少300个agent的请求数据,和健康检测的请求。所以当即想到用go来实现,因为数据教训,不考虑使用pg大型数据库,所以就选择了轻量化的sqlite数据库。程序很快就开发完了。上线,运行几个节点,数据读写都未发生异常,但是当测试数据到达一定量级后,会出现databaseislocked错误。查了些资料,大意是sqlite并发读支持不错,但是并发写就不太友好,所以有了此次的实践。ps:部分代码来自于chatGPT,不得不说chatGPT太香了。在Gorm中操作SQLit

使用OpenCensus跟踪Gorm查询

Gorm作为Go语言中很常用的一个ORM库,功能非常强大。应用程序的大量时间都花在通过gorm与数据库连接上面,所以我们想在链路跟踪中获得更好的视图。幸运的是,Gorm有完美的钩子,我们可以通过CallbacksAPI将跟踪功能注入到数据库处理当中。CallbacksAPI允许我们为Gorm提供在查询生命周期的特定部分中执行相应的函数,或者允许您在传统的中间件方法中更改查询行为,或者在我们的例子中,为可观察性提取数据。funcbeforeQuery(scope*gorm.DB){//dostuff!}db.Callback().Create().Before("gorm:query").Reg

使用OpenCensus跟踪Gorm查询

Gorm作为Go语言中很常用的一个ORM库,功能非常强大。应用程序的大量时间都花在通过gorm与数据库连接上面,所以我们想在链路跟踪中获得更好的视图。幸运的是,Gorm有完美的钩子,我们可以通过CallbacksAPI将跟踪功能注入到数据库处理当中。CallbacksAPI允许我们为Gorm提供在查询生命周期的特定部分中执行相应的函数,或者允许您在传统的中间件方法中更改查询行为,或者在我们的例子中,为可观察性提取数据。funcbeforeQuery(scope*gorm.DB){//dostuff!}db.Callback().Create().Before("gorm:query").Reg

想早点下班?试试 Aorm 库吧,更方便的进行 Go 数据库操作

使用go进行项目开发,大多数人会使用gorm,但是gorm有一些缺点,我无法接受。于是开发出了aorm,目前能有满足日常开发需求,并且完善了使用文档,希望能够帮助到大家。​AormGolang操作数据库如此简单给个⭐吧,如果这个项目帮助到你?特性[x]代码简洁,高性能[x]支持MySQL数据库[x]支持空值查询[x]支持自动迁移[X]支持SQL拼接[]支持其他数据库,例如MSSQL?如何使用​​导入​​​​定义数据结构​​​​连接数据库​​​​自动迁移​​​基本的增删改查​​​增加一条记录​​​​获取一条记录​​​​获取多条记录​​​​更新记录​​​​删除记录​​​高级查询​​​查询指定表​​