看都不懂的三层架构,到底要怎么理解?( 三 )


4. 技术多样性
微服务架构中,提倡针对不同的业务特征选择合适的技术方案,有针对性的解决具体业务问题,而不是像单块架构中采用统一的平台或技术来解决所有问题 。
5. 业务数据独立
吃的微服务架构提供自主管理其相关的业务数据,这样可以随着业务的发展提供数据接口集成,而不是以数据库的方式同其他服务集成 。另外,随着业务的发展,可以方便地选择更合的工具管理或者迁移业务数据 。

看都不懂的三层架构,到底要怎么理解?

文章插图
 
6. 基础设施自动化
微服务架构提供自主管理其相关的业务数据,这样可以随着业务的发展提供数据接口集成,而不是以数据库的方式同其他服务集成 。另外,在微服务架构的实践过程中,对持续交付和部署流水线的要求很高,将促进企业不断寻找更高效的方式完成基础设施的自动化及 DevOps 运维能力的提升 。
听完成小胖忍不住表达了敬佩之意:“老司机就是老司机,噢说错了……架构师就是架构师,总结得这么简洁又深刻!”
“咳咳,低调低调……”
“听您讲解了这么多,我觉得微服务架构解决了很多当前三层架构的痛点 。不过我觉得没有任何一项技术或架构是完美的 。”
“非常正确 。进行微服务架构的落地是存在很多挑战的 。”
1. 分布式系统的复杂性
微服务架构是基于分布式的系统,而构建分布式系统必然会带来额外的开销 。
性能:分布式系统是跨进程、跨网络的调用,受网络延迟和带宽的影响 。
可靠性:由于高度依赖于网络状况,任何一次的远程调用都有可能失败,随着服务的增多还会出现更多的潜在故障点 。因此,如何提高系统的可靠性、降低因网络引起的故障率,是系统构建的一大挑战 。
异步:异步通信大大增加了功能实现的复杂度,并且伴随着定位难、调试难等问题 。
数据一致性:要保证分布式系统的数据强一致性,成本是非常高的,需要在 C(一致性)A(可用性)P(分区容错性) 三者之间做出权衡 。
2. 运维成本
运维主要包括配置、部署、监控与告警和日志收集四大方面 。微服务架构中,每个服务都需要独立地配置、部署、监控和收集日志,成本呈指数级增长 。
3. 自动化部署
在微服务架构中,每个服务都独立部署,交付周期短且频率高,人工部署已经无法适应业务的快速变化 。因此如何有效地构建自动化部署体系,是微服务面临的另一个挑战 。
4. DevOps 与组织架构
在微服务架构的实施过程中,开发人员和运维人员的角色发生了变化,开发者将承担起整个服务的生命周期的责任,包括部署和监控;而运维则更倾向于顾问式的角色,尽早考虑服务如何部署 。因此,按需调整组织架构、构建全功能的团队,也是一个不小的挑战 。
5. 服务间的依赖测试
单块架构中,通常使用集成测试来验证依赖是否正常 。而在微服务架构中,服务数量众多,每个服务都是独立的业务单元,服务主要通过接口进行交互,如何保证依赖的正常,是测试面临的主要挑战 。
6. 服务间的依赖管理
微服务架构中,服务数量众多,如何清晰有效地展示服务间的依赖关系也是个不小的挑战 。
“微服务的落地需要经过全面的考察和完善的试验,并不是每个场景都适合使用微服务架构,也不是每个企业都有能力或者精力去面对这些挑战 。”老王最后语重心长的说 。
“嗯嗯,每件事都有两面性,最合适的才是最好的!对了王哥,您已经给我上完理论课了,啥时候带我实践下呗?”
“你先好好消化完今天讲的这些,下次再说吧……”
“好吧,很期待我们的下一次交流……”
今天的分享就到这里啦,如果大家喜欢小编的文章,可以关注下小编,小编每天会更新两篇文章!




推荐阅读