BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

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

| 作者 Dilip Krishnan 关注 0 他的粉丝 ,译者 胡键 关注 0 他的粉丝 发布于 2008年7月11日. 估计阅读时间: 2 分钟 | CNUTCon 了解国内外一线大厂50+智能运维最新实践案例。
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

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT