小机灵鬼|干货速来!透彻剖析微服务架构设计模式,深入开发Java有奇效( 三 )
更好的容错性微服务架构也可以实现更好的故障隔离 。 例如 , 某个服务中的内存泄漏不会影响其他服务 。 其他服务仍旧可以正常地响应请求 。 相比之下 , 单体架构中的一个故障组件往往会拖垮整个系统
更容易实验和采纳新的技术原则上 , 当开发一个新的服务时 , 开发者可以自由选择适用于这个服务的任何语言和框架 。 当然 , 很多公司对此往往有各种限制和规范 , 但重要的是团队有了选择的权利 , 而不是被之前选定的技术绑架 。 更进一步 , 因为服务都相对比较小 , 使用更好的编程语言和技术来重写一项服务变得有可能 。 这也意味着 , 如果对一项新技术的尝试以失败而告终 , 我们可以直接丢弃这部分工作而不至于给整个应用带来失败的风险 。 这跟单体架构是完全不同的 , 单体架构之下的技术选型会严重限制后期新技术的尝试
弊端当然 , 没有一项技术可以被称为“银弹”。 微服务架构也存在一些显著的弊端和问题微服务架构的主要弊端和问题如下:
服务的拆分和定义是一项挑战采用微服务架构首当其冲的问题 , 就是根本没有一个具体的、良好定义的算法可以完成服务的拆分工作 。 与软件开发一样 , 服务的拆分和定义更像是一门艺术 。 更糟糕的是 , 如果对系统的服务拆分出现了偏差 , 你很有可能会构建出一个分布式的单体应用:一个包含了一大堆互相之间紧耦合的服务 , 却又必须部署在一起的所谓分布式系统 。 这将会把单体架构和微服务架构两者的弊端集于一身 。
分布式系统带来的各种复杂性使用微服务架构的另一个问题是开发人员必须处理创建分布式系统的额外复杂性 。 服务必须使用进程间通信机制 。 这比简单的方法调用更复杂 。 此外 , 必须设计服务来处理局部故障 , 并处理远程服务不可用或出现高延迟的各种情况 。
开发者需要思考到底应该在应用的什么阶段使用微服务架构使用微服务架构的另一个问题是决定在应用程序生命周期的哪个阶段开始使用这种架构 。 在开发应用程序的第一个版本时 , 你通常不会遇到需要微服务架构才能解决的问题 。 此外 , 使用精心设计的分布式架构将减缓开发速度 。 这对初创公司来说可能是得不偿失的 , 其中最大的问题通常是在快速发展业务模型和维护一个优雅的应用架构之间的取舍 。 微服务架构使得项目开始阶段的快速迭代变得非常困难 。 初创公司几乎肯定应该从单体的应用程序开始。 但是稍后 , 当问题变为如何处理复杂性时 , 那就是将应用程序功能性地分解为一组服务的时候了 。 由于盘根错节的依赖关系 , 你会发现重构很困难
服务的拆分策略如何定义一个微服务架构呢?跟所有的软件开发过程一样 , 一开始我们需要拿到领域专家或者现有应用的需求文档 。 跟所有的软件开发一样 , 定义架构也是一项艺术而非技术 。 本节我们将介绍一种定义应用程序架构的三步式流程
- |让你长高5cm的穿搭干货,一周逆袭时尚icon
- 聚米小美老师聚米微商|绝对成交实操细节方法,现学可现用的干货
- 美尼美快装定制|衣柜布局难点讲透彻才好,如何做衣柜选择?
- 聚尚美女性教育机构|聚尚美干货分享:色彩在服装搭配中的重要性
- 装修流大师兄|干货 | 五种卫生间风格,不花钱也能学到!
- 设计house效果图|各定制家具,如何挑选适合板材,干货分享涨知识了!
- 主播晋级|【主播干货】主播如何提升自己?不仅是变美那么简单!
- 盈拓国际展览|这些注意点不得不看!,外贸干货丨拿下客户
- 天猫入驻 天猫入驻:天猫商城入驻规则费用是多少?知舟集团送上满满干货
- 设计师文森|纯干货!新人必看的配色方法