- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直沿着实际河流的路线思考上游和下游,其中信息的流动就像水一样。因此,上游是水/数据的来源(例如 HTTP 请求),下游是水/数据的去向(例如为请求提供服务的底层系统)。
我最近一直在研究 API 网关,并注意到其中一些网关使用了与此定义相反的内容。我当时耸耸肩,认为这很奇怪。然后我发现一些 API 网关所基于的 nginx 也以与我预期相反的方式使用术语。 nginx 将其发送请求的服务器称为“上游服务器”,因此传入的请求可能是“下游客户端”。
从概念上讲,如果转到“上游服务器”,nginx 似乎会将请求“上坡”,这完全违反直觉......显然,在反向代理和 API 网关领域,重力是相反的!
我看过其他讨论,讨论上游/下游代表系统之间的依赖关系,但对于位于系统之间的中间件或基础设施组件,依赖关系的想法有点宽松,我发现从流程的角度思考更有帮助。信息仍然 - 因为这通常是你的依赖项的来源。
我对流类比的理解是否从根本上是错误的,或者这些软件组件是否使概念倒退?
最佳答案
在 HTTP 世界中,“上游服务器”一词是在 HTTP/1.0 规范中引入的,RFC 1945 :
502 Bad Gateway
The server, while acting as a gateway or proxy, received an invalidresponse from the upstream server it accessed in attempting tofulfill the request.
后来添加了正式定义,在RFC 2616中:
upstream/downstream
Upstream and downstream describe the flow of a message: allmessages flow from upstream to downstream.
根据这个定义:
同时,在 HTTP 中,大部分数据流不是用于请求,而是用于响应。。因此,如果您考虑响应流,那么“上游服务器”术语听起来相当合理且符合逻辑。并且该术语再次用于 502 响应代码描述(与 HTTP/1.0 相同)以及其他一些地方。
同样的逻辑也可以在自然语言中的“下载”和“上传”术语中看到。大多数数据流是从服务器到客户端,这就是为什么“下载”意味着将某些内容从服务器加载到客户端,而“上传”意味着从客户端加载到服务器。
关于nginx - 上游/下游术语用反了? (例如 Nginx),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32364579/
我正在使用 Jenkins 进行持续集成。我创建了单独的 View ,例如服务器 A 的 View A 、服务器 B 的 View B 等。 每个 View 都会根据服务器的环境属性构建我的项目。 但
我有以下伪代码: var queue = new BufferBlock(new DataflowBlockOptions { BoundedCapacity = 5 }); var a = new
我想这样做,但是在 Jenkins DSL 中: 如果在某个地方找到了这个,但它不工作: job('ps-first') { steps { shell('echo "landing"') }
我们的 API 中有一个路由(在调用时)会访问另一个第 3 方 API。 例如 HTTP-GET/account/1 这会从我们的数据库返回一些数据,并从.. 说 .. 像 Auth0/Okta/Sa
我是一名优秀的程序员,十分优秀!