10 月 23 - 25 日,QCon 上海站即将召开,现在购票,享9折优惠 了解详情
写点什么

SOA 对微服务的残余影响

  • 2017-11-16
  • 本文字数:1027 字

    阅读完需:约 3 分钟

近日, Tareq Abedrabbo 伦敦2017 µCon 微服务大会上说,SOA 对微服务架构设计的残余影响仍然存在,包括技术选型和组织方面的问题。最直接的一个例子就是大多数企业仍然区分对待架构师和开发人员,架构师负责出规范,开发人员负责实现。

OpenCredo CTO Abedrabbo 在大公司和小公司都工作过,这些公司在向微服务架构迁移的过程中仍然受到 SOA 的影响。他在演讲中对 SOA 和微服务进行了有趣的对比,不过他也强调,尽管 SOA 存在问题,但不能把全部责任都推给 SOA。

重用性与变更管理。Abedrabbo 认为,重用性之所以对 SOA 来说十分重要,主要是因为 SOA 缺乏成熟的变更管理工具。服务一旦部署好了,就不太愿意做出变更,因为成本太高。而微服务在变更管理方面具有一定的优势,因为对微服务做出变更的成本要小得多。

集成与组合。SOA 架构强调的是集成,客户端可以向服务器端发送任何格式的数据,包括 XML,服务器端负责解析和处理这些数据。而在微服务架构里则恰好相反,微服务注重组合,服务调用端需要自己知道如何调用其他服务。Abedrabbo 对此总结说,集成增加复杂性,而组合降低复杂性。

技术重用与功能重用。SOA 注重技术重用,我们总是希望尽可能多地重用一个服务,尽管对服务做出变更有很大阻力。而微服务架构更注重让小型的服务专注于特定的业务功能上。

静态与动态。SOA 需要处理所有的事情,一个 SOAP 调用不仅要处理业务逻辑,还要处理安全和事务方面的问题。而微服务更加动态,微服务生态系统的不同部分负责处理不同的问题。

有 SOA 背景的开发人员在构建微服务时容易使用反模式,比如分布式单体,他们只是对一个边界进行无机拆解。对一个已有的单体进行解耦时,如果不考虑边界问题就很容易犯这个错。在与遗留系统进行集成时太过关注底层的解耦,但没有考虑到通信保证、幂等性等因素,这也是很常见的问题。这样的系统只会增加复杂性,体现不出微服务的优势。

Abedrabbo 给出了一些建议用于解决这方面的问题:

  • 采用领域驱动设计。使用微服务实现领域逻辑,避免单纯地从技术角度设计可重用的微服务。
  • 不要使用规范的数据模型。规范的数据模型只会阻碍微服务系统的演化,所以我们应该使用局部数据视图。
  • 正常化元数据,并将它们从其他数据中分离出来。
  • 使用正确的工具。比如,每个微服务都应该有自己的数据库。多个服务共享一个数据库是一种反模式,不过如果使用图数据库或许会是个好办法。

明年的微服务大会将于2018 年11 月5 号至6 号召开。

查看英文原文 About the SOA Heritage Impact on Microservices

2017-11-16 18:0012199
用户头像

发布了 322 篇内容, 共 154.1 次阅读, 收获喜欢 148 次。

关注

评论

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

被 boss 直聘转发过多而“封杀”的 2021 年全套 高级面试题有多牛

Java 程序员 后端

被Netty搞昏了头,先学一下幂等性压压惊吧,java程序员面试宝典pdf

Java 程序员 后端

诡异的Redis数据库内存,空间很大,内存使用还是不理想

Java 程序员 后端

说到分布式,重要的Paxos算法你看透了么?,简述mybatis工作原理

Java 程序员 后端

架构实战营课程总结

子豪sirius

架构实战营

血赚!阿里P9整理出内部500多页最全双十一顶级秒杀方案笔记

Java 程序员 后端

详解:Java的重写方法与示例,用22天总结了一份完美的SQL学习笔记

Java 程序员 后端

读Java虚拟机类加载引发的血案,阿里P8大牛手把手教你

Java 程序员 后端

详解SpringBoot(2,java入门视频教学

Java 程序员 后端

模块二作业

沐风

“元宇宙”火出圈,不仅是区块链与科技圈,小说里也出现了

区块链日报

区块链 人工智能 facebook vr 元宇宙

微信朋友圈高性能复杂度分析

小何

架构实战营

模块2-朋友圈的架构设计

Geek_cb2b43

解放双手!IDEA常用代码一键补全,你学会了吗,最新阿里+头条+腾讯大厂Java笔试真题

Java 程序员 后端

计算机系统可靠性分析评测技术【全讲解】,深入理解linux内核百度网盘

Java 程序员 后端

设计一个百万级的消息推送系统,mybatis技术原理

Java 程序员 后端

说一下 jvm 有哪些垃圾回收器?,kalilinux渗透教程百度云

Java 程序员 后端

Vue进阶(幺伍柒):Form 表单重置失败问题解决

No Silver Bullet

Vue 10月月更

SpringCloud+Boot2+Docker+ES打造45K+Star的微服务项目,附教程

Java 程序员 Spring Cloud

解密阿里亿级流量核心架构:5个技术+200案例 —阿里P8

Java 程序员 后端

解开疑惑之:全面解析腾讯会议的视频前处理算法,java搭建分布式架构

Java 程序员 后端

计算机网络物理层,Java开发工程师笔试题目

Java 程序员 后端

话不多说直接上才艺“来吧!展示,【高级Java架构师系统学习

Java 程序员 后端

架构实战营第二模块总结

小何

架构实战训练营模块二

人生就是梦

架构实战营

被Netty搞昏了头,先学一下幂等性压压惊吧(1),只需一篇文章吃透Java多线程技术

Java 程序员 后端

解析分布式应用框架Ray架构源,java技术面试常见问题

Java 程序员 后端

计算机网络学习笔记第一章(概述) 超详细整理,springboot注解的工作原理

Java 程序员 后端

说一下 jvm 有哪些垃圾回收器?(1),java异常面试题

Java 程序员 后端

五分钟搞懂缓存

俞凡

架构

区块链日报网元宇宙频道正式上线

区块链日报

SOA对微服务的残余影响_SOA_Jan Stenberg_InfoQ精选文章