一、 面向服务架构

面向服务(SOA)具有松散耦合,接口,重用重服务,特点。

在电商领域中,像出员服务、商品服务、单服务服务。

样按服务拆分的优势

服务的接口明晰,发人员向统一的服务接口开发(遵循约定好的契约),不需要关心服务实现的细节,使得每一个服务可以由专门的团队精研、专注这个服务的业务,方便组织大规模的团队开发。

服务开发的劣势:

求团有面向服务开发的经验熟悉服务于服务间的契约、规范的指定。

带来调试的复杂度,因是由简单的类调用变化为服务调用,A服务又可能依赖BCD服务的调用,成复链路,求团队有丰富的服务mock模拟)经验。

二、 扩展和扩容

服务架构去中心化的、服务注册和现的,使得扩容变得容易,服务的新增和复本的新都是自动发现、负载的,这使得扩容变得很容易。而且可以针对热点业务进行单独扩容,如订业务并发较高,只针对订服务进行扩容,单体应用的集群场景中,如果要扩容,只能将所有业务起增加副本。

同时微服务的部署对复杂,为按服务拆分后,服务的数都多,电商领域Legendshop拆分方式来举例,些基础的服务(图片服务、短信服务、邮件服务上电商业务本身服务(商品、单、员、统计等),要有服务注册和发现(注册服务、关服务),要有10至20个服务。就要求团队有相应的devops(自动化的持续集成)经验和能力,为手动去部署、维这么多服务是不可想像的。

三、 服务降级熔断保护

基于spring cloud 体系的微服务架构中,较完善的服务监控、服务降级和熔断机制。

熔断:因为如果某个服务发生人力不可抗的崩溃(如宕机停电或断网),发生雪崩效应这时应尽可能的保护其它服务可用.

降级:大规模访问发生时,出了系统身的承载能时要保证承载能力范围内的用户用。

服务调用监控服务调用链路中,如果发生熔断或降级,维人员应该及时、清晰的知道问题热点发生在哪里,便为系统升级做必要准备。

述功能在spring cloud 的 Hystrix 中有较完善的实现,Legendshop微服务版中已经在相应的服务逻辑中都已经做了相应的适配。

四、 灵活网关

微笑服务的服务之上是有一层gateway的gateway服务才能调用到,使得企业可以通过gateway组织自己的中台系统,即根据实际业务暴露前端需要的api根据业务场景在gateway中组织不同的权限拦策略其背后的服务能力是可重用的,变化较的。

五、 总

综上所述,微服务不是银弹,有很多好处,不能一下解决企业的所有问题,们对客户的建议

看自已的团队是否适合,团队对SOA开发有清醒的认识,有SOA开发经验,有devops的经验。

样才能发挥微服务的价值,则他可能带来更多的是麻烦。