我对Web应用程序的跨colo故障转移策略很感兴趣,这样如果主站点失败,用户将无缝地降落到另一个colo的故障转移站点.
事物的应用程序方面看起来主要是通过colos和服务之间的主从数据库设置来设计,以便恢复并能够在中流中获取.我正在试图找出将流量从主站点转移到故障转移站点的策略.即使TTL较低,DNS故障转移似乎也会带来相当大的延迟.
假设主colo上的服务器无法访问,您会建议在colos之间快速移动流量的策略是什么?
如果你有其他有趣的经验/关于跨colo故障转移的智慧的话,我也很乐意听到这些.
我正在处理一个图像处理网站,而不是让用户浏览器占用冗长的工作量,我希望所有命令都能快速返回作业ID并让后台任务完成实际工作.然后可以使用id来检查状态和结果(即处理图像的URL).我已经为ruby,java和python发现了很多分布式队列管理器,但我不知道这些语言中是否足够能够使用它们.
我自己的测试是使用共享的mysql数据库来排队作业,将它们锁定到一个worker,并将它们标记为已完成(在db中保存返回数据).这只是一个混乱的原型,整个时间我觉得好像我正在重新发明轮子(而不是非常优雅).我可以使用php中的某些东西(或者我可以与RESTfully交谈吗?)
阅读更多,我发现我正在寻找的是一个具有php api的排队系统,它不必用php编写.我只找到了与亚马逊SQS一起使用的课程,但不仅是这些课程不是免费的,而且有时也是非常潜在的(一段时间内会显示一条消息).
关于单身人士如何在Google App Engine(或任何分布式服务器环境)中工作,我很感兴趣.鉴于您的应用程序可以同时在多个进程中运行(在多台计算机上),并且请求可以在所有位置进行路由,当应用程序执行以下操作时,实际上会发生什么:'CacheManager.getInstance()'?
我只是以(GAE)CacheManager为例,但我的观点是,单个地方有一个单一的全局应用程序实例,所以它在哪里生活?是否调用了RPC?事实上,全局应用程序状态(如会话)实际上是如何实际处理的?
此致,谢恩
MSMQ排队的消息能否在服务/服务器重启后继续存在?我的意思是,如果一个队列有消息并且服务器要经历硬重启,那么重启后消息是否仍然可以在队列中使用?
我在postgresql中有一个数据库,用于作为服务的软件,有数百个客户,目前每个客户都有一个postgresql模式,但我喜欢最好的解决方案,因为客户迅速增加.我读到了cassandra,但我不想失去主要,外键和支票的完整性.另请阅读分布式系统中的postgresql,但我不知道目前实现此目的的最佳方法是什么
有谁知道如何在Hadoop中的两个数据集之间实现Natural-Join操作?
更具体地说,这就是我需要做的事情:
我有两组数据:
存储为(tile_number,point_id:point_info)的点信息,这是1:n键值对.这意味着对于每个tile_number,可能有几个point_id:point_info
存储为(tile_number,line_id:line_info)的行信息,这也是1:m键值对,并且对于每个tile_number,可能存在多个line_id:line_info
如您所见,tile_numbers在两个数据集之间是相同的.现在我真正需要的是根据每个tile_number连接这两个数据集.换句话说,对于每个tile_number,我们有n个point_id:point_info和m line_id:line_info.我想要做的是将所有对point_id:point_info连接到每个tile_number的所有行line_id:line_info
为了澄清,这是一个例子:
对于点对:
(tile0, point0)
(tile0, point1)
(tile1, point1)
(tile1, point2)
Run Code Online (Sandbox Code Playgroud)
对于线对:
(tile0, line0)
(tile0, line1)
(tile1, line2)
(tile1, line3)
Run Code Online (Sandbox Code Playgroud)
我想要的是如下:
对于瓦片0:
(tile0, point0:line0)
(tile0, point0:line1)
(tile0, point1:line0)
(tile0, point1:line1)
Run Code Online (Sandbox Code Playgroud)
对于瓷砖1:
(tile1, point1:line2)
(tile1, point1:line3)
(tile1, point2:line2)
(tile1, point2:line3)
Run Code Online (Sandbox Code Playgroud) 简短版本:我们不能将变量存储在其中一个worker中而不能使用参数服务器吗?
长版: 我想在tensorflow中实现神经网络的同步分布式学习.我希望每个工人在培训期间都能获得完整的模型副本.
我已经阅读了分布式tensorflow教程和分布式培训imagenet的代码,但我们不知道为什么我们需要参数服务器.
我看到它们用于存储变量的值,replica_device_setter注意变量在参数服务器之间均匀分布(可能它做了更多的事情,我无法完全理解代码).
问题是:为什么我们不使用其中一个工人来存储变量?如果我使用,我会实现吗?
with tf.device('/job:worker/task:0/cpu:0'):
Run Code Online (Sandbox Code Playgroud)
代替
with tf.device(tf.train.replica_device_setter(cluster=cluster_spec)):
Run Code Online (Sandbox Code Playgroud)
对于变量?如果与使用参数服务器的解决方案相比,这有效吗?
我编写了一个应用程序,它至今尚未开源,我想在各种Linux发行版中分发可执行文件.什么是最好的方法,我看了一点.rpm和.deb包装,但我无法找到是否可以用于二进制文件.理想情况下,我喜欢OS X上的PackageMaker或Windows上的常规安装程序,它会自动将其复制到/ usr/bin中.那是什么.rpm和.deb包是或者我必须捆绑一个自动执行它的shell脚本吗?
linux distributed packaging software-distribution package-managers
您好,在SO,
我想对你们尊敬和尊敬的一些人提出一些想法/意见.
我有100M记录需要处理.我有5个节点(在岩石群中)来做这件事.数据非常有条理,并且很好地适用于关系数据模型.我希望并行处理,因为我的处理需要一些时间.
我看到它有两个主要选择:
在每个节点上安装mysql,并在每个节点上放置20M记录.使用头节点将查询委派给节点并聚合结果. 查询功能++,但是当我选择分区策略等时,我可能会冒一些头痛的风险.(问:这就是他们所谓的mysql/postgres集群吗?).真正糟糕的是,记录的处理现在由我来处理(如何跨机器分发等)...
或者安装Hadoop,Hive和HBase(请注意,这可能不是存储数据的最有效方法,因为HBase是面向列的)并且只是定义节点.我们在MapReduce范例中写下了所有内容,而且,从此以后,我们幸福地生活着.这里的问题是我们失去了"实时"查询功能(我知道你可以使用Hive,但这不建议用于实时查询 - 我需要) - 因为我还有一些正常的sql查询有时执行" select*from wine where color ='brown'".
请注意,理论上 - 如果我有100M机器,我可以立即完成所有事情,因为对于每个记录,处理是独立于另一个.另外 - 我的数据是只读的.我没有想到会发生任何更新.我不需要/想要一个节点上的100M记录.我不希望有冗余数据(因为它有很多)所以保持它在两个mysql/postgres和Hadoop/HBase/HDFS.不是一个真正的选择.
非常感谢
我是Akka的新手,也是分布式编程的新手.使用Akka的Mist组件,我创建了受监督的actor来异步处理HTTP请求.目前一切都在当地演员的一台物理机器上运行.我不明白的是如何构建一个具有多个盒子的真正容错系统.正如Akka文档中所述:
此外,您(通常)需要知道一个盒子是否关闭和/或您在另一个盒子上与之通话的服务是否已关闭.这里的actor监督/链接是一个关键工具,不仅可以监视远程服务的健康状况,还可以实际管理服务,如果actor或节点出现故障,可以对问题采取一些措施.例如在同一节点或另一个节点上重新启动actor.
我该怎么做呢?我正在寻找一个关于如何开始分发应用程序的示例或指针.我们组中的其他服务在多个Tomcat实例之前使用Apache网关,因此Tomcat服务器关闭的事件对用户是透明的.我正在将我的服务部署到Akka微内核,并且需要在多个物理盒中实现类似级别的高可用性.
我正在使用Akka 1.1.3.