为什么要做微服务_为什么要做微服务(或者也许不应该)

为什么要做微服务

如今,微服务架构确实受到了热烈的宣传(我应该知道, 在很多会议上我都在谈论它 ),但是最初并没有多少人提到进行微服务的实际原因。

在我在公开演讲中讲述的故事中,我试图解释微服务架构来解决一个问题,而解决的主要问题是SCALE,而不是您认为的规模。 微服务主要解决工程规模问题

我们都知道小团队比大团队更快,更好地工作。 您的团队越大,项目规模就越大,最终您将得到一个庞大的整体,许多人都在同一代码库上工作。 发布版本变得非常困难,因为您需要同步许多人的工作并将其打包为可发布的版本。

通过将整体拆分为小型微服务,您可以创建小型工程团队,这些团队可以在不同工件与其他团队之间松散耦合的情况下按自己的时间发布和部署。

您获得的另一个巨大好处是能够回滚小的更改,而不会影响系统中的其他区域。 如果您拥有一个整体,则几乎不可能回滚一个不好的版本,因为它捆绑了许多功能;如果一个功能很差,则您不能回滚它,因为实际上您将回滚所有其他新功能。 如果将其分解为微服务,则可以将这些部分解耦,并且每个部分都可以部署和回滚而不会影响整个系统。

使用微服务,您可以从根本上提高开发速度,并通过为每个团队提供一组他们拥有并负责的微服务来扩展您的工程团队。

另一个可伸缩性问题是系统不同部分的SLA不同。 您的系统部分可能需要在多个数据中心或区域中运行的高性能和高可用性,而其他部分对性能和可用性的要求较低,例如,离线批处理。 如果您只有一个整体,则必须根据最高的SLA扩展整个系统,这可能会导致成本高昂。 使用微服务,您可以拆分这些服务,并对系统的不同部分使用不同的SLA,从而降低运营成本。 您还可以为系统的不同部分使用不同的中间件,从而选择最佳的解决方案来解决不同的问题。

进行微服务的第三个原因是风险管理。 如果您有一个整体,并且在生产中遇到问题,无论是生产问题,部署不当还是仅是错误,都可以使整个系统完成。 由于微服务是独立且分离的,因此受影响的微服务只有部分停机时间,并且对服务进行了碎片整理,而不是完全停机。

现在不要误会我,微颗粒是一个很好的解决方案,但是它解决了一个问题,它还有许多其他问题和复杂性。 如果您对使用简单的整体组件完全满意,请继续使用它,当您感到拥有整体组件的(可伸缩性)难题时,微服务可以帮助您解决一些难题,但要为运行分布式系统的各种难题做好准备。

翻译自: https://www.javacodegeeks.com/2016/04/microservices-maybe-shouldnt.html

为什么要做微服务

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值