干货 | 携程微服务体系下的服务治理之道和优化实践

本文深入探讨了携程在微服务架构下的服务治理问题,包括循环依赖、调用链路复杂等问题,以及相应的治理策略。通过实例展示了如何优化服务治理,提升系统稳定性、开发效率和资源利用率,例如通过应用分层、流量治理和功能复用等方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

作者简介

HongLiang,携程高级技术专家,专注系统性能、稳定性、承载能力和交易质量,在技术架构演进、高并发等领域有丰富的实践经验。

一、背景

微服务架构在中大型互联网公司中被广泛应用,随着业务的发展,应用数越来越多、调用关系也越来越复杂。中台化后,交易系统要支持业务线多,系统复杂性高,原系统虽然能支撑业务量的持续增长,但在稳定性、吞吐力和资源利用率上面,还存在优化空间。

分享的目的

本文站在业务开发角度介绍开发在微服务架构下遇到的相关问题(微服务架构的优缺点这里不再赘述),以门票活动预订流程查询引擎为例,分享微服务治理的实战经验,希望能给遇到同样问题的同学提供一些借鉴思路。

如下图所示,蓝色部分为本文的重点

85109e3b3f820e9992b4e759b1ed065f.png

图1 微服务架构关注点

在微服务治理之前,我们先简单了解一下微服务历史和陷阱。

二、微服务简史

微服务概念在2005年被提出,2011年用来代表架构风格。

定义:微服务是一种架构风格,一个大型复杂软件应用由一个或多个微服务组成,每个微服务仅关注于完成一件任务。

2.1 微服务与SOA的关系

大家在使用SOA (Service-Oriented Architecture)的时候往往分不清和微服务有什么关系,总结如下:

  • 微服务是SOA的实现方式

  • 微服务是去掉ESB后的SOA

  • 微服务是一种和SOA相似但是两种不同的架构设计风格

f220d6ed800eb6e64320989680aa9191.png

图2 微服务与SOA的关系

了解微服务与SOA关系后,再对比一下功能差异:

d6bedb7d4eff05485a62a2fe7e1a27b3.png

表1 微服务与SOA对比

2.2 携程SOA从1.0到 2.0演进

7cd56334060586ffa904cd38f9bb0183.png

图3 携程SOA演进

携程微服务:携程SOA2.0是微服务架构,推荐单机、单应用、单服务。

三、微服务的陷阱

微服务这个话术会将关注点错误的聚焦在“微”上,大家会误以为服务越小越好,实际上大小并不是第一考虑因素。接下来我们来看看开发微服务应用的时候容易踩到的陷阱。

下图可以看出,服务拆分越细,调用关系越复杂。

调用链路理论上有 n * (n-1) 条:

f5a905d045774d7543b7c0d809c6ff48.png

图4 服务粒度越细调用关系越复杂

应用粒度拆分过细容易带来以下几个问题:

3.1 重复调用

调用路径 C - >D ->E 和 C ->E, 对于E的一次请求,可能会被调用了多次。

5b5793e5841fe8b4089a34979ec163cc.png

图5 一次请求中服务E被重复调用

3.2 循环依赖

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值