SOA是什么?
SOA全英文是Service-Oriented Architecture,中文意思是中文面向服务编程,是一种思想,一种方法论,一种分布式的服务架构
SOA的发展:

比如以前写的web应用,一个工程下面有pojo service dao

类似于E3项目一开始的时候会用maven把common parent manager分开,但此时的web(也就是表现层)是与业务层 数据层高度耦合的


SOA的好处:
-
降低用户成本,用户不需要关心各服务之间是什么语言的、不需要知道如果调用他们,只要通过统一标准找数据总线就可以了。
-
程序之间关系服务简单
-
识别哪些程序有问题(挂掉)
缺点:提示了系统的复杂程度,性能有相应影响。
数据总线是什么?

- 数据总线里面一个key对于一个value,key指的是服务名,value则是服务的调度方式,还有一点需要说明的是,数据总线只是指路人,服务是不经过数据总线的,如上图的黄色线的路径。
- 数据总线通过域名解析实现:一个域名绑定多台服务器,ajax也可以,dns也可以,解析域名嘛。
其实数据总线还有一些高级应用,比如心跳检测,实现负载均衡等等,就不细说了,目前应用数据总线的有阿里的dubbo,还有zookeeper。