docker - 分布式系统中的大使是什么概念?

标签 docker architecture cluster-computing microservices docker-swarm

有人可以简单地向我解释一下集群计算大使的架构概念是什么?在微服务架构模式中实现它有什么好处?

我最近一直在研究 docker 和 docker-swarm,我在文章或 repos 中反复提到过这个术语。例如 this amazing project ,他们有一个名为 docker-ambasssador 的存储库.或者这个名为 ctlc-docker-ambassador 的其他项目.

最佳答案

一般来说,微服务的主要好处之一是能够在不让应用程序/生态系统的其余部分意识到变化的情况下切换底层组件。大使模式允许片段移动和更改,同时使用代码继续连接到单个位置。您提供的链接之一有很好的解释/示例:

Rather than hardcoding network links between a service consumer and provider, Docker encourages service portability, for example instead of:

(consumer) --> (redis) Requiring you to restart the consumer to attach it to a different redis service, you can add ambassadors:

(consumer) --> (redis-ambassador) --> (redis) Or

(consumer) --> (redis-ambassador) ---network---> (redis-ambassador) --> (redis) When you need to rewire your consumer to talk to a different Redis server, you can just restart the redis-ambassador container that the consumer is connected to.



在这种情况下,可以在不知道使用 redis 的代码的情况下移动或更新底层组件 (redis)。如果代码更聪明一点,它甚至允许从 redis 切换到另一个 kv 存储。

关于docker - 分布式系统中的大使是什么概念?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38045423/

相关文章:

docker - docker --add-hosts标志等效于远程API吗?

php - Heroku 上的 Docker PHP + Apache 部署崩溃

architecture - 消息总线设计——支持消息的隐式排序?

design-patterns - CQRS:命令返回值

c++ - 如何最好地管理游戏引擎中的组件?

Redis 集群 : how to delete all keys for a specific hashtag

docker - 如何设置一个简单的 dockerized RabbitMQ 集群?

node.js - 无法从Docker容器连接到Redis

php - 可扩展性和容错服务器。怎么办呢?

windows - 以 ubuntu 作为基础镜像的 Docker 应用程序如何在 Windows 上运行?