各位大佬好,是这样子的,我一直是用ActiveMQ作为消息中间件使用,但是人家说可以用redis的list实现消息队列,但是我有一个疑问,就是有两个系统,一个向redis发送消息,可是他怎么通知
另外一个系统去消费消息呢...
比如两个系统,系统A和系统B,当系统A有新消息时,加入redis的list列表里:
RedisUtil.lpush(key, value);
系统B前端进行轮询,定时访问接口去获取list列表里面的消息,接口里面循环获取Redis中的消息:
while (true) {
String attr = RedisUtil.lpop(key);
if (attr == null) {
// 没有需要处理的数据了
break;
}
//处理当前attr消息并返回给前端
}
Redis Brpop 命令移出并获取列表的最后一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。
https://download.csdn.net/download/sunxyq/9977577
http://blog.csdn.net/hu_wen/article/details/78111744
Kafka不就可以解决这个问题了,为什么搞的这么复杂