V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  guonaihong  ›  全部回复第 2 页 / 共 24 页
回复总数  470
1  2  3  4  5  6  7  8  9  10 ... 24  
2024-03-12 19:49:45 +08:00
回复了 fields 创建的主题 程序员 你有多久没有打开过 GitHub 了?
每天。
2024-03-08 14:58:31 +08:00
回复了 lait 创建的主题 全球工单系统 ChatGPT 消息发不出去了?我找到解决方案了
可行,感谢。
2024-03-08 14:03:17 +08:00
回复了 dtgxx 创建的主题 全球工单系统 gpt 是不是无法查询啦。。
同样,发不了消息。10 点到现在没有恢复。
2024-03-03 13:10:12 +08:00
回复了 8eacekeep 创建的主题 Blogger 想看看大家的博客
我是直接开个 github issue 当博客用的。正好可以记录下碎片化的想法。
2024-02-22 14:28:44 +08:00
回复了 rekulas 创建的主题 Go 编程语言 解压 zlib 数据流,困扰了一天多了没能解决
@rekulas 有一个简单的方法验证, 如果对端传过来的 gzip 包,都缓存到 bytes.Buffer ,完毕可以解出来。那就说明你的 io.Pipe 的用法不对。
因为 list.Accpet 只有新的连接过来,才会停止阻塞,所以这种写法的 go 程的个数等于连接 net.Conn 的个数。

另外聊个题外话,创建大量的 go 程,新版本 go 的 runtime 里面已经做了复用和优化。性能开销没有想象中那么大。
做过一个实验,使用 https://github.com/antlabs/quickws 这个 websocket 库,创建 100w 个 go 程,内存占用大约是 7.67GB 左右,8w tps 并发,50%的时延是 511.62ms

--------------------------------------------------------------
BenchType : BenchEcho
Framework : quickws
TPS : 86326
EER : 413.65
Min : -1ns
Avg : 573.50ms
Max : 1.44s
TP50 : 511.62ms
TP75 : 705.19ms
TP90 : 715.05ms
TP95 : 718.11ms
TP99 : 721.15ms
Used : 49.70s
Total : 5000000
Success : 4290729
Failed : 709271
Conns : 1000000
Concurrency: 50000
Payload : 1024
CPU Min : 120.52%
CPU Avg : 208.70%
CPU Max : 231.77%
MEM Min : 7.67G
MEM Avg : 7.67G
MEM Max : 7.67G
2024-02-22 10:57:49 +08:00
回复了 rekulas 创建的主题 Go 编程语言 解压 zlib 数据流,困扰了一天多了没能解决
忽略我上一个回答,直接用 io.Pipe 。然后 zlib 解决套下 io.Pipe 的 reader 对象。另外收 gzip 数据的地方并发写就行。
https://pkg.go.dev/io#Pipe
2024-02-22 10:53:44 +08:00
回复了 rekulas 创建的主题 Go 编程语言 解压 zlib 数据流,困扰了一天多了没能解决
把 chan 包装成一个 io.Reader, 收数据的地方直接并发 chan , 读的地方 select chan 就行。

type myReader struct {
c chan []byte
}

func (m *myReader) Read(p []byte) (n int, err error) {

copy()
}
2024-02-21 17:12:50 +08:00
回复了 xiaoshu 创建的主题 程序员 [晋升复盘] 用了两周时间写的,希望对大家有帮助
楼主文章写得不错。
2024-02-01 17:02:54 +08:00
回复了 Znf7 创建的主题 机械键盘 求静电容键盘推荐
我是把机械键盘 上了点键盘油。手感润了很多。mark 下这个贴子。
2024-01-30 18:18:59 +08:00
回复了 desperadoo 创建的主题 计算机 过年回家办公学习小主机推荐
5800h 或者 4800h 的小主机性价比高。44 楼和 60 楼的兄弟已经回答过。
5800 这个 u(8 核 16 线程) 堪比洋垃圾 e5 2686(18 核 36 线程)。我用自己写的一个 websocket 库测试了下, 5800h 跑 46w/s 的话,e5 跑 52w/s 。所以这个 5800 的性价比很高。
2024-01-20 01:17:15 +08:00
回复了 chai2010 创建的主题 程序员 《国产编程语言蓝皮书-2023》开启申报
厉害。
2024-01-15 17:46:11 +08:00
回复了 flyhelan 创建的主题 程序员 Fossil 为什么没流行开?感觉比 git 要好用。
也许 linux 之父的影响力比 sqlite 之父高呗。
2024-01-14 21:32:06 +08:00
回复了 fulvaz 创建的主题 职场话题 最近前端工作感悟一二
楼主描述的解决问题的方法,我一般称为“控制变量法”,a&b&c 都可能导致一个问题的产出,每次改变一个点,看下结果。这是初中学习电路,get 的一个方法论。
@helloword001 不能无缝转,要自己写代码。无论是 http chunked 模拟(也叫 sse),还是 websocket 或者 grpc 都要写点代码。
@helloword001 你想用 http chunked 模拟?具体代码网上找找例子,这个也看客户端的开发能力,搞得定也行,缺点只能模拟单向流,s->c 侧的。websocket 和 grpc stream 是全双工的,c->s ,s->c 都行。
websocket 库可以玩下我写的,https://github.com/antlabs/quickws ,有使用上的问题帮你看看。
你启个 websocket 或者 grpc stream 服务端。客户端不停读就行。
2023-09-27 23:41:40 +08:00
回复了 chengiri 创建的主题 Go 编程语言 请教一个关于 go websocket 的问题
服务端在 read/write 的地方加超时时间和心跳。心跳就由客户端向服务端发,毕竟客户端要做链接保活的。
分两种情况讨论:
1. 主动推送场景(s->c):
比如红点,点赞,收藏,关注的通知。服务端在 WriteMessage 的时候加个稍短的超时时间。超时了就关闭这个 conn ,主动踢掉坏的 conn 。
2. 客户端主动要推消息到客户端这种(c->s):
客户端确认连接的健康度,做法的话
2.1 在 WriteMessage 的时候加些超时时间
2.2 加些心跳检查,定时 ping/pong ,超时间根据业务的敏感度,和服务端压力定个值,最后失败的话再用指数退避定个失败的重试时间。

所以做法就是开头聊的方式。
1  2  3  4  5  6  7  8  9  10 ... 24  
关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5170 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 30ms · UTC 08:02 · PVG 16:02 · LAX 01:02 · JFK 04:02
Developed with CodeLauncher
♥ Do have faith in what you're doing.