
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
微服务架构开发随着互联网的不断发展而逐渐被众多软件编程开发程序员掌握并应用,而本文我们就通过案例分析来简单了解一下,微服务架构开发常见问题都有哪些。
1、分布式固有复杂性
微服务架构是基于分布式的系统,而构建分布式系统必然会带来额外的开销。
性能:分布式系统是跨进程、跨网络的调用,受网络延迟和带宽的影响。
可靠性:由于高度依赖于网络状况,任何一次的远程调用都有可能失败,随着服务的增多还会出现更多的潜在故障点。因此,如何提高系统的可靠性、降低因网络引起的故障率,是系统构建的一大挑战。
分布式通信:分布式通信大大增加了功能实现的复杂度,并且伴随着定位难、调试难等问题。
数据一致性:需要保证分布式系统的数据强一致性,即在C(一致性)A(可用性)P(分区容错性)三者之间做出权衡。
2、服务的依赖管理和测试
在单体应用中,通常使用集成测试来验证依赖是否正常。而在微服务架构中,服务数量众多,每个服务都是独立的业务单元,服务主要通过接口进行交互,如何保证它的正常,是测试面临的主要挑战。所以单元测试和单个服务链路的可用性非常重要。
3、有效的配置版本管理
在单体系统中,配置可以写在yaml文件,分布式系统中需要统一进行配置管理,同一个服务在不同的场景下对配置的值要求还可能不一样,所以需要引入配置的版本管理、环境管理。
4、自动化的部署流程
在微服务架构中,每个服务都独立部署,交付周期短且频率高,人工部署已经无法适应业务的快速变化。有效地构建自动化部署体系,配合服务网格、容器技术,是微服务面临的另一个挑战。
5、对于DevOps更高的要求
在微服务架构的实施过程中,开发人员和运维人员的角色发生了变化,开发者也将承担起整个服务的生命周期的责任,包括部署、链路追踪、监控;因此,按需调整组织架构、构建全功能的团队,也是一个不小的挑战。
6、更高运维成本
运维主要包括配置、部署、监控与告警和日志收集四大方面。微服务架构中,每个服务都需要独立地配置、部署、监控和收集日志,成本呈指数级增长。服务化粒度越细,运维成本越高。
7、迫切的治理需求
正是因为有这些弊端,所以对微服务来说,有了更迫切的服务治理需求,以弥补弊端产生的问题。
但凡有需要微服务化的系统,都是具备一定规模了。一般会有很多模块构成,相应的部署节点也会非常多,这样故障的概率就会大幅增加,比如磁盘故障、网络故障,机器宕机,触发一些内核bug或者是运行环境漂移等。
本质上也是微服务细粒度拆分后提升了出问题的概率,正如上面说的,分布式系统有它固有的复杂性,相比于单体服务错误会显著的增多,需要高可用方案来保证复杂通信链路的健壮性。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。