写点什么

微服务与单片应用之间的较量

  • 2014-08-22
  • 本文字数:800 字

    阅读完需:约 3 分钟

采用微服务是分解单片应用(monolithic application)的一种方式。这样做可以获得更高的解耦程度、关注点分离,以及快速部署等优势。但是,这并不是唯一也不是最好的方式。 Todd Hoff 对这两种架构方式进行了描述与比较

Todd 提到了今年早些时候在 twitter 上发生的一场辩论,这场辩论的参与者包括了 Adrian Cockcroft Sam Newman John Allspaw ( Etsy ),他们对微服务和单片应用之间的优缺点进行了比较。该辩论首先由 Adrian 发起,他声称在听了 QCon 伦敦 Etsy 的演讲之后,让他更清晰地认识到为什么单片应用是一个死胡同,而微服务应该可以取而代之从而能获得持续的可伸缩的部署。John 则指出,虽然微服务带来了更多的选择,但同时引入了更多的约束。而少量较容易理解的工具和模式反倒能带来优势。

Todd 将 Etsy 描述为一家成功的公司,因为该公司拥有着大约 150 个工程师,并且每天会部署超过 60 次的单个单片应用。在他的印象中,虽然很多人将单片应用视为反模式,但是 Etsy 通过采用例如持续集成、自动化部署、良好的监控等手段构建了这个大型的网站,并且做得很好,而且他们基本上都是从主分支进行部署的。

一个用于针对所谓的单片应用问题的解决方案是将它分解成一系列微服务,从而达到松耦合和独立部署这样的目标。但是 Todd 提出了质疑,微服务是达到上述目标的唯一或者最好的方式吗?他指出 Etsy 一天发布多次小型变更的方式也是可选方式的一个现成的例子。

Todd 强调 Etsy 目前一直在单片应用的方式下工作地很好,从而表示了对单片方式的支持。因为即使是在一个单片应用中,复杂度也可以被封装到每个服务之中。他将服务与代码库进行了比较,并表示只要是足够稳定的接口,也可以像拥有自己生命周期的独立产品一样对待。一旦接口发生变化,不管是使用代码库还是服务,新的版本就会创建。Todd 相信,只要基于合适的软件工程,单片的程序也可以工作地很好。

查看英文原文: Microservices vs Monolithic Applications

2014-08-22 00:391902
用户头像

发布了 52 篇内容, 共 25.4 次阅读, 收获喜欢 5 次。

关注

评论

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

面试题:Java 中的 ==, equals 与 hashCode 的区别与联系

简爱W

影响企业架构项目成功的8个重要步骤

周金根

TOGAF实用教程(IT帮)

周金根

企业架构实施简介

周金根

比 996 更可怕的是职场 PUA

非著名程序员

职场 职场成长 职场误区 职场 PUA

如何去学好JS的8条小建议

华为云开发者联盟

html 编程 大前端 js 代码

Unix路径是如何简化算法,架构师性能优化 John 易筋 ARTS 打卡 Week 10

John(易筋)

ARTS 打卡计划

JVM系列-读懂 GC 日志

Rayjun

Java JVM GC

Zookeeper从入门到放弃之Zookeeper典型应用场景

小隐乐乐

zookeeper 分布式 分布式锁

LeetCode题解:206. 反转链表,JavaScript,While循环迭代,详细注释

Lee Chen

大前端 LeetCode

Golang新手常犯错误之【循环迭代篇】

卓丁

常见错误 引用迭代 Go 语言

【API进阶之路】无法想象!大龄码农的硬盘里有这么多宝藏

华为云开发者联盟

容器 层次 API 网关 华为云

股权交易中心+区块链试点将开始

CECBC

防篡改 股权交易 可追溯 信息存证

Java架构-不要成为项目风险的奴隶

我是苞谷

Java

ARTS WEEK6

紫枫

ARTS 打卡计划

区块链如何切入供应链金融市场?

CECBC

拥抱400GE新引擎,跨越新基建的时代龙门

脑极体

【总结】性能优化2

小胖子

高并发系统设计要点

南方有乔木兮

Java

Java架构-代码分层的设计之道

我是苞谷

没想到 Hash 冲突还能这么玩,你的服务中招了吗?

程序猿石头

Java 安全攻防 后端 hashmap hash

癌症筛查清单

Lee Chen

大前端 随笔杂谈

搞事情?Spring Boot今天一口气发布三个版本

YourBatman

Spring Boot 新特性

应用程序研发之基础知识分层与进化

superman

OMG组织的企业架构建模规范

周金根

编程核心能力之重构

顿晓

学习 重构

安全系列之——RSA的前世今生

诸葛小猿

安全 加密解密 非对称加密 rsa

在线互动课堂低延迟交互利器:高性能异步化设计与监控

徐敏

线程模型 异步 Task 在线课堂

浅析区块链如何改变生活

CECBC

数字银行 供应链 身体监测 资产管理

性能测试 + 操作系统 + 锁

鲁米

设计模式之外观模式解析

Seven七哥

程序员 设计模式 外观模式

微服务与单片应用之间的较量_SOA_Jan Stenberg_InfoQ精选文章