隐藏秋招绝招:微服务架构五个问题

1:我们为什么需要使用微服务架构?或者说微服务能帮助我们解决什么问题? 

思路:我们可以从微服务的对立面进行考虑,从单体应用存在的问题思考。

  1. 随着业务的发展,开发变得越来越复杂。 修改、新增某个功能,需要对整个系统进行测试,重写部署。为了解决上述问题,微服务架构应运而生,简单来说,微服务就是将⼀个单体应⽤拆分成若干个小型服 务,协同完成系统功能的⼀种架构模式,在系统架构层面进行解耦合。
  2.  各个模块使⽤同⼀种技术框架,局限性太大,很难根据业务选择最适合的技术架构。微服务架构拆分成小的模块之后的各个微服务之间进行通信 微服务之间只需要制定统⼀的协议即可,⾄于每个微服务使⽤什么技术框架来完成,统统不需要关心。 这种松耦合的⽅式使得开发、部署都变得更加灵活,同时系统更容易扩展,降低了开发、运维的难度。

2.微服务的优点

  1. 各个服务之间实现了松耦合,彼此之间不需要关注对⽅是⽤什么语言开发,无论是python,java,c#等等,只需要保证自己的接⼝可以正常访问即可。通过标准协议访问其他接口即可。
  2. 各个微服务之间独立管理,只需要专注于做好自己的业务,开发和维护不会影响到其他的微服务。 微服务是⼀种去中心化的架构方式,相当于每个人做好的零件,最终将其拼接在一起而不管过程是如何生产零件的。

3.微服务的缺点

  1. 某个系统的远程调用出现问题时,导致微服务不可用,因为其是通过注册中心来调用的,因此就有可能产生级联反应,造成整个系统的崩溃。
  2. 如果某个需求需要调用多个微服务,如何来保证数据的⼀致性。一般采用json。
  3. 相比较于单体应用,微服务的学习难度会增加,对于新加⼊团队的员工来讲,如何快速掌握上手微服务架构,是⼀个问题。

4.微服务设计原则

  1. 分析业务需求,从大到小提炼出核心需求,搞清楚服务间的交互关系,先拆分成粒度较大的服务,然后再根据具体的业务需求逐步细化服务粒度。
  2.  各个微服务的功能职责尽量单⼀,避免出现多个服务处理同⼀个需求。避免出现高耦合。
  3.  保证数据的独⽴性,各个微服务独立管理其业务模型下的数据。 使⽤ RESTful 协议完成微服务之间的协作任务,数据交互采用JSON 格式,方便调用和整合。

5.解决方案

  1. Spring Cloud 微服务是⼀种分布式软件架构设计方式,具体的落地⽅案有很多,Dubbo、Spring Boot/Spring Cloud、Motan 等等,但是Spring Cloud 属于Spring全家桶里的一份子,基于 Spring Boot 使得整体的开发、配置、部署都非常方便,可以 快速搭建基于微服务的分布式应⽤,Spring Cloud 相当于微服务各个组件的集⼤成者。
  2. SpringCloud依托于Spring平台,具备更加完善的生态体系;而Dubbo一开始只是做RPC远程调用,生态相对匮乏,现在逐渐丰富起来。

  • 29
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 27
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

华农DrLai

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值