我有一小群服务器需要保持同步.我最初的想法是让一台服务器成为"主"并使用redis的pub/sub功能发布更新(因为我们已经使用redis进行存储)并让集群中的其他服务器(从属服务器)轮询更新一项长期任务.这似乎是让一切保持同步的简单方法,但后来我想到了一个明显的问题:如果我的"主人"失败了怎么办?这就是我开始研究技术以确保总有一个大师的地方,这让我开始阅读领导者选举等想法.最后,我偶然发现了Apache Zookeeper(通过python绑定," pettingzoo "),它显然为你处理了很多容错逻辑.我或许能够编写自己的领导者选择代码,但我认为它不会像Zookeeper那样经过验证和测试.
我使用zookeeper的主要问题是它只是另一个组件,当我可以使用更简单的东西时,我可能会不必要地添加到我的设置中.有没有人用这种方式使用redis?或者是否有任何其他简单的方法可以用来获得我想要实现的功能类型?
有关更多信息pettingzoo(slideshare)
我试图将我的django项目从apache设置移动到heroku.在这一点上,除了使用PATCH Http方法(我与django-tastypie结合使用)时遇到的问题,一切似乎都运行正常.
我有一个允许这种方法的中间件,它在我以前的apache服务器上工作.现在我得到的是405(METHOD_NOT_ALLOWED)错误.常见的HTTP方法仍然有效(GET,POST,DELETE,POST).我还读过nginx默认不支持OPTIONS(可能还有PATCH请求?),必须进行一些配置.根据我的阅读,nginx为OPTIONS方法请求返回类似的405错误.我也很确定heroku使用nginx前端,所以这可能是问题所在.
这引出了我的下一个问题:我不知道如何添加自己的标题,因为这完全由heroku控制.有谁知道究竟是什么问题?有没有办法,除了放弃PATCH方法(这使事情更方便),让PATCH方法在heroku上工作?
我认为将golang的大型int(数学/大包)转换为字符串很简单,但有没有直接的方法将大型int转换为二进制字符串?
我已经检查了我在ECS集群中运行的一个docker容器,并且它有一个空白的重启策略("{{.HostConfig.RestartPolicy.Name}}").我不确定ECS在发生故障时会做什么,但我想将策略更改为在实例中运行的cmd失败时重启容器实例的策略.是否可以更改ECS群集中docker容器的重启策略?
redis ×2
amazon-ecs ×1
biginteger ×1
distributed ×1
django ×1
go ×1
heroku ×1
http ×1
mongodb ×1
nosql ×1
policy ×1
restart ×1
tastypie ×1