繁体   English   中英

WSO2 API Manager v1.8.0-群集

[英]WSO2 API Manager v1.8.0 - Clustering

我对WSO2 API管理器群集有疑问。 我已经详细阅读了部署文档,并了解了分布式部署概念,在其中可以隔离发布者,商店,密钥管理者和网关。 但是根据我的评估,这使得部署架构的维护相当复杂。 所以我想有一个更简单的部署。

我测试过的是简单地让WSO2 API Manager的两个不同实例在两个不同的框中运行,指向MySQL中相同的基础数据源。 我所看到的是,API调用可以正常工作,并且从一个WSO2实例获取的令牌可以在另一个API Manager实例上进行API调用。 此模型的唯一问题是,我们需要为运行的WSO2 API Manager实例从各个发布者组件中部署API。 我这样做很好,因为发布将由一个小团队完成。 我们将在前面有一个硬件负载平衡器,其中API管理器的API端点URL和令牌端点URL均由API管理器和harware LB进行负载平衡。

所以我的问题是-从RUNTIME角度来看,采用这种简单方法是否存在任何问题? 从RUNTIME角度来看,群集是否为WSO2 API Manager带来了任何好处?

谢谢。

您的方法具有以下缺点(可能还有更多我不知道的缺点);

  • 它不可扩展。 含义-您无法独立扩展(添加更多实例)商店或发布者,网关或密钥管理器。
  • 分布式节流将不起作用。 这将导致限制不一致,因为如果不启用群集,则限制复制将不会发生。 假设您为API定义了“黄金”层。 不管您使用多少个网关实例,都应限制用户对该API的访问速度不得超过20req / min。 这应该已经基于分布式计数器实现了(不确定确切的实现细节)。 因此,如果您未启用群集,则一个网关节点将不知道其他网关节点服务的请求数。 因此,每个网关节点将有自己的油门计数器。 含义-用户可能能够以超过20req / min的速度访问您的API。 因此,这是限制的矛盾之一。 此外,可以说一个网关节点被限制了一个用户,而另一网关节点则没有。 现在,如果您的LB将请求路由到第一个网关节点,则用户将无法访问API。 如果您的LB将请求路由到第二个网关节点,则用户将能够访问API。 这是限制不一致的另一个实例。 为了克服所有这些问题,您只需要通过启用群集就可以在所有网关节点之间复制限制。

  • 分布式缓存不起作用。 例如,API密钥验证信息被缓存。 如果您在一个API Manager节点中吊销令牌,则将在该节点中清除缓存。 因此,用户无法通过该API Manager节点使用已撤消的令牌,但是他可以通过另一个API Manager节点使用令牌,直到缓存无效(我猜默认为15分钟)。 这只是一个实例,如果您不对API Manager实例进行群集,则会出错。 要解决这些问题,您只需启用集群,然后缓存将在集群中同步。 阅读此文档以获取有关WSO2 API管理器中可用的各种缓存的更多详细信息。

如果没有上述功能,您将遇到几个问题。 WSO2强烈建议在生产中进行分布式部署。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM