哪位大牛能举个实例讲下SOA与传统架构的区别?

知道SOA是为了解耦,但网上讲的都太偏理论和抽象。哪位大神能基于自己熟悉的实际软件系统,讲讲区别:传统的是分哪些模块(按技术组件分?),用SOA又是怎么分模块?

阅读 4k
1 个回答

假设我要做几道菜:

  1. 麻婆豆腐
  2. 素炒小青菜
  3. 西红柿炒蛋

以前我的做法:
我要做麻婆豆腐,先洗豆腐,然后找到豆瓣酱,把豆瓣酱炸出香味,然后我想到还需要辣椒,我就去切辣椒,切完辣椒放进去后,我发现还需要姜蒜,我去切了姜蒜,然后和烧好的豆瓣酱一起煎出香味,倒入豆腐翻两圈开始焖。
焖好麻婆豆腐之后,我要素炒小青菜。
我立即去洗小青菜,然后烧好油后发现还少了姜蒜,我就去切姜蒜,一阵手忙脚乱,小青菜炒好了。
如此重复进行炒西红柿炒蛋。

有了SOA之后:
我先剁好一小碗姜末;
我先剁好一小碗蒜末;
先切好青菜
先找好豆瓣酱
先洗好豆腐
先切好西红柿

然后,我想要什么服务,直接取。(嗯,这里可能来说是一个人的SOA)
后来,我为了想提高效率,叫我老婆来一起帮忙准备这些材料,后面,突然有10个朋友来我家,要做的菜式更多了,然后我叫几个朋友一起帮准备各种材料。

这里面的思想还可以发散。后面的不想说了。


我想了一下,再补充一下

对于第一种情况,假设我每种菜要做10份,那么再叫来9个人和我一起重复上面的事情(多个服务器部署同一套系统)
而后面有了SOA,我每一个人就只关注自己的具体逻辑,比如切青菜的专门切青菜,洗青菜的专门洗青菜等等,对于厨师(用户),想要做一份西红柿炒蛋,那他就去拿西红柿和打好的蛋就好了,如果想做个西红柿焖大肠,那么他就取取切好的西红柿和切好的大肠就好了,分工明确,各司其职。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题