某一天
小明:你好,你是报刊工作人员吗?
报刊:是的,请问,你有什么需要吗?
小明:我想订阅报刊,关于娱乐、经济、社会类的,其它的我不想要,可以吗?
报刊:可以的,并且你可以随时取消订阅。
小明:好的,谢谢你。祝你工作愉快!
通常该过程我们都是在软件上实现的,但是这并不影响我们要说明的内容。实际项目中,业务是复杂多样的,一个业务可能需要依赖另外一个业务,同时也可能取消和该业务的关联,如果我们不做好处理,各业务耦合度将会大大提高,不利于我们扩展和维护。怎样才能解耦这些依赖关系呢?通过上述小故事,大家是不是想到了什么呢,某个设计模式?没错,我们要使用的就是“发布-订阅”模式,使用该模式,订阅者可以订阅自己需要的东西,并且可以随时取消订阅,在这个过程中,发布者不知道订阅者是谁。
事件总线
Akka系统中,是不是需要我们自己去实现“发布-订阅”模式呢?答案肯定是no,Akka系统提供了一种事件总线(Event Bus)工具,内部实