我如何从创建的服务中获取节点 ip 和容器 ip(在管理器和工作节点上运行)?我想检查这个以研究 docker swarm 引擎的循环负载平衡并开发新的负载平衡。
我有一个调用程序函数,该函数调用另一个发送带有参数的HTTP POST的函数。现在,我希望这个被调用的函数阻止执行,直到有它的“成功”为止(因此,当它的HTTP POST完成时)。
这是我的逻辑代码:
var fingerprint = null;
var janus_session = null;
var inserted = "false";
$(document).ready(function() {
//stuff
fingerprint = FindFingerprint(jsep);
janus_session = janus.getSessionId();
inserted = SendSDPLine(fingerprint, janus_session);
console.log("**in MAIN: inserted= " + inserted);
//other stuff
}
function SendSDPLine(fingerprint, janus_session) {
var sdp = fingerprint;
// var url = "http://localhost:8484/Shine/AccountController";
var action_type = "InsertSDPLine";
var sessionid = janus_session;
$.ajax({
type: "POST",
url: url,
xhrFields: {
withCredentials: false
},
data: {
"action": action_type,
"sdpline": fingerprint,
"sessionid": sessionid
},
success: function(data) …Run Code Online (Sandbox Code Playgroud) 我使用docker-machine创建了3个vm:
docker-machine create -d virtualbox manager1
docker-machine create -d virtualbox worker1
docker-machine create -d virtualbox worker2
Run Code Online (Sandbox Code Playgroud)
这些是他们的IP:
docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS
manager - virtualbox Running tcp://192.168.99.102:2376 v1.12.6
worker1 - virtualbox Running tcp://192.168.99.100:2376 v1.13.0-rc5
worker2 - virtualbox Running tcp://192.168.99.101:2376 v1.13.0-rc5
Run Code Online (Sandbox Code Playgroud)
然后 docker-machine ssh manager1
和:
docker swarm init --advertise-addr 192.168.99.102:2377
Run Code Online (Sandbox Code Playgroud)
然后worker1和worker2加入到swarm中.
现在我创建了一个覆盖网络:
docker network create -d overlay skynet
Run Code Online (Sandbox Code Playgroud)
并在全局模式下部署服务(节点的1个任务):
VM_IP:SERVICE_PORT[R
节点实际上有1个容器(任务).
现在,我想直接访问我的虚拟主机..或者,至少,我想直接浏览我的服务容器,因为我想用nginx开发我的服务负载均衡器.为此,在我的nginx conf文件中,我想指向一个特定的服务集合器(即现在我在全局模式下有3个节点(1个管理员和2个工作者),所以我有3个任务在运行 - > i我想选择这3个容器中的一个.我怎样才能做到这一点?
[编辑]:我可以指向我的swarm节点,只需浏览到VM_IP:SERVICE_PORT,即:
192.168.99.102:8200
但仍有内部负载平衡.我在想,如果我指向一个特定的swarm节点,我将在该特定节点内使用容器.但是现在没什么.
我有一个基于HTTP servlet的web-app.这是对我的servlet的JS请求:
$.ajax({
type: "POST",
url: url,
xhrFields: {
withCredentials: false
},
data:{
"action" : action_type,
"fingerprint" : fingerprint,
"user_id" : user_id,
},
success: function(data) {
alert('sdp inviato!');
},
// vvv---- This is the new bit
error: function(jqXHR, textStatus, errorThrown) {
console.log("Error, status = " + textStatus + ", " +
"error thrown: " + errorThrown
);
}
});
Run Code Online (Sandbox Code Playgroud)
这是我的servlet代码:
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String action= request.getParameter("action");
UtenteModel um= new UtenteModel();
SDPLineModel sdpmodel= new …Run Code Online (Sandbox Code Playgroud) docker ×2
docker-swarm ×2
http ×2
javascript ×2
jquery ×2
katacoda ×1
nginx ×1
servlets ×1
virtualbox ×1