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

What is the concept of Ambassador in distributed systems?

谁能简单介绍一下集群计算中Ambassador的架构概念是什么?在微服务架构模式中实现它有什么好处?

我最近一直在研究 docker 和 docker-swarm,我看到这个术语在文章或 repos 中被反复提及。例如在 this amazing project, they have a repository called docker-ambasssador. Or this other project called ctlc-docker-ambassador.

一般来说,微服务的主要好处之一是能够在 app/ecosystem 的其余部分没有意识到变化的情况下切换底层组件。大使模式允许片段移动和更改,同时使用代码继续连接到单个位置。您提供的其中一个链接非常棒 explanation/example:

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 存储。