
bretfisher/examplevotingapp_worker一个跨多个Docker容器运行的简单分布式应用程序。
下载适用于Mac或Windows的Docker Desktop。Docker Compose将自动安装。在Linux上,请确保你拥有Compose的最新版本。
Linux栈使用Python、Node.js、.NET Core(或可选Java),Redis作为消息队列,Postgres作为存储。
如果你使用Windows版Docker Desktop,可以通过切换到Linux容器来运行Linux版本,或运行Windows容器版本。
在当前目录中运行:
docker-compose up
应用将在http://localhost:5000运行,结果将在http://localhost:5001显示。
或者,如果你想在Docker Swarm上运行,首先确保你有一个swarm。如果没有,请运行:
docker swarm init
一旦你有了swarm,在当前目录中运行:
docker stack deploy --compose-file docker-stack.yml vote
应用的另一个版本使用基于Nano Server的Windows容器。此栈运行在.NET Core上,使用NATS作为消息队列,TiDB作为存储。
你可以使用以下命令从源代码构建:
docker-compose -f docker-compose-windows.yml build
然后使用以下命令运行应用:
docker-compose -f docker-compose-windows.yml up -d
或者在Windows swarm中,运行
docker stack deploy -c docker-stack-windows.yml vote
应用将在http://localhost:5000运行,结果将在http://localhost:5001显示。
k8s-specifications文件夹包含投票应用服务的yaml规范。
首先创建vote命名空间:
$ kubectl create namespace vote
运行以下命令创建部署和服务对象:
$ kubectl create -f k8s-specifications/ deployment "db" created service "db" created deployment "redis" created service "redis" created deployment "result" created service "result" created deployment "vote" created service "vote" created deployment "worker" created
投票界面随后可在集群每个主机的31000端口访问,结果界面可在31001端口访问。
!架构图
投票应用每个客户端只接受一票。如果已从某个客户端提交投票,则不会再注册新投票。
这不是一个架构完美、设计完善的分布式应用……它只是一个简单示例,展示了你可能会看到的各种类型的组件和语言(队列、持久化数据等),以及如何在Docker中进行基本处理。






manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务