流星-如果一台服务器出现故障,将用户转移到另一台副本服务器

时间:2019-01-17 09:12:49

标签: meteor

我正在使用流星服务器 private fun downloadPdf(fileName: String?, fileExtension: String?, destinationDirectory: String?, url: String?) { val downloadManager = getSystemService(Context.DOWNLOAD_SERVICE) as DownloadManager val uri = Uri.parse(url) val request = DownloadManager.Request(uri) request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED) request.setDestinationInExternalPublicDir(destinationDirectory, fileName + fileExtension) val downloadId = downloadManager.enqueue(request) thread { var downloading = true while (downloading){ val query = DownloadManager.Query() query.setFilterById(downloadId) val cursor = downloadManager.query(query) if(cursor.moveToFirst()){ val bytesDownloaded = cursor.getInt(cursor.getColumnIndex(DownloadManager.COLUMN_BYTES_DOWNLOADED_SO_FAR)) val bytesTotal = cursor.getInt(cursor.getColumnIndex(DownloadManager.COLUMN_TOTAL_SIZE_BYTES)) if(cursor.getInt(cursor.getColumnIndex(DownloadManager.COLUMN_STATUS)) == DownloadManager.STATUS_SUCCESSFUL){ downloading = false } val progress = ((bytesDownloaded * 100L)/bytesTotal).toInt() runOnUiThread { Log.i("pritishsawantprogress",progress.toString()) } cursor.close() } } } }

我想创建一个备份服务器。

如果主服务器出现故障,用户应自动转移到备用服务器,以免造成任何停机时间。

我如何实现这种行为。

谢谢。

1 个答案:

答案 0 :(得分:1)

您可以使用Phusion Passenger之类的进程生成工具来使您的应用程序失效保护。如果您的应用程序崩溃,旅客会立即将其重新启动。

关于此的一些资源

https://github.com/phusion/passenger/wiki/Phusion-Passenger:-Meteor-tutorial

https://www.phusionpassenger.com/docs/tutorials/installation/meteor/

或使用一些container orchestration,并在多台计算机上使用您的应用程序。如果一个实例失败,则您的应用应该仍然可用。

在两种情况下:在单独的服务器上安装mongodb 。这也是为什么需要在Meteor部署上定义MONGO_URL环境变量的原因,因此您的应用程序进程与数据库进程是分开的。

在这种设置中,您无需将发生故障的数据“提交”到单独的服务器,我认为这在生产环境中甚至可能不是现实的方法。