服務解耦github

好比咱們發了一個帖子,除了寫入數據庫以外還有不少聯動操做,好比給關注這個用戶的人發送通知,推送到首頁的時間線列表,若是用代碼實現的話,發帖服務就要調用通知服務,時間線服務,這樣的耦合很大,而且若是增長一個功能依賴發帖,除了要增長新功能外還要修改發帖代碼。golang

解決方法:引入kafka,將發完貼的消息放入kafka消息隊列中,對這個主題感興趣的功能就本身去消費這個消息,那麼發帖功能就可以徹底獨立。同時即便發帖進程掛了,其餘功能還可以使用,這樣能夠將bug隔離在最小範圍內數據庫