我正在使用文件同步Docker微服务。基本上我将拥有一个file-sync
服务,该服务对于swarm是全局的(每个节点上一个)。服务中的每个容器都需要与不同节点上的所有其他容器对等。文件将分布在节点上,而不是完整的副本。某些文件仅驻留在某些节点上。我希望能够有选择地将文件的子集从一个节点复制到另一个节点。
如何获取所有其他容器的端点列表,以便微服务可以与它们对等?这需要以编程方式进行。
在相关的说明中,我想知道文件同步微服务是否是我正在处理的解决方案的最佳途径。
基本上我有一些用户上传的视频。我希望能够将它们编码为不同的格式。我计划让视频编码节点具有文件同步服务来拉取文件,对视频进行编码,然后使用文件同步将编码文件推送回同一服务器。我知道我可以使用某种对象存储,但是我无法使用裸机专用服务器,如果我不需要,我不会处理OpenStack。
答案 0 :(得分:0)
感谢@ johnharris85提出上述建议。对于其他感兴趣的人,我创建了一个可以在node
中使用的代码段。
https://gist.github.com/brennancheung/62d2abe16569e600d2be5e9495c85331
const dns = require('dns')
function lookup (serviceName) {
const tasks = `tasks.${serviceName}`
return new Promise((resolve, reject) => {
dns.lookup(tasks, { all: true }, (err, addresses, family) => {
if (err) {
return reject(err)
}
const filtered = addresses.filter(address => address.family === 4)
const ips = filtered.map(x => x.address)
resolve(ips)
})
})
}
async function main () {
const result = await lookup('hello')
console.log(result)
}
main()