写点什么

观点:在设计你的 SOA 时——品味至上

2008 年 7 月 10 日

Dan Creswell 声称,在把各种组件拼装成一个优秀 SOA 的过程中,“品味至上(taste is everything)”。Dan 说,与某些人所声称的只需对 SOA 采取千篇一律的方法就可以相对的是,如何挑选分布式服务的技术栈、如何对服务“单元”分层等等,在考虑考虑一组指导方针的同时,完全是个品味问题。Dan 最后给出了他自己的 SOA 指导方针。

援引 Dan 的说法:

……我们都愿意相信,架构(以及大部分开发)可以使用一些固定规则、完全重复的风格完成,找到你的模式和技术目录,照着它们做——工作搞定了。这种行为的最终体现是……[想一想]……部署一个 ESB[……] 使你的系统称为一个 SOA。

他认为,即使在好的架构中,数据依赖也是不可避免的;并建议对代码和数据进行垂直分层,使得链中的服务“单元”处于更高的层而与直接依赖数据相隔离。这种形式的分层有其缺陷,因为它假设高阶服务单元的位置不可知性和调用的同步性。为避免与这些假设关联的问题,他建议“我们将每个单元部署在它自己的进程内,并通过依赖者所使用的与之交互的网络端点来访问它们。”他表示,这种部署可通过诸如分割(sharding)、水平伸缩和负载均衡、以及与这些“单元”测试和热补丁相关的可维护性等技术来提高运行时性能。它还允许团队“在不同地方独立开发,减少开发中的冲突”。

在分层代码和数据,以及选择分布式架构上,他建议如下。并提出处理由设计选择所带来的一致性问题你仍需思考的一些小心之处,还提示你需要把分布式计算的谬误考虑进去:

  1. 考虑一致性、可用性和分区( CAP )需求的相似性
  2. 数据访问点
  3. 数据关系
  4. 需求的管辖权
  5. 角色和职责(在比 OO 更粗的级别上)
  6. 特性(如,推荐)
  7. 业务流程
  8. 整体业务流程的组成元素

……并总结说“绝大多数系统可能要求不以一种固定方式组合这些指导方针,品味和直觉的作用更大。请务必看看原文

查看英文原文 Opinion: When Designing Your SOA - Taste is Everything

2008 年 7 月 10 日 00:11292
用户头像

发布了 255 篇内容, 共 46.3 次阅读, 收获喜欢 2 次。

关注

评论

发布
暂无评论
发现更多内容

你管这破玩意叫哨兵?

云流

Java 数据库 redis 程序员 架构

云原生技术及可观测实践

Obsuite

聊聊十种常见的软件架构模式

架构精进之路

4月日更

1分钟搞定 Nginx 版本的平滑升级与回滚

民工哥

nginx linux运维 后端技术

金融科技数据链的DNA

博睿数据

金融科技 博睿数据 数据链DNA

FIL矿机多少钱一台?FIL矿机1T一天可以挖多少币?

投资矿机v:IPFS1234

FIL矿机多少钱一台 FIL矿机一天可以挖多少币

云存储中不可不知的五个安全问题及应对措施

浪潮云

云计算

曾国藩:人生惟有常是第一美德

leoay

曾国藩 坚持 有常 天赋 成事心法

TcaplusDB直播回顾 | 数据库架构和实战分析

TcaplusDB

数据库 nosql 后端 TcaplusDB

阿里内部热捧“Spring全线笔记”,不止是全家桶,太完整了

Java架构追梦

Java spring 源码 架构 微服务

不愧是阿里内部“Spring Cloud Alibaba学习笔记”这细节讲解,神了!

Java架构追梦

Java 阿里巴巴 架构 微服务 SpringCloud

【科创人】贝锐创始人陈宇晔:花生壳诞生自一次挫折,15年坚守有温度不作恶

科创人

Java入门到精通!阿里P8闭关之作:Java高手修炼笔记也太香了!

Java王路飞

Java 大数据 程序员 架构 面试

函数计算助力高德地图平稳支撑亿级流量高峰

阿里云原生团队

不想搞Java了,4年经验去面试10分钟结束,现在Java面试为何这么难

云流

Java 编程 程序员 面试 计算机

浅谈 MySQL 集群高可用架构

民工哥

MySQL MySQL 高可用 集群 linux运维

FIL挖矿成本如何查询?FIL挖矿需要质押多少?

投资矿机v:IPFS1234

FIL挖矿成本如何查询

Java该怎么学?阿里大佬呕心沥血之作,Java全线成长宝典,从P5到P8一应俱全

Java架构师迁哥

Coinbase上市,对加密市场将带来哪些影响?

CECBC区块链专委会

货币

一个极简的冲突管理工具

石云升

28天写作 职场经验 管理经验 4月日更 冲突管理

重读《重构2》- 改变函数声明

顿晓

重构 4月日更

Arction高性能图表控件LightningChart中Datagrid的Pasar datos deview闪电图问题解答

Geek_bacee5

图表控件 LightningChart

Arction高性能图表控件LightningChart图例和注释工具提示问题解答

Geek_bacee5

Arction 图表控件LightningChart

函数计算助力语雀构建稳定且安全的业务架构

阿里云原生团队

文档 企业架构和云服务 业务架构

Arction高性能图表控件LightningChart如何标记+ Mouse_Up事件

Geek_bacee5

LightningChart.NET Arction

汽车之家基于 Flink 的数据传输平台的设计与实践

Apache Flink

flink

浅析“分布式锁”的实现方式丨C++后端开发丨底层原理

Linux服务器开发

redis zookeeper 分布式锁 Linux服务器开发 C++后端开发

中国数字人民币试点有序扩大至“10+1” 拜登政府正加强研究数字人民币计划

CECBC区块链专委会

数字货币

2年进入苏宁,第5年入职阿里,专科学历的他是如何做到?

Java架构师迁哥

怎么拥有个人磁力

leoay

IP 个人磁力 KOL 思想 吸引力法则

区块链技术重新定义 物联网的物与物之间的交易

CECBC区块链专委会

发展空间

演讲经验交流会|ArchSummit 上海站

演讲经验交流会|ArchSummit 上海站

观点:在设计你的SOA时——品味至上-InfoQ