服务解耦github

好比咱们发了一个帖子,除了写入数据库以外还有不少联动操做,好比给关注这个用户的人发送通知,推送到首页的时间线列表,若是用代码实现的话,发帖服务就要调用通知服务,时间线服务,这样的耦合很大,而且若是增长一个功能依赖发帖,除了要增长新功能外还要修改发帖代码。golang

解决方法:引入kafka,将发完贴的消息放入kafka消息队列中,对这个主题感兴趣的功能就本身去消费这个消息,那么发帖功能就可以彻底独立。同时即便发帖进程挂了,其余功能还可以使用,这样能够将bug隔离在最小范围内数据库