Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Rest 在升级期间滚动流连接_Rest_Http_Data Stream - Fatal编程技术网

Rest 在升级期间滚动流连接

Rest 在升级期间滚动流连接,rest,http,data-stream,Rest,Http,Data Stream,我正在开发一个使用Amazon Kinesis的应用程序,我想知道的一件事是,如何在升级过程中滚动应用程序而不丢失流上的数据。我听说过蓝色/绿色部署之类的事情,但我想知道升级数据流服务的最佳实践是什么,这样您就不会从流中丢失数据 例如,我的应用程序有一个HTTP端点,作为一系列POST操作接收数据。如果我想用更新的版本替换服务,我如何管理到我的端点的现有应用程序流?一种常见的方法是使用带有虚拟IP的软件负载平衡器LB;在正常操作期间,此LB后面将至少有两个HTTP摄取端点。在升级过程中,每个端点

我正在开发一个使用Amazon Kinesis的应用程序,我想知道的一件事是,如何在升级过程中滚动应用程序而不丢失流上的数据。我听说过蓝色/绿色部署之类的事情,但我想知道升级数据流服务的最佳实践是什么,这样您就不会从流中丢失数据


例如,我的应用程序有一个HTTP端点,作为一系列POST操作接收数据。如果我想用更新的版本替换服务,我如何管理到我的端点的现有应用程序流?

一种常见的方法是使用带有虚拟IP的软件负载平衡器LB;在正常操作期间,此LB后面将至少有两个HTTP摄取端点。在升级过程中,每个端点都会被宣布出来并依次升级。LB确保没有流量转发到已宣布的out端点

端点本身可以位于单独的VM、Docker容器或物理节点上

当然,流需要是有限的;TCP套接字/HTTP流由其中一个端点拥有。但是,只要流可以正常停止,假设端点A拥有当前摄取,以下流就可以工作:

告诉端点A不要接受新流。LB只会将所有新流重定向到端点B。 优雅地停止端点A上的现有流。 升级A。 宣布回归。 冲洗并重复端点B。 作为一个辅助点,如果您需要任何合理的正常运行时间和可靠性保证,您将需要两个具有负载平衡或主/从设置的端点

有更多的定制方法允许在同一端点上进行热代码交换,但它们更为定制,并且依赖于特定的内部设计,例如网络和IPC连接的处理堆栈之间的单独进程