写点什么

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

  • 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:391420
用户头像

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

关注

评论

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

Java基础入门教程!Java垃圾回收机制小结以及优化建议

Java 程序员 面试 后端

Java小技巧:Oracle存储过程常用技巧

Java 程序员 面试 后端

Java开发指南!Redis高频面试笔记:基础

策划Java工程师

Java 程序员 面试 后端

Github标星5.3K,YGC问题排查,又让我涨姿势了

JVM调优资料

Java 程序员 面试 后端

Docker 集群安装时的服务和进程分配

HoneyMoose

【Flutter 专题】77 图解历史 Android Native 项目接入 Flutter Module

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 8月日更

iOS开发:解决App进入后台,倒计时(定时器)不能正常计时的问题

三掌柜

8月日更 8月

路边的小店

箭上有毒

8月日更

IBM大面积辞退40岁+的员工,Java泛型详解

JVM调优资料

Java 程序员 面试 后端

Java小程序开发实例!docker容器启动后修改或添加端口

Java 程序员 面试 后端

Java开发视频教程!MySQL8

策划Java工程师

Java 程序员 面试 后端

怎样评估选型一个企业软件产品?

明道云

Java开发必须掌握!Java虚拟机(JVM

策划Java工程师

Java 程序员 面试 后端

Java开发面试问题,Java中高级核心知识全面解析(2)

策划Java工程师

Java 程序员 面试 后端

Flutter 的 runApp 与三棵树诞生流程源码分析

工匠若水

flutter android 8月日更

netty系列之:netty架构概述

程序那些事

Java Netty nio 程序那些事

GitHub标星8k!你以为在做的是微服务?不

JVM调优资料

Java 程序员 面试 后端

Java入门视频教程!什么是JVM?

Java 程序员 面试 后端

Java开发面试准备,【备战秋招冲击大厂

策划Java工程师

Java 程序员 面试 后端

Druid 独立服务器方式部署文档

HoneyMoose

kubernetes入门:使用kubeadm搭建master,亲测无异常

小鲍侃java

8月日更

Java入门你值得拥有!同一个Spring-AOP的坑

JVM调优资料

Java 程序员 面试 后端

Java工作资料!Java开发基础知识学习总结之(上

Java 程序员 面试 后端

oeasy教您玩转vim - 1 - # 存活下来 🥊

o

Java开发经验谈:动手造轮子:实现一个简单的-AOP-框架

策划Java工程师

Java 程序员 面试 后端

从 Docker 中安装启动 Druid

HoneyMoose

Java并发原理解析!我们来捋一捋JAVA的异常

Java 程序员 面试 后端

Java开发6年了,你确定你真的理解_双亲委派_了吗?

Java 程序员 面试 后端

Java开发入门教程!你技术这么好,总要改变点什么把

Java 程序员 面试 后端

Java开发实战!不会吧

策划Java工程师

Java 程序员 面试 后端

Java开发热门前沿知识!Java集合中的基本数据结构

策划Java工程师

Java 程序员 面试 后端

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