【发布时间】:2017-04-23 05:24:41
【问题描述】:
我有一个处理最终用户注册的 AWS 服务器/它运行一个 EC2 linux 实例,该实例通过 Apache 和 Python 为我们的 API 提供服务,并连接到运行 mysql 的单独 Amazon RDS 实例上的数据。
为了远程管理系统,我在 mysql 表中设置了状态来控制注册 API 对公共用户的可用性,以及我们的 Python API 的日志记录级别,它可以引用多达 5 个并发管理首选项(即不是一个单一的“日志级别”)
由于我们的 API 提供了近两打不同的功能,我们需要在访问任何单个功能之前检查系统的可用性状态。这意味着该表中有一条 SQL Select 语句(只有一条记录),但对于用户事务的每个会话,可能涉及六次 API 调用。我们需要检查可用性状态是否发生了变化,因此用户不会启动 API 调用,并且在过程中间让数据库变得不可用。日志记录首选项也是如此。
API 调用将服务器的可用性和估计的停机时间返回给调用程序(不是 Web 浏览器界面),它可以优雅地处理这种情况。
这是处理此问题的普遍接受的方法吗?如果我过度轮询状态表,我应该关心吗?当 Python 获取数据时,我是否应该使用我的状态表设置 mysql,以使我的持续检查更有效(例如缓存?)?
我应该注意,我们可能有数千个同时发出 API 请求的用户,而不是数万或数百万。
【问题讨论】:
-
SO 不适合讨论分布式系统架构,SO 是关于编程的。此外,它不是编解码器编写服务,因此我们希望请求用户提供他已经编写的代码来解决问题。
-
克劳斯,我的错——我认为因为这与mysql有关,我做了编程,mysql是这里的一个主题,询问使用我描述的方法的效率适合与其他SO问题。在上面的例子中,它是一个单独的 Select 语句,所以没有任何东西可以提供任何精通 mysql 语法的人都无法想象的东西。我会重新考虑、重写或撤回这个问题,但即使是 SO 提出的“相关”问题(有数百或数千张选票)也是同类问题。
标签: python mysql rest amazon-web-services asp.net-web-api