V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  DinoStray  ›  全部回复第 23 页 / 共 26 页
回复总数  502
1 ... 15  16  17  18  19  20  21  22  23  24 ... 26  
2020-03-11 12:07:50 +08:00
回复了 DinoStray 创建的主题 程序员 忍不住想吐槽下 grpc 的 C++ async API
@jonah 你的这个封装, 和我把 session id + event 事件 的解决方式, 是类似的, 不过有一点, 我的代码习惯用 C++11 智能指针管理, 不太想直接传递裸指针
2020-03-11 12:06:20 +08:00
回复了 DinoStray 创建的主题 程序员 忍不住想吐槽下 grpc 的 C++ async API
@jonah Sorry, 我看懂你的意思了, 你是做了第二层封装, 把 session 对象和状态封装到一起了
2020-03-11 12:01:59 +08:00
回复了 DinoStray 创建的主题 程序员 忍不住想吐槽下 grpc 的 C++ async API
@jonah 这个 demo 在同一时间, 只能读, 或者只能写, 要么写完了再读, 要么读完了再写. 在 bi-di stream 模型中, 我的需求是随机性有 N 个 request, 随机性有 M 个 reply, request 和 reply 没有任何关联
2020-03-11 12:00:27 +08:00
回复了 DinoStray 创建的主题 程序员 忍不住想吐槽下 grpc 的 C++ async API
@jonah bi-di stream, 是指同时开启异步的读写, 你这个 demo 依然还是把读写线性化了
2020-03-11 11:51:56 +08:00
回复了 DinoStray 创建的主题 程序员 忍不住想吐槽下 grpc 的 C++ async API
@jonah 再详细点说, 异步读和异步写都开启了, 这时候 completion queue 返回, 你可以根据返回的 tag 知道是哪个对象产生了事件, 可没有办法区分是读完成了, 还是写完成了
2020-03-11 11:38:25 +08:00
回复了 DinoStray 创建的主题 程序员 忍不住想吐槽下 grpc 的 C++ async API
@jonah 如果先读再写, 或者先写再读, 所有的事件基于线性产生, 那这个 demo 的模型的确可以跑通, 虽然实现有点繁琐. 可我的目标是 bi-di stream, 这时候就不适用了
2020-03-11 11:35:36 +08:00
回复了 DinoStray 创建的主题 程序员 忍不住想吐槽下 grpc 的 C++ async API
@jonah 读和写都是同步的, 不存在先后, 如果读写同步, 只能通过一个 completion queue 返回, 那你在对象成员里也没办法做区分了
2020-03-11 11:25:31 +08:00
回复了 DinoStray 创建的主题 程序员 忍不住想吐槽下 grpc 的 C++ async API
@icylogic 这个官方 demo , 如果同时做异步读写, 那这个 demo 的模型就跑不通了, 因为无法区分读完成和写完成
2020-03-11 11:12:18 +08:00
回复了 DinoStray 创建的主题 程序员 忍不住想吐槽下 grpc 的 C++ async API
@icylogic 这个 demo 我研究过了, 问题在于他没用 stream, 我的核心需求是实现 pubsub 模型, 所以必须用 stream, 基于一些设计, 还得是 bi-di stream
2020-03-11 11:10:57 +08:00
回复了 DinoStray 创建的主题 程序员 忍不住想吐槽下 grpc 的 C++ async API
@icylogic 官方 demo 就是个指针, 我的问题是, 如果用返回值标识指针, 就没办法区分事件类型了, 比如异步读和异步写
2020-03-11 10:05:06 +08:00
回复了 DinoStray 创建的主题 程序员 忍不住想吐槽下 grpc 的 C++ async API
@xkeyideal 我看了 java 和 golang 的 api, 实现都很简单易用, 唉
2020-03-11 09:56:08 +08:00
回复了 DinoStray 创建的主题 程序员 忍不住想吐槽下 grpc 的 C++ async API
@codehz good idea.
可我刚刚发现自己转牛角尖了. 也许作者在设计这套 api 的时候, 就想让使用者每个 rpc 请求都有单独的 completion queue, 也就是最早的 "每个 tcp 连接 一个线程" 模型. 我 epoll 用惯了, 思维方式固化了, 老是想着限制线程数量,
问题已经解决了, 把笔记在这里贴一下吧:

conntrack 限制

所有在内核中由 Netfilter 的特定框架做的连接跟踪称作 conntrack ( connection tracking )

达到最大限制后, 会报错
nf_conntrack: table full, dropping packet

查看当前系统设置最大连接数
cat /proc/sys/net/netfilter/nf_conntrack_max

查看连接跟踪有多少条目
cat /proc/sys/net/netfilter/nf_conntrack_count

vim /etc/sysctl.conf
net.nf_conntrack_max = 2000000

临时生效
sysctl -p

永久生效, 还需额外操作
http://xy.am/2015/04/26/nf-conntrack/
你只需要把 nf_conntrack 加到系统开机模块,就可以用 /etc/sysctl.conf 开机设置它了
echo "nf_conntrack" >> /etc/modules
@julyclyde 7*24 百万以上并发 tcp
把压测的模拟器都关掉, 一切恢复正常
2019-11-07 15:03:53 +08:00
回复了 tinycold 创建的主题 程序员 如何永久性滴将 CSDN 加入搜索结果黑名单
这个想法在我脑海中很多年了
2019-07-26 14:44:48 +08:00
回复了 DinoStray 创建的主题 问与答 阿里云健康检查, tcp 端口可以填写 22, udp 端口填什么?
@msg7086 试了, 只收到一条消息: Healthcheck udp check, 然后就没有收到任何其他消息. 然后 slb 的状态一直显示 "异常" 不明白 阿里云怎么发现我作弊的
2019-07-26 14:36:22 +08:00
回复了 DinoStray 创建的主题 问与答 阿里云健康检查, tcp 端口可以填写 22, udp 端口填什么?
@leishi1313 公司莫名其妙的安全管理制度, 强制要求的
2019-07-25 20:20:40 +08:00
回复了 DinoStray 创建的主题 问与答 阿里云健康检查, tcp 端口可以填写 22, udp 端口填什么?
1. 阿里云 SLB 的健康检查可以关闭么? 我研究很久不知道怎么关闭.
2. 为甚不直接用后端的端口? 因为是测试 debug 环境, 之前 tcp 用 22 就是为了避免 阿里云 不停有报警. 现在 udp 不知道用什么了
1 ... 15  16  17  18  19  20  21  22  23  24 ... 26  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2064 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 22ms · UTC 04:54 · PVG 12:54 · LAX 21:54 · JFK 00:54
Developed with CodeLauncher
♥ Do have faith in what you're doing.