發布訂閱模式場景
熟悉消息中間件的同學應該對發布/訂閱模式(Publish Subscribe Pattern)并不陌生。即使你不了解消息中間件,那么在平時生活中發布/訂閱模式也是非常常見的場景。
比如你打開你的微信訂閱號,你訂閱的作者發布的文章,會廣播給每個訂閱者。在這個場景里,微信公眾號就是一個Pulisher,而你就是一個Subscriber,你收到的文章就是一個Message。
下面我們就一起了解一下發布/訂閱模式
,發布訂閱模式
是最常用的一種觀察者模式的實現,并且從解耦和重用角度來看,更優于典型的觀察者模式。
認識發布訂閱模式
你覺得發布訂閱模式里的Publisher,就是觀察者模式里的Subject,而Subscriber,就是Observer。Publisher變化時,就主動去通知Subscriber?
其實并不是。在發布訂閱模式里,發布者,并不會直接通知訂閱者,換句話說,發布者和訂閱者,彼此互不相識。
互不相識?那他們之間如何交流?
答案是,通過第三者,也就是在消息隊列里面,我們常說的經紀人Broker。
在觀察者模式中,觀察者需要直接訂閱目標事件;在目標發出內容改變的事件后,直接接收事件并作出響應