【问题标题】:What is the concept of Ambassador in distributed systems?分布式系统中的大使是什么概念?
【发布时间】:2016-10-28 23:07:45
【问题描述】:

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

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

【问题讨论】:

标签: docker architecture cluster-computing microservices docker-swarm


【解决方案1】:

总体而言,微服务的主要优势之一是能够切换底层组件,而无需应用/生态系统的其余部分意识到变化。大使模式允许片段移动和更改,同时使用代码继续连接到单个位置。您提供的链接之一有很好的解释/示例:

而不是硬编码服务消费者和服务消费者之间的网络链接 提供者,Docker 鼓励服务可移植性,例如 的:

(consumer) --> (redis) 要求你重启消费者才能附加 它到不同的redis服务,你可以添加大使:

(consumer) --> (redis-ambassador) --> (redis) 或者

(consumer) --> (redis-ambassador) ---network---> (redis-ambassador) --> (redis) 当您需要重新连接您的消费者以与不同的 Redis 服务器通信时,您只需重新启动 redis-ambassador 消费者连接到的容器。

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

【讨论】:

  • 但是是什么阻止您在 redis-ambassador 中硬编码端口映射?我的意思是,这不只是将问题转移到分布式架构中的另一个节点吗?
  • 除了知道底层服务的位置外,大使节点还可以是“智能的”,我的意思是它可以根据传入的请求引导流量。假设您有多个用于不同目的(缓存、元数据等)的 redis 节点。消费客户都可以与一位大使交谈,后者可以智能地管理请求并将流量引导到正确的最终目的地。那时基本上变成了一个智能负载均衡器。同样不是复杂而灵活的工具的唯一用途。
猜你喜欢
  • 1970-01-01
  • 2018-05-06
  • 1970-01-01
  • 1970-01-01
  • 2014-05-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-02
  • 1970-01-01
相关资源
最近更新 更多