phx13ye
V2EX  ›  Java

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

  •  
  •   phx13ye ·
    Alwayswithme · Apr 20, 2015 · 6026 views
    This topic created in 4066 days ago, the information mentioned may be changed or developed.
    想做一个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 replies    2015-04-28 12:32:13 +08:00
    qiyi
        1
    qiyi  
       Apr 28, 2015 via Android   ❤️ 1
    netty4不是特别确定,但是对于netty3来说,客户端(channel)写实际上是往底层一个缓冲队列里写消息,然后nettyio线程从队列依次取消息发送,所以是不是要保证a确实先写入到缓冲队列才行?
    phx13ye
        2
    phx13ye  
    OP
       Apr 28, 2015
    @qiyi 我目前的做法是增加一个写监听,写完一个请求就往一个inboundhandler(3叫upstream)的BlockingQueue放一个请求, 读响应的时候从这个队列取出请求建立映射.
    不知道有没有更好的方法
    qiyi
        3
    qiyi  
       Apr 28, 2015 via Android
    @phx13ye memcache 的通信协议里没有对请求进行标识么,没了解协议细节😓
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   4863 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 48ms · UTC 01:09 · PVG 09:09 · LAX 18:09 · JFK 21:09
    ♥ Do have faith in what you're doing.