我认为没有最好的服务架构,只有最适合的服务架构。微服务好不好要根据公司的业务来判断。很多互联网大公司在做中台化改造是因为业务发展的需要,当业务体量上来之后倒逼公司服务架构和组织架构调整。 微服务的优势显而易见,主要有几个特点:无中心化,松耦合,服务自治,组件化。这样的结构便于将复杂的系统结构拆分,各个服务团队更加灵活,能够提高交付速度,快速响应市场变化。 然而不能为了微服务而微服务,公司在架构选型的时候首先要评估业务体量与复杂度是否有微服务化的必要,如果业务本身不复杂,那么完全没必要去微服务化。否则不仅不能提高业务运行效率,反而为增加开发运维的负担。 微服务的缺点如下: 首先服务的切分需要慎重考虑,微服务化是手段不是目的,最终目的是通过有效的拆分应用,实现敏捷开发和部署,提高交付速度,拥抱变化。 其次微服务应用是典型的分布式系统,需要更加关注服务的可用性和一致性问题。服务注册与发现,容错,降级,熔断,限流等服务治理问题在微服务场景下可能要复杂的多。 第三微服务带来了运维的复杂性。一次完整的业务调用可能需要多个服务协同完成,服务的调用关系更加复杂,可能是串行/并行,可能同步/异步。如果没有强大的工具链的支撑,运维会是一场噩梦。 最后微服务不仅是技术架构的调整也是组织架构的调整。伴随着业务系统微服务化的同时,组织架构也应该打破传统的筒仓效应,更加扁平和灵活。 |
|