分布式系统的那些事儿(六) - SOA架构体系
有十来天没发文了,实在抱歉!最近忙着录视频,同时也做了个开源的后台管理系统LeeCX,目前比较简单,但是后续会把各类技术完善。具体可以点击“原文链接”。
那么今天继续说分布式系统的那些事。
我们现在动不动就讲分布式吧?那么SOA是不是必须得聊一聊呢?
面向服务的架构,简称SOA,他是基于服务组件的,把原来那种一个大型应用程序的不同的功能拆分为一些接口,通过这些接口串联起来。
这么做的好处是:
1、重用性大大提高
2、明确了接口的服务定义规则
3、定义了自家公司的api标准
4、降低系统耦合性
5、无状态HTTP
SOA不是技术也不是什么标准,他是一个架构,每个公司对SOA的架构体系都不同,有简单的也有复杂的,更有超越荣耀王者那边的微服务存在。
曾经的SOA,我也参与过,那些接口设计十分复杂,用的是SOAP,数据传输通过xml来封装的,虽然那个时候我还是个新手,但是我坚信这样的不人性化的玩意迟早要被替代,如今restful风格的架构已经完全替代之。
现如今不论是SOA还是微服务。我们都会利用restful风格来做,甚至我们还会定义自己的一套标准规范,强制开发人员定义的所有api接口必须走这样的规范,这么做的好处是可以让前后端分离,开发人员可以只专注自己的接口或者对接工作即可。
跟过时的SOAP相比,restful简直就是简介明了的实现方案。所有的服务都是松耦合,可以为第三方提供各式各样的接口。传播行为也十分轻量级。
restful的设计规范:
1、使用URL来同一表示我们的资源路径,这个URL应该一目了然,让人知道调用这个接口地址就能够做什么事
2、接口的同一定义:
对于增删改查CRUD就有了十分明确的定义,request的请求方式有4种,
POST用于定义create操作;
GET用于定义查询操作;
PUT用于定义修改操作;
DELETE用于定义删除操作;
此外执行的那个业务方法名(action或者controller),必须定义为名字意义(对于这个我个人觉得没必要,各自根据自己公司的业务定义即可,官方的规范很难以执行,而且命名会很纠结)
3、无状态性:
普通的web应用我们都是用的session来管理用户会话,但是restful的SOA中,我们必须得使用无状态会话,sessionless,比如利用redis来实现,或者spring-session
4、返回客户端的状态:
我们得定义浏览器的状态,就像404或者500那样,出错了得有一个状态值,最常用的就是200状态,然后就是501、502、503……这样定义下去,而这个状态需要封装在你的一个json实体中让对方获取后进行解析,不论是ajax或者restful,都可以获得这样的json字符串再转换为想要的pojo
分布式系统的那些事儿(六) - SOA架构体系的更多相关文章
- 构建基于分布式SOA架构的统一身份认证体系
摘要:本文充分利用SOA架构松耦合的特点,通过规范统一网络接口实现业务系统整合,既提升系统安全性,又简化资源访问操作,具有重要的理论和现实意义. 统一身份认证旨在将分散在各个信息系统中的用户和权限资源 ...
- 基于springCloud的分布式架构体系
Spring Cloud作为一套微服务治理的框架,几乎考虑到了微服务治理的方方面面,之前也写过一些关于Spring Cloud文章,主要偏重各组件的使用,本次分享主要解答这两个问题:Spring Cl ...
- 微服务理论之五:微服务架构 vs. SOA架构
一.面向服务的架构SOA 面向服务的架构是一种软件体系结构,应用程序的不同组件通过网络上的通信协议向其他组件提供服务.通信可以是简单的数据传递,也可以是两个或多个服务彼此协调连接.这些独特的服务执行一 ...
- SOA架构设计经验分享—架构、职责、数据一致性
阅读目录: 1.背景介绍 2.SOA的架构层次 2.1.应用服务(原子服务) 2.2.组合服务 2.3.业务服务(编排服务) 3.SOA化的重构 3.1.保留服务空间,为了将来服务的组合 4.运用DD ...
- 论SOA架构的几种主要开发方式
转: http://blog.csdn.net/chenleixing/article/details/44926955 面向服务架构soa以其独特的优势越来越受到企业的重视,它可以根据需求通过网络 ...
- SOA架构设计(转发)
阅读目录: 1.背景介绍 2.SOA的架构层次 2.1.应用服务(原子服务) 2.2.组合服务 2.3.业务服务(编排服务) 3.SOA化的重构 3.1.保留服务空间,为了将来服务的组合 4.运用DD ...
- SOA 架构中的ESB是更好的应用于异构系统集成整合还是用于统一服务调用/基础服务实施
一.讨论主题与观点 写一篇文章.发现一次自觉得有意思的SOA架构方面的讨论,源于昨天AgileEAS.NET SOA 平台群(113723486)里几个群友的一次关于ESB的一次讨论. 大家的讨论观点 ...
- 论SOA架构的几种主要开发方式【转】
面向服务架构soa以其独特的优势越来越受到企业的重视,它可以根据需求通过网络对松散耦合的粗粒度应用组件进行分布式部署.组合和使用.服务层是SOA的基础,可以直接被应用调用,从而有效控制系 ...
- [转]SOA架构设计经验分享—架构、职责、数据一致性
阅读目录: 1.背景介绍 2.SOA的架构层次 2.1.应用服务(原子服务) 2.2.组合服务 2.3.业务服务(编排服务) 3.SOA化的重构 3.1.保留服务空间,为了将来服务的组合 4.运用DD ...
随机推荐
- java 生成二维码、可带LOGO、可去白边
1.准备工作 所需jar包: JDK 1.6: commons-codec-1.11.jar core-2.2.jar javase-2.2.jar JDK 1.7: commons-codec- ...
- 〖Android〗Android源代码所有目录生成的Target(编译生成文件反查)
=> build/tools/zipalign: out/host/linux-x86/bin/zipalign (host) => build/tools/atree: out/host ...
- ArrayDeque源代码分析
1. 体系结构 了解特性,先看下体系结构: 如上所看到的,知道其支持 序列化,克隆,迭代器操作,队列特性.详细实现 除了实现以上接口外,扩展AbstractCollection 抽象类. 2. 应用场 ...
- Axure 图片轮播(广告通栏图片自动播放效果)
baiduYunpan:http://pan.baidu.com/s/1eRPCy90 里面的“图片轮播”部件即可实现这个功能
- Ubuntu16.04 安装使用KiCad
KiCad是一个带模拟器的电路设计软件, 官网 http://kicad-pcb.org/, 当前版本是4.0.7 安装 参考http://kicad-pcb.org/download/ubuntu/ ...
- Oracle 错误总结及问题解决 ORA
参考地址 ORA-00001: 违反唯一约束条件 (.)错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常.ORA-00017: 请求会话以设置跟踪事件ORA-00018: 超出最大会话数O ...
- selectAll, unSelectAll两个操作的实现
private void updateBatchSelectionStatus() { ContactListAdapter.ViewHolder viewHolder = null; ...
- (原)SphereFace及其pytorch代码
转载请注明出处: http://www.cnblogs.com/darkknightzh/p/8524937.html 论文: SphereFace: Deep Hypersphere Embeddi ...
- Swift3 根据秒数获取视频时长(转换成00:00:00时间格式)以及将时长转换成秒
直接代码了: /// 秒转换成00:00:00格式 /// /// - Parameter secounds: <#secounds description#> /// - Returns ...
- [SQL] 请教一下 count里面有case when 一般情况下啥时候用
http://www.itpub.net/forum.php?mod=viewthread&tid=1810967 问题: 比如 count(case when pday_id=${deal ...