关于python IoT会话连接持续时间的最佳实践是什么?传输数据后关闭会话是否是最佳做法?也许定义一个空闲时间,该空闲时间在数据传输之后开始:如果空闲时间超过了预定义的时间量,则关闭通道。最好的原因背后有任何解释的奖励。
这个问题可能取决于平台吗?即RDBMS与AWS Greengrass?
#1 楼
物联网带给聚会的变量至少是规模和精力。与5年前回答这个问题的方式相比,您可能还认为安全/弹性受到不同的约束。关于SO的“根本”问题已经存在了7年之久,并且没有得到广泛应用。就数据带宽而言,交易频率和建立经过身份验证的连接的成本可能是主要驱动力和能源成本。
打开连接是否有成本?与更为琐碎的“开放使用关闭”相比,您需要多大的精力来管理“几乎持久的”连接?哪种方法将导致最快的资源争用(假设您的产品计划大规模扩展)?
您是否可能将代码/协议进一步迁移到网络边缘(或将云功能更紧密地迁移)到边缘)?这些潜在的迁移可能会改变您的约束,或者您可能希望推迟潜在的软件投资。
#2 楼
尽管您正在使用IOT会话,但这不是* IOT问题,只是一个通用的套接字问题,因此,在Google和Stack Overflow上有很多很多答案。基本上,没有“正确”的答案,您只需要考虑您的情况。
通常来说,实现“每笔交易后关闭”比较容易,因为您不需要那么多“糟糕,我当前打开的会话意外关闭”代码。这是我一直采用的方法,并且是行业中最常用的方法。
但是,如果您需要发送频繁的数据包(大小并不重要,只是频率),那么每个数据包关闭后重新打开可能会导致性能问题。
评论
如果在说出最佳做法时准确地解释了您要寻找的内容,这可能会帮助您获得更具体的答案-并非总是清楚“最佳做法”的真正含义。您是否对设置有特别的关注(例如“此功能效果很好吗?”),您可以对其进行编辑以使其包含在内?对于此类问题,始终可以为您提出问题的原因提供更多背景信息。就目前而言,它是上下文无关的(并且在任何其他堆栈上看起来都像是一个作业问题-尽管我这次并不建议这样做)
我感谢您的评论,以增加更多的细节/上下文:任何以具体问题形式出现的“轻推”都会受到赞赏,并会加速问题的形成。
我投票结束这个问题是因为离题,因为这只是另一个通用套接字编码问题,在数百个(即使不是数千个)网站上也很好地解释了这两种选择,包括S.O上的许多答案