rsocket-go icon indicating copy to clipboard operation
rsocket-go copied to clipboard

开启租约和fragmet=4096的限制后

Open aiakit opened this issue 4 years ago • 6 comments

2021-02-09 16:27:06.195195 I | [ERROR] send resume response failed: flush failed: short write 2021-02-09 16:27:06.195223 I | [ERROR] send frame failed: write frame failed: short write 2021-02-09 16:27:06.195242 I | [ERROR] send frame failed: write frame failed: short write 2021-02-09 16:27:06.195258 I | [ERROR] flush failed: flush failed: short write 2021-02-09 16:27:07.092670 I | [ERROR] send resume response failed: flush failed: short write 2021-02-09 16:27:07.092704 I | [ERROR] send frame failed: write frame failed: short write 2021-02-09 16:27:07.092721 I | [ERROR] send frame failed: write frame failed: short write 2021-02-09 16:27:07.092730 I | [ERROR] flush failed: flush failed: short write 2021-02-09 16:27:07.200096 I | [ERROR] send resume response failed: flush failed: short write 2021-02-09 16:27:07.200122 I | [ERROR] send frame failed: write frame failed: short write 2021-02-09 16:27:07.200136 I | [ERROR] send frame failed: write frame failed: short write 2021-02-09 16:27:07.200144 I | [ERROR] flush failed: flush failed: short write 2021-02-09 16:27:08.095270 I | [ERROR] send resume response failed: flush failed: short write 2021-02-09 16:27:08.095290 I | [ERROR] send frame failed: write frame failed: short write 2021-02-09 16:27:08.095306 I | [ERROR] send frame failed: write frame failed: short write 2021-02-09 16:27:08.095313 I | [ERROR] flush failed: flush failed: short write

api:https://github.com/go-roc/roc/blob/main/_example/api/api.hello/main.go srv:https://github.com/go-roc/roc/blob/main/_example/srv/srv.hello/main.go

客户端配置: https://github.com/go-roc/roc/blob/232e721817fe6390a75bcf6523626f528c61c3d8/client/client.go#L29 服务器启动配置: https://github.com/go-roc/roc/blob/232e721817fe6390a75bcf6523626f528c61c3d8/server/server.go#L146

aiakit avatar Feb 09 '21 08:02 aiakit

NewSimpleFactory(interval, ttl, delay time.Duration, numberOfRequest uint32) (Factory, error)

这个函数的参数interval,tll我混淆了,interval我认为是创建租约的时间间隔,tll是多少时间,支持多少请求,所以我把interval设比置tll小,出错了. 但是我想实现次/s,这样的,不知道如何设置.

aiakit avatar Feb 09 '21 10:02 aiakit

Lease 有些问题,之前只实现了发送lease的逻辑,后面需要重写下,支持rate limit。

jjeffcaii avatar Feb 16 '21 15:02 jjeffcaii

Resume是断线重连吗?我试了一下,当断开服务器的时候,客户端并不会自动重连。另外,请教一下Resume(rsocket.WithServerResumeSessionDuration())这个是在会话时间完成后,就断开的意思吗?

aiakit avatar Feb 17 '21 02:02 aiakit

首先,Resume功能预置的存储是在内存里的,所以这里断开的情况只能支持网络挂掉,server和client进程不能挂。WithServerResumeSessionDuration意思是server仅维持一定时间的session,超过这个时间后会被剔除,无法维持断点续连。 参考rsocket_test.go里的TestResume。另外这个功能不建议打开,会加重server的压力。

jjeffcaii avatar Feb 17 '21 08:02 jjeffcaii

那这样的话,如果server挂了,client没挂,即使sever重启后,原来的client就不可用了吗

aiakit avatar Feb 17 '21 12:02 aiakit

对,除非自己实现持久化的resume存储层,目前没有开放自定义的session存储接口。

jjeffcaii avatar Feb 17 '21 12:02 jjeffcaii