《springcloud学习》二 微服务简介

1.微服务的简介

假设一个场景:网上电影购票系统,涉及的模块有电影模块、订单模块、用户模块。

在没有微服务之前,我们的做法可能是,一个项目,存放所有的模块信息,当前,这种做法也没有问题,可以实现功能,随着我们的业务系统越来越大,代码量,还有用户人群越来越大,这样脓肿的项目,就会存在各种各样的问题,代码维护成本,硬件成本,不好维护等等。这样微服务就应运而生。

我们常说微服务,那什么是微服务?

所谓的微服务是SOA架构下的最终产物,该架构的设计目标是为了肢解业务,使得服务能够独立运行。微服务设计原则:1、各司其职 2、服务高可用和可扩展性。

      微服务架构是从SOA架构演变而来的,比SOA架构粒度更加精细,让专业的人,做专业的事,目的是为了提高效率,每个服务于服务之间互不影响,每个服务必须独立部署(独立数据库,独立redis),微服务架构更加体现轻量级,采用restful风格提供api,也就是使用http协议+json格式进行传输,更加轻巧,更加适合于互联网公司进行敏捷开发,快速迭代产品。而SOA架构采用的是SOAP协议,也就是http+xml(占用空间较大)

2.微服务的优点

    2.1易于开发和维护

          一个微服务只关注一个特定业务功能,所以代码逻辑清晰,代码量少,这样就易于维护,而整个应用是有 多个微服务构建而成。例如:上面的购票系统,用户模块就需要辅助用户的业务逻辑,而不用管电影,订单的业务。

    2.2   单个服务启动快

       单个服务,代码量较少,所以启动较快。本人之前就遇到过,启动一个项目服务花了5分钟左右,这还是小型系统,如果是大型系统,启动服务半个小时,也是正常,而一般的外部系统,时时刻刻可能有人在用,所以,一般的部署时间点,都是在凌晨左右,如果中间空缺半个小时左右不能用,我想你的电话,要被客户和公司的人打爆把。

    2.3   单一修改易于部署

     单一应用,只要修改,就得重新部署整个项目,而微服务就不一样,只需要重新发布修改的那个服务就行,一般这个服务,也不止一个,案例:例如游戏的版本1.4  1.5,实际上上线1.5的过程中,1.4版本还是可以正常使用的,这就是因为,该服务不止一份,也就是说,部署不影响系统的客观使用。

  2.4    技术不受限制

            在微服务中,我们可以根据team掌握的技术,合理的选择技术

3.微服务的缺点

       3.1.运维要求较高

             单一应用,只需要打一个包直接部署就行,而微服务,可能是几十个或者上百个服务构成一个应用系统。所以对运维要求较高。 

       3.2   分布式复杂性

         使用微服务构建的是分布式系统,可能存在系统容错,网络延迟,分布式事务等问题

      3.3  接口调整成本高

        微服务之间都是通过接口通讯的,如果需要某一个微服务的接口,可能该服务对应的一系列接口都要更改。

       3.4    重复劳动

        服务之间可能有重复的代码,而这部分代码,没有达到需要独立成一个服务的程度,所以,会有重复代码。

如果你热衷技术,喜欢交流,欢迎加入我们! 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值