SOA理念
把系统按照实际业务,拆分成刚刚好大小的、合适的、独立部署的模块,每个模块之间相互独立。
例子
现在有一个数据库,一个Javaweb的网站客户端,一个安卓APP客户端,一个IOS客户端
现在从数据库里面获取注册用户列表,如果不用SOA的设计思想,那么就在Javaweb里面写一个查询方法,安卓APP里面写一个查询方法,IOS里面写一个查询方法,业务代码重复,修改时,三个地方都要修改。
然后出现了一种设计思想,用java单独创建一个工程部署在一台服务器上,写一个方法执行查询操作,让其他人可以通过某种途径(http链接,或者基于socket的RPC调用)访问这个方法得到返回数据,返回的数据类型是通用的json或者
xml数据。总结一下就是把一个操作封装到一个工程中去,然后暴露访问的方式,形成服务。
比如这里的注册用户服务,所有的增删改查操作这个服务都能提供方法,解耦合。
服务治理,当服务越来越多,调用方越来越多的时候,它们之间的关系就会变得混乱,需要对这些关系进行管理,比如一开始调用方1和调用方2调用了注册用户服务,后来调用方加到数百个,服务方再提供服务时,就只知道自己提供了服务,
不知道自己给谁提供了服务,这时需要能进行服务治理的框架,比如dubbo+zookeeper,比如SpringCloud,有了服务治理功能,就能清晰地看见服务被谁调用了
浙公网安备 33010602011771号