netty 做 client 怎么把请求和响应映射起来?

2015-04-20 10:27:33 +08:00
 phx13ye
想做一个memcache 的client, 但是netty是异步读写

这里的例子只是把内容打印出来
https://netty.io/4.1/xref/io/netty/example/memcache/binary/MemcacheClientHandler.html

假设我有线程A B同时往这个client写相同add命令, A先B后
怎么保证A得到STORED, B得到NOT_STORED

求指点,先谢谢了
5001 次点击
所在节点    Java
3 条回复
qiyi
2015-04-28 01:51:31 +08:00
netty4不是特别确定,但是对于netty3来说,客户端(channel)写实际上是往底层一个缓冲队列里写消息,然后nettyio线程从队列依次取消息发送,所以是不是要保证a确实先写入到缓冲队列才行?
phx13ye
2015-04-28 09:41:11 +08:00
@qiyi 我目前的做法是增加一个写监听,写完一个请求就往一个inboundhandler(3叫upstream)的BlockingQueue放一个请求, 读响应的时候从这个队列取出请求建立映射.
不知道有没有更好的方法
qiyi
2015-04-28 12:32:13 +08:00
@phx13ye memcache 的通信协议里没有对请求进行标识么,没了解协议细节😓

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/184876

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX