首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >客户端、Google Flex App Engine和Cloud SQL之间的高延迟

客户端、Google Flex App Engine和Cloud SQL之间的高延迟
EN

Stack Overflow用户
提问于 2018-06-14 21:26:16
回答 1查看 565关注 0票数 2

我有一个Google Flex App Engine App,它接收带有JSON数据的POST,然后使用SQLAlchemy执行insert语句,将JSON数据写入Cloud SQL数据库。POST设备(在达拉斯)和App Engine (美国东部)之间的延迟远高于300ms,有时会超过1500ms。我认为这可能是由于慢的插入写入速度,尽管负载几乎不是‘荒谬’或任何东西。大约高达5-8次/秒读取和150-300次/秒写入

使用Flask、SQLAlchemy、MySQL 5.6 (在Cloud SQL上)和第二代Google Flex App Engine实例。

我的问题是我需要降低延迟,但我找不出是什么原因造成的。我已经运行traceroute和ping命令到IP,该IP将json数据发布到由Google App Engine托管的Flask应用程序页面。ping正常,一跳出现问题,但只有一个区域。如果我有太高的延迟,IP可能会丢弃POST。

代码语言:javascript
复制
from api import app
from sqlalchemy import create_engine
from datetime import datetime, timedelta

engine = create_engine(app.config.get("database_uri"))

Class Events(object):
    @staticmethod
    def add(event):
        connection = engine.connect()
        for observation in event["observations"]:
            try:
                connection.execute("""INSERT INTO events (
                    ...
                ) VALUES (
                    %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s
                )""", (
                    ...
                ))
            except Exception as ex:
                print(ex)
        connection.close()

这是由以下条件触发的:

代码语言:javascript
复制
@app.route('/', methods=['POST'])
def events_post():
    data = request.json
    if data["secret"] != app.config.get("secret"):
        return
    Events.add(data["data"])
    return "Success"

最后,我尝试了使用和不使用connection.close(),似乎都无关紧要。这是一个稳定的数据流,因此对于手头的工作来说,每次关闭和重新打开连接似乎都需要大量的资源。

提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2018-06-20 04:31:40

正如在前面的评论中所建议的,您需要查看Stackdriver上的日志。尤其是云SQL实例操作日志或MySQL错误日志。这将使您了解哪些内容需要进行微调以提高查询的性能。正如您所说的,这可能是由于插入写入速度较慢,确认这一点的唯一方法是过滤日志。

对于第二代Google App Engine Flex实例,延迟受编写器位置和数据库sending data a long distance introduces latency的影响。云SQL实例和App Engine应用程序之间的距离越大,连接到数据库的延迟就越大。

看看这个documentation,它可以帮助你在从app Engine Flex for Python应用程序连接到Cloud SQL时,配置你的应用程序以获得更好的伸缩性。

我希望这能帮助回答你的问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50858658

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档