题解 | 微服务架构下的深层依赖链路漏洞影响面分析

微服务架构下的深层依赖链路漏洞影响面分析

https://www.nowcoder.com/practice/a8416ddac26b427c97d8a8c6a7d14779

WITH RECURSIVE temp as (
    select
    caller_service_id
    ,s1.service_name as s1_name
    ,callee_service_id
    ,s2.service_name as s2_name
    ,first_call_date
    from service_dependencies s_d left join services s1 on s_d.caller_service_id = s1.service_id
    left join services s2 on s_d.callee_service_id = s2.service_id
    where first_call_date like '2025-%' 
),
dependency as (
    select
    caller_service_id 
    ,s1_name
    ,1 as dependency_depth
    ,concat( 'Payment_Gateway', '->', temp.s1_name ) as dependency_path
    from temp
    where temp.s2_name = 'Payment_Gateway'

    union all

    select
   temp.caller_service_id
    ,temp.s1_name
    ,dp.dependency_depth + 1 as dependency_depth
    ,concat( dependency_path, '->', temp.s1_name ) as dependency_path
    from dependency as dp join temp on dp.caller_service_id = temp.callee_service_id
    where find_in_set( temp.s1_name, dependency_path) = 0
)

select
caller_service_id as service_id
,s1_name as service_name
,dependency_depth
,dependency_path 
from dependency 
order by dependency_depth asc, service_id asc, dependency_path asc;

其实个人感觉这题不太严谨,没有考虑服务循环调用的情况,所以我自作聪明补充了一句where find_in_set( temp.s1_name, dependency_path) = 0 供大家参考吧

全部评论

相关推荐

04-08 23:37
已编辑
东华大学 结构工程师
点赞 评论 收藏
分享
再懒也要睡懒觉:大学4年玩的挺爽的哈😅
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务