V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
phx13ye
V2EX  ›  Java

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

  •  
  •   phx13ye ·
    Alwayswithme · 2015-04-20 10:27:33 +08:00 · 5152 次点击
    这是一个创建于 3490 天前的主题,其中的信息可能已经有所发展或是发生改变。
    想做一个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

    求指点,先谢谢了
    3 条回复    2015-04-28 12:32:13 +08:00
    qiyi
        1
    qiyi  
       2015-04-28 01:51:31 +08:00 via Android   ❤️ 1
    netty4不是特别确定,但是对于netty3来说,客户端(channel)写实际上是往底层一个缓冲队列里写消息,然后nettyio线程从队列依次取消息发送,所以是不是要保证a确实先写入到缓冲队列才行?
    phx13ye
        2
    phx13ye  
    OP
       2015-04-28 09:41:11 +08:00
    @qiyi 我目前的做法是增加一个写监听,写完一个请求就往一个inboundhandler(3叫upstream)的BlockingQueue放一个请求, 读响应的时候从这个队列取出请求建立映射.
    不知道有没有更好的方法
    qiyi
        3
    qiyi  
       2015-04-28 12:32:13 +08:00 via Android
    @phx13ye memcache 的通信协议里没有对请求进行标识么,没了解协议细节😓
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5398 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 06:57 · PVG 14:57 · LAX 22:57 · JFK 01:57
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.