专栏首页分母为零为什么要使用微服务

为什么要使用微服务

为什么要使用微服务

单体模式

单体模式所有的功能打包在一个包里,包含了 DO/DAO,Service,UI等所有逻辑。

微服务

有效的拆分应用,实现敏捷开发和部署。

一体化架构的问题

难以扩展

一体化架构应用只能通过在负载均衡器后面放置整个应用程序的多个实例来进行水平扩展。如果应用中的特定服务需要扩展,则没有简单的选项。我们需要完整地扩展应用程序,这显然会造成不必要的资源浪费。

相比之下,基于微服务的应用程序允许我们根据需要独立扩展单个服务。如果需要缩放服务B,则可以有10个实例,同时保持其他实例,并可以根据需要随时更改。

交付时间长

一体化架构在单个应用的任何部分/层中进行的任何更改都需要构建和部署整个应用程序。个人开发人员还需要下载整个应用程序代码来修复和测试,而不仅仅是受影响的模块,这就影响到了持续部署的效率。

而在微服务架构中,如果仅在一百个微服务中的一个中需要改变,则仅构建和部署改变的微服务,没有必要部署一切。我们甚至可以在短时间内多次部署。

应用复杂性

过去,随着应用规模的增长(功能、功能等),团队也会相应扩张,应用很快就就会变得复杂和交织在一起。随着不同的团队不断修改代码,维护模块化结构慢慢变得越来越困难,并慢慢导致像意大利面一样交织的代码。这不仅会影响代码质量,还会影响整个组织。

在基于微服务的应用中,每个团队都在单独的微服务上工作,代码会有序很多。

故障级联

如果没有正确设计,一体化应用的一部分失败可能会级联并导致整个系统崩溃。

在基于微服务的架构的情况下,我们可以使用断路器来避免这种故障。

陷入某种技术/语言

使用一体化架构,意味着被某种已实现的技术/语言锁定。如果需要更改技术/语言,则必须重写整个应用程序。

使用微服务,每个服务可以根据需求和业务以不同的技术或语言实现。任何改变服务技术/语言的决定都只需要重写该特定服务,因为所有微服务都是相互独立的。

小结

简单来说,使用微服务架构会获得以下好处:

  • 独立开发部署服务
  • 速度和敏捷性
  • 更高的代码质量
  • 获得围绕业务功能创建/组织的代码
  • 提高生产力
  • 更容易扩展
  • 自由(在某种程度上)选择实施技术/语言 当下,已经有很大一部分公司完成了单体架构向微服务架构的迁移改造。

本文分享自微信公众号 - 分母为零(gmg1014),作者:gmg

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-08-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 什么是微服务?

    微服务(Microservice)这个概念是2012年出现的,作为加快Web和移动应用程序开发进程的一种方法,2014年开始受到各方的关注,而2015年,可以说...

    分母为零
  • SpringBoot实现多数据源

    具体的代码逻辑不再赘述,源代码地址【https://github.com/gmg0829/SpringbootLearningExample/tree/mast...

    分母为零
  • 如何具体实践微服务

    服务框架是一个比较成熟的领域,有太多可选项。Spring Boot/Cloud,由于 Spring 社区的影响力和 Netflix 的背书,目前可以认为是构建 ...

    分母为零
  • 微服务架构体系——它适合您的软件开发吗?

    “Microservice architecture provides a range of technical benefits that contribut...

    程序你好
  • 为什么你总是选择微服务?(一体化架构有疑问)

    有没有想过为什么像苹果,eBay和Netflix这样的公司非常关心微服务?是什么让这个简单的架构变得如此特别以至于它被过度炒作?将整个正在运行的应用程序从一体化...

    eru
  • 微服务简介

    我们先来看看你为什么要考虑使用微服务。 构建单体应用 让我们假设你们要开始制定一个全新的出租车招标程序,旨在与Uber和Hailo进行竞争。经过一些初步会议和...

    用户1263954
  • 【微服务】微服务实战(一):微服务架构的优势与不足

    Rainbond开源
  • 微服务架构的优势与不足

    英文原文:Introduction to Microservices   这篇文章作者是Chris Richardson,他是早期基于Java的Amazonit...

    李海彬
  • 建构微服务的第一步: 微服务哪里来?

    许多人谈到 "微服务" 又是在纠结一个二十多年前的老问题; “粒度”; 什么是微服务划分的 "粒度"? 二十多年来, 许多人都在以一个 "标准答案";粒度; 在...

    Ken Fang 方俊贤
  • 运维对网站架构的一点看法

    图片中的人物是Jeff Dean ,google分布式系统的灵魂式人物,具体的内容大家可以google一下,他的很多分布式系统设计思想都在影响着技术趋势,...

    用户1593318

扫码关注云+社区

领取腾讯云代金券