我读到 HTTP 是一个同步协议。客户端发送请求并等待响应。客户端在发送下一个请求之前等待第一个响应。Ajax 使用 HTTP 协议,但相比之下是异步的。我还读到,同步请求会阻止客户端,直到操作从此处完成。我很困惑,我的问题是:
我目前正在研究二阶段和三阶段提交。
3PC协议试图通过添加一个额外的阶段preCommit来消除2PC协议\xe2\x80\x99s的系统阻塞问题。正如这里提到的
根据这篇文章,如果协调器在任何时候崩溃,恢复节点可以接管事务并从任何剩余副本查询状态。例如,如果任何剩余副本回复恢复节点它处于预提交状态,则恢复节点将知道失败的协调器已发送预提交消息,并且所有副本已同意提交。
我的问题是,为什么两阶段提交不能做同样的事情?当协调器发生故障时,恢复节点会查询那些剩余的节点并查看其中是否有任何节点已经处于提交阶段?
我已阅读服务器帖子,但仍然不知道三阶段提交试图解决的确切问题是什么以及如何解决?
\n请帮忙!
\n编辑:
有人标记了这个问题的重复项,但它根本没有解释底层机制。
但相比之下,这个堆栈溢出解决了我在 Case I 中的困惑,但没有解决 Case II。
我是 docker 的新手,我对 --interactive、--attach 标志的使用以及所涉及的概念感到困惑
我将在 docker hub 中使用busybox来展示我的困惑。
案例一:
当我使用以下命令运行容器时。docker run --interactive --tty busybox sh
根据该文档, --interactive 标志用于
即使未连接,也保持 STDIN 打开
我不明白即使不附着是什么意思,附着什么?
情况二:然后我退出容器并尝试使用
docker start --attach abdd796820b1.
终端似乎也接受输入,但是当我输入 ls 或 echo 时,它没有给出响应。
--attach 标志做了什么?
我在 Kubernetes 集群中运行 3 个节点。每个节点都有相同的 Pod myApp。我使用 NodePort 类型创建一个服务,以便可以从外部访问所有 3 个节点。服务 yaml 如下所示
apiVersion: v1
kind: Service
metadata:
name: myService
labels:
app: myApp
spec:
selector:
app: myApp
type: NodePort
Run Code Online (Sandbox Code Playgroud)
假设3个节点的节点IP+端口为:
1. 192.168.18.1:30010
2. 192.168.18.2:30010
3. 192.168.18.3:30010
我的问题是:
1.如果所有请求都到达IP(192.168.18.1:30010)的单个节点,服务会将请求负载均衡到其他节点中的Pod,还是仅目标节点(IP 192.168.18.1:30010) )?
2. 如果问题1的答案为是,则表示服务可以负载均衡请求。那么我们还需要负载均衡器吗?
谢谢
ajax ×1
containers ×1
dependencies ×1
docker ×1
flags ×1
http ×1
interactive ×1
kubernetes ×1
synchronous ×1