面试了不少于 100 个后端工程师, 初级到高级都有. 有相当一部分 (>70%) 的人, 都会说我做的服务调用下游服务如何如何.
为什么会这样? 只要认真思考一下, downstream 和 upstream 的概念不至于记不住吧?
101
wisej 2023-09-20 20:02:37 +08:00
感谢这个提问。我有过这种矛盾,就是发现微服务语境下,和制造业供应链语境下,上下游概念它们是反的。就在刚才,我想明白了。本质是看你的视角是生产者还是消费者。制造业供应链的传统是从生产者角度,所以原材料供应商是上游;微服务语境下,是按调用链,也就是消费者即用户角度。
|
102
salmon5 2023-09-20 20:13:43 +08:00
nginx 里面有个 upstream ,是说的这个意思
|
103
troywinter 2023-09-21 00:35:46 +08:00
通过调用关系定义上下游关系就是错误的,同时在同一软件系统中,在不同的 use case 中有不同的 context ,它们的上下游关系也是不同的,不是以服务来定义的,是以当时的 use case 决定的。
|
104
bestcondition 2023-09-21 01:05:40 +08:00
@iblessyou 感觉上下层比较好理解
|
105
herozzm 2023-09-21 07:58:05 +08:00 via iPhone
互联网人就喜欢玩黑话
|
106
daybreakfangyang 2023-09-21 08:10:15 +08:00 via Android
相对上下游
|
107
user9121 2023-09-21 09:00:16 +08:00
问这种概念的意义是啥? 知道谁调谁就行了. 面后端不都是问如何解决服务依赖,解耦服务,解决分布式事务吗? 而且大的系统很多服务之间是互相调用的,可能会是一个网状结构.哪还有清晰的上下游.
|
108
youngwen 2023-09-21 10:03:48 +08:00
个人来说,由于画架构图经常会将底层服务放在下面,因此习惯性认为更底层的依赖是下游......
|
109
atpex 2023-09-21 14:32:30 +08:00
实在不行可以在 JD 上写清楚你需要一个能够搞懂“上游下游”的人,不然你要别人猜对的概率高就得加钱,不想花钱招人的话可以不用招。如果你说这是“常识”,那么跟>70%的数据又是矛盾的。建议少搞点有的没的八股文,卡脖子的东西应该就没这么多了
|