python - 客户端、App Engine 和 Cloud SQL 之间的高延迟
问题描述
我有一个 Google Flex App Engine 应用程序,它接收带有 JSON 数据的 POST,然后使用 SQLAlchemy 执行插入语句,将 JSON 数据写入 Cloud SQL 数据库。POST 设备(达拉斯)和 App Engine(美国东部)之间的延迟远高于 300 毫秒,有时甚至超过 1500 毫秒。我相信这可能是由于 INSERT 写入速度不佳,尽管负载几乎不是“荒谬”或任何东西。大约高达 5-8 次读取/秒和 150-300 次写入/秒
使用 Flask、SQLAlchemy、MySQL 5.6(在 Cloud SQL 上)和第二代 Google Flex App Engine 实例。
我的问题是我需要降低延迟,但我不知道是什么原因造成的。我已经对将 json 数据发布到由 Google App Engine 托管的 Flask App 页面的 IP 运行 traceroute 和 ping 命令。ping 很好,一跳有打嗝,但它只是一个区域。如果我的延迟太高,IP 可能会丢弃 POST。
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()
这是由以下原因触发的:
@app.route('/', methods=['POST'])
def events_post():
data = request.json
if data["secret"] != app.config.get("secret"):
return
Events.add(data["data"])
return "Success"
解决方案
推荐阅读
- python - Plot normal distribution over histogram
- mongodb - 从 mongodb 获取文档后,我想在其中添加一个数组,然后返回它
- javascript - Undefined variable but has the correct value
- android - How two remove same npm from react-native npm
- javascript - vue-bootstrap shows components content badly when page loads
- arrays - 每个阵列的 LIBGDX 碰撞检测
- c# - Is there a way to do LINQ to SQL with MySQL for .NET Application?
- angularjs - 停止 AngularJS 无模板请求
- redis - How to prevent data duplication in redisgraph?
- linux - Why some processes(even they are user processes) could not be migrated to a certain cpu by `cpuset(7)`?