a6607616
a6607616
2018-03-21 11:53
采纳率: 50%
浏览 3.6k
已采纳

如何用redis作为消息队列,最好附上java代码,感谢各位了

各位大佬好,是这样子的,我一直是用ActiveMQ作为消息中间件使用,但是人家说可以用redis的list实现消息队列,但是我有一个疑问,就是有两个系统,一个向redis发送消息,可是他怎么通知
另外一个系统去消费消息呢...

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • j1231230
    盛夏温暖流年 2018-05-31 09:08
    已采纳

    比如两个系统,系统A和系统B,当系统A有新消息时,加入redis的list列表里:
    RedisUtil.lpush(key, value);
    系统B前端进行轮询,定时访问接口去获取list列表里面的消息,接口里面循环获取Redis中的消息:
    while (true) {
    String attr = RedisUtil.lpop(key);
    if (attr == null) {
    // 没有需要处理的数据了
    break;
    }
    //处理当前attr消息并返回给前端
    }

    点赞 评论
  • q447552640
    三阶魔方 2018-03-21 14:53

    Redis Brpop 命令移出并获取列表的最后一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。

    点赞 1 评论
  • caozhy
    点赞 评论
  • CUG_ZG
    CUG_ZG 2018-03-22 03:03

    Kafka不就可以解决这个问题了,为什么搞的这么复杂

    点赞 评论

相关推荐