随着业务规模的迅速扩大,微服务已经成为各家企业采用的主要架构形式,这给开发团队带来了极大的好处:各个服务足够内聚,代码通俗易懂,开发效率高改善;服务之间可以独立部署,微服务架构使得持续部署成为可能;每个服务都可以独立进行负载均衡扩展和数据库扩展,并根据自己的需要部署在合适的硬件服务器上;自主开发使新技术的应用更加灵活。画外音:高内聚低耦合是技术团队力求做到的六字真言。微服务要真正落地,有一定的技术门槛:一是拆分服务,边界在哪里?如何选择?什么样的粒度才符合“高内聚低耦合”;管理?因为只要规模上了,任何一个小问题都可能被放大,最终导致雪崩效应。例如,可以使用多个相同的微服务进行负载均衡,以提高性能和可靠性,但微服务本身并不关心系统负载,何时启动更多的微服务,以及多个微服务的流量如何调度和分发,需要一个复杂的负载监控和平衡系统发挥作用。对于开发团队来说,如果没有想好如何做服务治理,一味地进行架构调整无异于灾难。画外音:服务治理是微服务架构的第一关。服务治理是一个很大的话题,包括服务注册发现、请求链接跟踪、服务熔断、服务限流、服务控制配置、服务预警等。回到实际业务场景:故障定位非常困难。如果出现问题,单独检查每一个是非常低效的。如何实现高效定位;某事导致整个系统崩溃;什么是适当的超时设置?100毫秒?300毫秒?极端情况下,有些业务分配到3秒,很多程序员不知道超时多少合适;你不能接受无限制的请求,没有可能100个并发会收到100个。如何配置并发以及如何限制流量?画外音:关于服务治理,我最重要的经验就是保护自己,保护自己。对于开发者来说,难点往往在于无法将积累的知识串联起来形成系统的知识结构,仅停留在机械的应用层面,无法根据业务场景匹配底层逻辑,最终无法形成能力解决问题,举一反三。想法往往比过程更重要。掌握了底层逻辑,形成思维模型后,工作起来就会豁然开朗!【本文为专栏作家《58神剑》原创稿件,转载请联系原作者】点此查看作者更多好文【责任编辑:赵宁宁TEL:(010)68476606】
