V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  qloog  ›  全部回复第 1 页 / 共 23 页
回复总数  454
1  2  3  4  5  6  7  8  9  10 ... 23  
@asmoker 没有,主要讲解什么的?给大家科普下
不不,还是有很多不一样的地方
@Corrots 也不是这么绝对,看服务的流量大小,如果小可以全开,大的话就像你说的,需要采样了,不然成本太高
又没出来,继续补,两种,看哪种可以出来:

https://i.imgur.com/CGezrDx.png

[img]https://i.imgur.com/wno5Xsi.png[/img]
上面的图片没显示出来,补个图

https://imgur.com/CGezrDx
一般使用了 opentelemetry 协议+ 实现了协议的框架都可以做到。

目前主流协议: https://opentelemetry.io/
使用的框架,比如: https://github.com/go-eagle/eagle

框架只要把一些常用组件支持 opentelemetry 协议即可,比如
- HTTP Client
- HTTP Server
- 日志
- 数据库
- Redis
- 函数追踪
- gRPC

当前服务和上下游服务都接口后即可追踪到,示例:
![接口请求调用详情]( https://go-eagle.org/assets/images/api-trace-detail-c0cb34515a66c82f62cb366b16b46d91.png)

更多可以查看: https://go-eagle.org/docs/component/tracing/component
我用 https://github.com/go-eagle/eagle , 用自己熟悉的才是最好的
15 天前
回复了 ForkNMB 创建的主题 Linux Linux 定时任务添加
一直以为只有 crontab, 原来还有 systemd timer , 以后也用 systemd timer
使用 github.com/pkg/errors

1.业务最底层,比如 db,api, rpc 等等,使用 errors.Wrap(...) - 携带堆栈
2.中间层,errors.WithMessage(err, "your custom msg...") - 携带本层的自定义信息
3.最上层打印错误日志,log.Errorf("xxxxx, err: %w", error) - 打印日志

PS: 中间使用 errors.WithMessage 而不是 errors.Wrap ,是未了避免最上层打印太多的堆栈信息,只在最底层携带一次堆栈信息
@javazero 刚换到 GitHub dark
40 天前
回复了 ClearMoki 创建的主题 iDev 想对于技术选型学习上有一些问题请教
如果是开发自己的应用 或者 新项目,是不用 Swift 就可以了?
使用 wire 的一个完整性 project: https://github.com/qloog/go-wire-example 示例说清楚了 wire 的大概用法
@qloog 补充 内部 gorm 和 开源版本基本一致,不同的是内部版本只是更多适配了他们自己的基建
目前用的最多的还是 gorm, 也了解过 sqlc (基于 sql 生成代码)

如楼上上上...所说, gorm 作者在字节,经过很多线上场景的考验,所以性能问题不用考虑(字节的体量你懂的),是经过大量优化的,同时 gorm 提供了 基于数据库表生成代码,还支持通过编写复杂 sql 生成代码,非常方便,也可以避免常见的 SQL 注入

很多框架还是用 gorm 的,比如: https://github.com/go-eagle/eagle
58 天前
回复了 overdev 创建的主题 Go 编程语言 go 项目实战项目哪家强?
@muyeyong 我推荐一个 Go 语言项目开发实践: http://gk.link/a/12u0f

内容很全面,大佬在腾讯
61 天前
回复了 ahongg1105 创建的主题 程序员 golang ai sdk 聚合
https://github.com/songquanpeng/one-api 使用 OpenAI API 格式访问所有的大模型,开箱即用
@qloog 推荐 god , 更简单些,也支持同时管理多个服务
简单点就是 scp + systermd(一般服务器上都有), scp 用于部署二进制,systermd 用于部署后自动启动服务,下面是基于此原理的一些库

--------

https://github.com/dreamans/syncd 可以了解下 是一款开源的代码部署工具,它具有简单、高效、易用等特点,可以提高团队的工作效率. (用到了 scp )


或者

https://github.com/pioz/god 能让你无需繁琐的 SSH 登录和手动配置,即可在远程服务器上部署、控制 Go 编写的守护进程 (依赖 systermd )
框架: https://github.com/go-eagle/eagle 支持 http 和 gRPC, 关键是有脚手架,各种代码不用自己 copy 后再去修改了

数据库:gorm 使用 gorm/gen 可以链接 db 生成 model 和基础的操作方法,避免 SQL 注入,关键是可以通过自定义 sql 生成代码,比如复杂的 多条件 sql 查询
1  2  3  4  5  6  7  8  9  10 ... 23  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   693 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 41ms · UTC 21:48 · PVG 05:48 · LAX 13:48 · JFK 16:48
Developed with CodeLauncher
♥ Do have faith in what you're doing.