讓大叔興奮的自動化注冊
Redis隻是一種分布式存儲媒體
對于第一版将事件總線放到記憶體的情況來說,使用redis這種存儲媒體确實解決了分布式的事件問題,它可以在更多場合下使用,不用考慮WEB端的負載均衡,不用考慮服務端的存儲壓力,不用考慮并發時的吞吐量,确實,redis是個存儲效率非常高的産物,大叔redis裡的事件的Key采用了目前EventData的名字加上自定義的字首,這樣可以同時在多個項目中使用.


結構圖
主角是SubscribeAll這個方法
對于目前應用程式下的所有DLL進行反射,拿到所有實作了IEventHandler的類型,然後對這麼類型(事件處理程式)進行注冊即可.
核心代碼(Memory版):
對于這種倉儲,在Redis裡事實上是以二進制的格式存儲的,是以要求你的EventData和EventHandler需要标記為可序列化,我經過測試,對于Json序列化的方式,在進行釋出時,不能成功回調"訂閱"的代碼,原因我目前還不清楚,需要大家一起去研究!
感謝各位的閱讀!