SOA面向服务--学习心得

hahaha,目前在的 蚂蚁金服项目组 用的是面向SOA架构,用了很久的项目了,今天详细地总结一下~~

现在行业内蚂蚁金服的一些项目用的就是SOA架构,一般是用sofa框架的项目

一.什么是SOA

(1)百度百科  定义如图:

SOA面向服务--学习心得_第1张图片

(2)个人的理解:是分布式系统的一种架构,这种SOA架构的项目主要是面向服务的,是服务治理很好的一种项目架构

----------这里解释下服务治理

服务治理:

为什么需要服务治理呢?

分布式系统中每个功能模块在依赖其他节点系统模块比如调用数据,调用别的节点系统中的接口等操作时,

如果其他节点服务处于服务升级时,没有做好节点服务间同步的话在调用时会出现问题。

如果突然某个节点服务宕机了,未做服务检测和转移的话在调用时会出现问题

......

综上,怎么保证各个服务模块的健康,高效合作呢?这个时候就出现了 统一的解决方法:服务治理

     

二.架构图和业务

SOA面向服务--学习心得_第2张图片

SOA面向服务--学习心得_第3张图片

 

优点:

1、更高的可用性,模块拆分,降低模块之间的耦合度 。

2、更容易维护,建立在以 SOA基础上的信息系统,当需求发生变化的时候,不需要修改提供业务服务的接口,只需要调整业务服务流程或者修改操作即可,整个应用系统也更容易被维护。

3、更好的伸缩性,靠业务服务设计、开发和部署等所采用的架构模型实现伸缩性。使得服务提供者可以互相彼此独立地进行调整,以满足新的服务需求。

4.服务重用

5.消息监控

 

业务:

将项目中数据操作层,持久层,业务层,对外接口层,前端等进行模块服务化,前后端分离,分库分表等操作,让每个模块都有自己独立的服务节点,这样实现了每个模块间数据访问的压力~~

 

三.服务模块接口间的访问

通常使用rpc的方式来调用接口服务

前提是先发布服务,然后再使用.下面是服务发布的2种方式

----------本地发布和引用
xml配置:
服务发布:

1.创建接口和实现类 2.在spring.xml文件中声明 ,将bean注册为sofa服务
服务引用:

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简单、轻量的协议.但是服务治理体验很不好

 

你可能感兴趣的:(SOA面向服务--学习心得)