我有一小群服务器需要保持同步.我最初的想法是让一台服务器成为"主"并使用redis的pub/sub功能发布更新(因为我们已经使用redis进行存储)并让集群中的其他服务器(从属服务器)轮询更新一项长期任务.这似乎是让一切保持同步的简单方法,但后来我想到了一个明显的问题:如果我的"主人"失败了怎么办?这就是我开始研究技术以确保总有一个大师的地方,这让我开始阅读领导者选举等想法.最后,我偶然发现了Apache Zookeeper(通过python绑定," pettingzoo "),它显然为你处理了很多容错逻辑.我或许能够编写自己的领导者选择代码,但我认为它不会像Zookeeper那样经过验证和测试.
我使用zookeeper的主要问题是它只是另一个组件,当我可以使用更简单的东西时,我可能会不必要地添加到我的设置中.有没有人用这种方式使用redis?或者是否有任何其他简单的方法可以用来获得我想要实现的功能类型?
有关更多信息pettingzoo(slideshare)
visualstudiogallery.msdn.microsoft.com
现场.Install Log
2015-07-22 8:22:27 AM - Microsoft VSIX Installer
2015-07-22 8:22:27 AM - -------------------------------------------
2015-07-22 8:22:27 AM - Initializing Install...
2015-07-22 8:22:28 AM - Extension Details...
2015-07-22 8:22:28 AM - Identifier : VSProPack.Microsoft.15893CD4-2422-4427-BEA8-4E28DCC26346
2015-07-22 8:22:28 AM - Name : Productivity Power Tools 2015
2015-07-22 8:22:28 AM - Author : Microsoft
2015-07-22 8:22:28 AM - Version : 14.0.23120.0
2015-07-22 8:22:28 AM - Description : A set …
Run Code Online (Sandbox Code Playgroud) 我正在尝试在分层视图中显示数据列表。我的数据看起来像这样:
items:[
{
"model_id": "1",
"model_type_id": "1",
"name": "Parent 1",
"model_parent_id": ""
},
{
"model_id": "2",
"model_type_id": "1",
"name": "Parent 2",
"model_parent_id": ""
},
{
"model_id": "3",
"model_type_id": "2",
"name": "Child 1",
"model_parent_id": "1"
},
{
"model_id": "4",
"model_type_id": "2",
"name": "Child 2",
"model_parent_id": "2"
}
]
Run Code Online (Sandbox Code Playgroud)
我的控制器看起来像:
myApp.controller('ModelController', ['$scope', 'ModelFactory',
function ($scope, ModelFactory) {
$scope.init = function (id) {
$scope.brandId = id;
getModels($scope.brandId);
};
function getModels(brandId) {
ModelFactory.GetModels(brandId)
.success(function (mdls) {
$scope.models = mdls;
console.log($scope.mdls);
})
.error(function (error) { …
Run Code Online (Sandbox Code Playgroud) 我正在尝试在C#中使用Newtonsoft.Json.Net。以下是我需要从中检索数据的JSON文件的一部分:
{
"video":{
"local_recording_device":{
"codecs":null
},
"preferred_string":"___PREFERRED___",
"streams":{
"99176901":{
"id":"99176901",
"name":"PTZ Camera",
"site":"someone",
"email":"someone@awebsite.com",
"codec":"VP8 HD1 (720p)",
"local":true,
"screen":false,
"fit_to_window":true,
"stay_on_top":false,
"layout":0,
"native_width":1280,
"native_height":720,
"window_width":456,
"window_height":254,
"preferred":false,
"local_recording":false,
"device_id":"MJPEG Camera",
"normalized_device_id":"MJPEGCamera",
"shared_window_id":"MJPEG Camera",
"enable":true,
"big_location":"2",
"x":347,
"y":737,
"window_id":"197302",
"camera_id":null
},
"3091494011":{
"id":"3091494011",
"name":"Logitech Webcam C930e",
"site":"Joe Smith",
"email":"joe@awebsite.com",
"codec":"VP8 Medium (CIF)",
"local":false,
"screen":false,
"fit_to_window":true,
"stay_on_top":false,
"layout":0,
"native_width":352,
"native_height":288,
"window_width":864,
"window_height":702,
"preferred":true,
"local_recording":false,
"enable":true,
"big_location":"1",
"x":204,
"y":0,
"window_id":"197296",
"camera_id":null
},
"3798287599":{
"id":"3798287599",
"name":"Drive Camera",
"site":"ASiteName",
"email":"asitesame@awebsite.com",
"codec":"VP8 HD1 (720p)",
"local":true,
"screen":false, …
Run Code Online (Sandbox Code Playgroud)