是否有直接的方法从代理中查询和更新App数据,还是必须使用管理API?

时间:2014-02-05 19:57:39

标签: apigee

我需要更改应用程序的属性,我知道我可以通过管理服务器API调用来完成它。

使用管理服务器API的两个问题是:

  1. 性能:它正在调用管理服务器 可能直接在消息处理器中。性能 缓存可能会减轻问题。
  2. 可用性:必须使用管理服务器API意味着系统是 取决于可用的管理服务器。如果是的话 直接在代理本身完成,它会减少数量 失败点。
  3. 任何推荐的替代方案?

2 个答案:

答案 0 :(得分:3)

最后,所有实体都存储在cassandra中(用于运行时)

您最好的选择是使用访问实体策略来获取有关实体的任何信息。这不会打击MS。但仅仅是为了您的信息 - 大多数时候您甚至不需要访问实体策略。当您使用验证apikey或验证访问令牌策略时 - MP将所有相关实体详细信息作为流变量提供。因此,不需要额外的访问实体调用。

当您更新任何实体(如开发人员,应用程序)时 - 我真的认为它是管理类型用例而不是运行时用例。因此,使用管理API应该没问题。

如果您的用例需要运行时API调用来反过来更新应用程序中的属性,那么该属性可能不应该是应用程序的一部分。想一想如何将它带到缓存,KVM或其他可以从MP访问它的地方(只是在不完全了解用例的情况下考虑)。

答案 1 :(得分:1)

系统的设计是所有实体编辑都通过管理服务器进行,​​而管理服务器又负责以高性能和可扩展的方式执行编辑。 Management Server还负责通过zookeeper注册了解哪些消息处理器需要通知更改。这也确保了如果给定的消息处理器不可用,因为它正在升级,它将在可用时获得更新。管理服务器是事实的来源。

对于开发者应用程序属性(或实际上任何应用程序元数据),值被缓存3分钟(我认为),因此消息处理器可能最多看不到新值3分钟。 / p>

就可用性而言,Management Server的设计高度可用,依赖于与消息处理器设计相同的底层架构。