美文网首页
微服务开发实战(二)

微服务开发实战(二)

作者: 禅大师 | 来源:发表于2018-12-31 00:34 被阅读0次

    我们为什么要使用微服务这样的架构来构建应用程序呢?这是因为微服务会给我们带来不少好处。

    1. 可以采用不同的技术开发
      既然一个微服务就是一个独立的小应用,那么我们就可以采用不同的编程语言和技术来开发微服务。可以在不同的应用场景中使用最适合该服务的技术。如果系统的某个部分需要性能上的提升,就可以使用诸如c/c++,go这样高性能的编程语言来实现。系统中的不同部分也可使用不同的数据存储技术,如下图所示,对于社交网络来说,图数据库能够更好地处理用户之间的交互操作,但是对于用户发布的帖子而言,文档数据库可能是一个更好的选择。


      01.png

    除了可以选择更适合的技术开发微服务之外,对于系统的维护和升级也是有好处的。假设你接手了一个陈旧的在线商城系统,是用你完全不熟悉的RoR开发。现在要增加一种支付方式而不得不去修改源代码,那这将是一个痛苦的过程,相信很多人有过维护旧系统的体验,有时候简直恨不得能重写一遍。如果采用微服务的架构,那么就可以完全抛弃以前的支付服务,用你最熟悉的语言来开发,到最后,这个应用就变成了一艘特修斯之船。

    1. 方便弹性扩展
      当应用的用户数量不断增多时,就需要增加更多的服务器。如果是一个单一的大型服务,只能作为一个整体进行扩展。哪怕只有其中一小部分存在性能问题,所有的其他部分都必须同时扩展。而如果使用多个小服务,则只需对需要扩展的服务进行扩展(如下图所示),从而节省服务器或者云服务的成本。


      02.png
    2. 简化部署
      对于一个大型的应用来说,即使修改了一行代码,也需要全部重新编译部署一遍。这样就不能频繁部署更新,如果积累很多修改再更新,那么出现错误的可能性就增大。在微服务架构中,每个服务都是独立的,这样就更容易对特定部分的代码进行部署(如下图所示),就算发现问题,影响也不大,可以快速回滚。这也意味着我们的客户可以尽快用上新开发的功能。在敏捷软件开发思想中,软件的发布是以天甚至是小时来计算。如果不采用微服务架构,那是很难做到的。


      03.png
    1. 软件复用
      在软件开发领域,有个著名的原则:“不要重复发明轮子“。一个大型的单一系统,要将其中的某个业务模块分离出来在另一个项目中使用,是一件很困难的事情。而在微服务架构中,每个服务都是独立的解决某个方面的问题。多个这样的的服务,可以随意组合搭配,生成新的应用,或者直接给新的应用提供相应的服务。

    相关文章

      网友评论

          本文标题:微服务开发实战(二)

          本文链接:https://www.haomeiwen.com/subject/xfzblqtx.html