hahaha,目前在的 蚂蚁金服项目组 用的是面向SOA架构,用了很久的项目了,今天详细地总结一下~~
现在行业内蚂蚁金服的一些项目用的就是SOA架构,一般是用sofa框架的项目
(1)百度百科 定义如图:
(2)个人的理解:是分布式系统的一种架构,这种SOA架构的项目主要是面向服务的,是服务治理很好的一种项目架构
----------这里解释下服务治理
服务治理:
为什么需要服务治理呢?
分布式系统中每个功能模块在依赖其他节点系统模块比如调用数据,调用别的节点系统中的接口等操作时,
如果其他节点服务处于服务升级时,没有做好节点服务间同步的话在调用时会出现问题。
如果突然某个节点服务宕机了,未做服务检测和转移的话在调用时会出现问题
......
综上,怎么保证各个服务模块的健康,高效合作呢?这个时候就出现了 统一的解决方法:服务治理
优点:
1、更高的可用性,模块拆分,降低模块之间的耦合度 。
2、更容易维护,建立在以 SOA基础上的信息系统,当需求发生变化的时候,不需要修改提供业务服务的接口,只需要调整业务服务流程或者修改操作即可,整个应用系统也更容易被维护。
3、更好的伸缩性,靠业务服务设计、开发和部署等所采用的架构模型实现伸缩性。使得服务提供者可以互相彼此独立地进行调整,以满足新的服务需求。
4.服务重用
5.消息监控
业务:
将项目中数据操作层,持久层,业务层,对外接口层,前端等进行模块服务化,前后端分离,分库分表等操作,让每个模块都有自己独立的服务节点,这样实现了每个模块间数据访问的压力~~
通常使用rpc的方式来调用接口服务
前提是先发布服务,然后再使用.下面是服务发布的2种方式
----------本地发布和引用
xml配置:
服务发布:
1.创建接口和实现类 2.在spring.xml文件中声明
服务引用:
1.在spring.xml文件中引用上述发布出来的sofa服务
2.代码中直接使用spring注解@Autowired注入
注解:
服务发布:1.创建接口和实现类,接口一样,实现类上加注解@sofaService
服务引用:1.使用的时候,直接在service类引用上使用@SofaReference注解
--------RPC服务发布和引用
服务发布:
1.创建接口和实现类RpcService和RpcServiceImpl
2.使用xml方式,在spring xml配置文件中将实现类注册成为rpc服务 :
服务引用:
1.在spring xml文件中把rpc服务引入:
2.代码中直接使用spring注解@Autowired自动注入rpcservice就可以直接使用了
传统单体式:如mvc, 一个软件包含数百个功能,如ERP,CRM等,开发、维护、部署、扩展...都是nightmare,承受不了大数据量访问,太low
SOA:是解决单体应用架构问题的一个解决方案,是面向服务的体系
微服务:微服务的应用青睐REST简单、轻量的协议.但是服务治理体验很不好