首页资讯中心微服务架构优势和劣势

微服务架构优势和劣势

发表时间:2019-12-21 阅读:4964
微服务商城Java商城B2B2C商城系统微服务商城Java商城B2B2C商城系统
微服务架构优势和劣势

一、 面向服务架构

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

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

这样按服务拆分的优势:

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

面向服务开发的劣势:

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

同时会带来调试的复杂度,原因是由简单的类调用变化为服务调用,A服务又可能依赖B、C、D服务的调用,形成复杂链路,要求团队有丰富的服务mock(模拟)经验。

二、 扩展和扩容

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

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

三、 服务降级和熔断保护

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

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

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

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

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

四、 灵活网关

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

五、 总结

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

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

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

文章来源:广州朗尊软件科技有限公司
【朗尊软件】是中国领先的专业电商平台提供商,秉承着"专业塑造传奇,用心成就电商"的理念,专注于为用户提供一体化的电商解决方案及服务,搭建垂直行业垂直电商一站式营销管理工具。目前拥有自主研发的电子商务平台产品:SAAS云平台、微商城小程序、云商城、云小店、代理商平台、B2B2C商城、B2B大宗交易平台、跨境电商服务、大数据平台搭建、微服务架构等产品、各种定制商城及解决方案。
网站声明:以上内容为朗尊软件官方网站的原创文章,如需转载,请注明出处,谢谢合作!