publish/subscribe 是一种消息接收模式,一个消息发布者,可以有很多消息消费者(订阅)接收消息.
更多详细关于发布/订阅模式的讲解,可以参考笔者的译文:Rabbirmq JAVA编程(三) Publish/Subscribe(发布/订阅)
现在走一遍整个订阅/发布流程:
/*19:00订阅消息*/
127.0.0.1:6379> subscribe foo bar
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "foo"
3) (integer) 1
1) "subscribe"
2) "bar"
3) (integer) 2
/*这是发布消息的客户端,开始发布消息,目前一共有一个订阅者 —— subscriber1*/
127.0.0.1:6379> publish foo haha
(integer) 1
127.0.0.1:6379> publish foo hehe
(integer) 1
127.0.0.1:6379> publish foo yeah
(integer) 1
127.0.0.1:6379> publish foo nice
(integer) 1
127.0.0.1:6379> publish foo gg
(integer) 1
127.0.0.1:6379> publish foo DK
(integer) 1
127.0.0.1:6379> publish foo SA
(integer) 1
127.0.0.1:6379> publish foo DOTA
(integer) 1
127.0.0.1:6379> publish foo 11GAME
(integer) 1
127.0.0.1:6379> publish foo SOLO
(integer) 1
/*subscriber1在19:05开始接收到消息*/
1) "message"
2) "foo"
3) "haha"
1) "message"
2) "foo"
3) "hehe"
1) "message"
2) "foo"
3) "yeah"
1) "message"
2) "foo"
3) "nice"
1) "message"
2) "foo"
3) "gg"
1) "message"
2) "foo"
3) "DK"
1) "message"
2) "foo"
3) "SA"
1) "message"
2) "foo"
3) "DOTA"
1) "message"
2) "foo"
3) "11GAME"
1) "message"
2) "foo"
3) "SOLO"
127.0.0.1:6379> subscribe foo
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "foo"
3) (integer) 1
127.0.0.1:6379> publish foo SK
(integer) 2 //2个订阅者
1) "message"
2) "foo"
3) "SK"
1) "message"
2) "foo"
3) "SK"