我一直认为上游和下游是像实际的河流一样,信息的流动就像水流一样。所以上游是数据的来源(例如HTTP请求),而下游则是数据的流向(例如处理请求的底层系统)。
最近我在研究API网关时发现有些网关使用了这个定义的相反方式。当时我认为这只是一个奇怪的现象。后来我发现基于nginx的一些API网关也使用了我所期望的术语的相反方式。nginx称其发送请求的服务器为“上游服务器”,因此传入的请求可能就是“下游客户端”。
从概念上讲,如果流向“上游服务器”,nginx似乎会将请求“顶上坡”,这完全违反直觉...显然,在反向代理和API网关的领域,重力被反转了!
我看到其他讨论中提到上游/下游表示系统之间的依赖关系,但对于中间件或基础设施组件,它们位于系统之间,依赖关系的概念可能会更加松散,而我仍然发现按照信息流的方式思考更有帮助——因为通常情况下这才是您依赖项的来源。
我的河流类比理解是否根本错误,还是这些软件组件把概念搞反了?