『集群』005 Slithice 基于 集群 的 自动容错
Slithice 基于 集群 的 自动容错
Slithice容错概述:
Slithice 支持 非集群 的 独立服务端;
支持 基于 中央服务器 的 集群服务端;
支持 基于 自定义配置 的 集群服务端;
在容错方面, 独立服务端 不支持 容错:出现错误,就得不到正确结果;
中央服务器 或 自定义配置 的 集群,是支持容错的:一台服务端执行异常,会自动转交 另外服务端 执行
—— 直到 所有可供调度的 服务端 全部错误,才会返回 错误信息;
自动容错原理:
在 《004 Slithice 集群分布式(多个客户端,基于中央服务器的多个集群服务端).doc》 中,
我们已经 见到了 基于 集群服务端 的调度,在此 不再多举案例;
比如,客户端 启动时,通过 配置获取方式(比如 中央服务器) 得到一个配置:
>Action_001 可以交由 Service_001、Service_002、Service_003,Service_004 四个服务端处理;
>Action_002 可以交由 Service_002、Service_003,Service_004 三个服务端处理;
>Action_003 可以交由 Service_002,Service_004 两个服务端处理;
>Service_001 通讯类型 Socket,调度概率 是 100
>Service_002通讯类型 Socket,调度概率 是 50
>Service_003通讯类型 WebService,调度概率 是 50
>Service_004通讯类型 WCF,调度概率 是 300
>但是 客户端 是 WinCE 平台,只支持 Socket,WebService 两种通讯方式;
>于是 客户端 就将 Service_004 最开始就 排除啦;
这时,客户端 需要 执行 Action_001 并得到 结果;
>分析出 Service_001、Service_002、Service_003 都可以处理;
>按照 调度概率 随机返回一个 服务端,比如说是 Service_002;
>这时 Service_002 宕机,执行重试3次,最终确定 失败;
>设置 Service_002 调度概率 为 49;
>按照 调度概率 从 Service_001、Service_003 中 随机返回一个 服务端,比如说 Service_001;(Service_002 会被排除)
>这时,Service_001 执行成功,返回结果 并设置 Service_001 的 调度概率 为 101;
然后,客户端 需要 执行 Action_003 并得到结果;
>分析出 Service_002 只有一个服务端可以处理;
>向 Service_002 调度,执行重试3次,最终确定 失败;
>设置 Service_002 调度概率 为 48;
>没有 其他 可供调度 的 服务端 —— 只有返回 执行错误;
集群容错效果:
最终,我们会发现:
>不支持 通讯方式 的 服务端 初始化时 就会 被排除;
>频繁错误的 服务端 的 调度概率 会 越来越小;
>出现 执行错误时,任务 会被 自动交给 另外的 服务端 处理;
>同一个任务,已经执行 出错的 服务端 在 任务转交 时 会被排除;
>只有 全部错误,才会 最终返回错误;
舒小龙
2014-01-29 13:34
『集群』005 Slithice 基于 集群 的 自动容错的更多相关文章
- 『集群』001 Slithice 服务器集群 概述
Slithice 服务器集群 概述 Slithice是做什么的 Slithice 是一个 跨平台 的 分布式架构 框架: 旨在简化 分布式开发 的开发难度,节省 开发成本 和 后期维护成本: 并提供 ...
- 『集群』004 Slithice 集群分布式(多个客户端,基于中央服务器的集群服务)
Slithice 集群分布式(多个客户端,基于中央服务器的多个集群服务端) 案例Demo展示: 集群架构图 如下: 如上图,上图 展示了 这个集群 的 结构: >一个中央服务器(可以有多个),负 ...
- 『集群』002 Slithice 集群配置工具 的使用
Slithice 集群配置工具 的使用 Slithice集群配置工具 主界面 在测试 Slithice 的 Demo 中,我配置了 7个服务端: 一个 WCF 的 中央服务端: 两个 WCF 的 成员 ...
- 『集群』003 Slithice 最简分布式(多个客户端,一个独立服务端)
Slithice 最简分布式(多个客户端,一个独立服务端) 案例Demo 展示: 我们搭建一个 可以 独立运行 的 服务端:然后 多个客户端 并发链接 这个 服务端 完成 分布式逻辑: 服务器 独立运 ...
- 『集群』006 Slithice 后期改进 和 Slithice可能存在的BUG
Slithice 后期改进 和 Slithice可能存在的BUG Slithice 可能存在的 BUG: >Slithice 暂时 没有 对 循环调度 进行控制:不正确的 配置 可能导致 调度死 ...
- 『GreenPlum系列』GreenPlum 4节点集群安装(图文教程)
目标架构如上图 一.硬件评估 cpu主频,核数推荐CPU核数与磁盘数的比例在12:12以上Instance上执行时只能利用一个CPU核资源进行计算,推荐高主频 内存容量 网络带宽重分布操作 R ...
- 『练手』005 Laura.SqlForever历史遗留 的 架构思想缺陷
005 Laura.SqlForever历史遗留 的 架构思想缺陷 我们 比较一下 Laura.WinFramework 和 Laura.XtraFramework 的差异: Laura.WinFra ...
- 多云混合云之多集群统一管理:基于阿里云ACK统一纳管多个不同Kubernetes集群
目前阿里云云原生产品家族已经支持多集群管理功能,允许使用阿里云容器服务Kubernetes(简称ACK)控制台或kubectl命令接入.统一纳管其他公有云.客户IDC自建K8s集群,集中管理部署K8s ...
- [转]搭建高可用mongodb集群(二)—— 副本集
在上一篇文章<搭建高可用MongoDB集群(一)——配置MongoDB> 提到了几个问题还没有解决. 主节点挂了能否自动切换连接?目前需要手工切换. 主节点的读写压力过大如何解决? 从节点 ...
随机推荐
- loj548 「LibreOJ β Round #7」某少女附中的体育课
这道题好神啊!!! 发现这题就是定义了一种新的卷积,然后做k+1次卷积. 这里我们就考虑构造一个变换T,使得$T(a) \cdot T(b) =T(a∘b)$,这里是让向量右乘这个转移矩阵. 于是我们 ...
- BZOJ_4773_负环_倍增弗洛伊德
BZOJ_4773_负环 Description 在忘记考虑负环之后,黎瑟的算法又出错了.对于边带权的有向图 G = (V, E),请找出一个点数最小的环,使得 环上的边权和为负数.保证图中不包含重边 ...
- Spring IOC(二)容器初始化
本系列目录: Spring IOC(一)概览 Spring IOC(二)容器初始化 Spring IOC(三)依赖注入 Spring IOC(四)总结 目录 一.ApplicationContext接 ...
- ffmpeg 获得视频的时间长度, 仅仅学习一下
public static void main(String[] args) { String result = processFLV("E:\\test\\京视传媒\\体育类\\xiao. ...
- 【爆料】-《阿伯泰大学毕业证书》Abertay一模一样原件
☞阿伯泰大学毕业证书[微/Q:865121257◆WeChat:CC6669834]UC毕业证书/联系人Alice[查看点击百度快照查看][留信网学历认证&博士&硕士&海归&a ...
- EffictiveC++笔记 第1章
Chapter 一: 条款 1 :视 C++为一个语言联邦 (P41 ) c++其实可以视为有四个部分: C Object-Oriented C++ Template C++ STL 条款 2:尽量以 ...
- 开箱即用Bumblebee独立部署搭建webapi网关详解
在之前的章节里都是讲述如何在程序中使用Bumblebee来构建一个Webapi网关:但这样显然有些麻烦,毕竟很多时候可能只需要一个简单负载处理,还需要写个程序针对服务进行编写代码或配置的确是比较麻烦的 ...
- Python调用ansible API系列(一)获取资产信息
你想让ansible工作首先就需要设置资产信息,那么我们如何通过使用Python调取Ansible的API来获取资产信息呢? 要提前准备一个hosts文件 获取组或者主机 #!/usr/bin/env ...
- 游戏AI之初步介绍(0)
目录 游戏AI是什么? 游戏AI和理论AI 智能的假象 (更新)游戏AI和机器学习 介绍一些游戏AI 4X游戏AI <求生之路>系列 角色扮演/沙盒游戏中的NPC 游戏AI 需要学些什么? ...
- 基于.NET的APP开发和Windows开发,异步回调差别
在Smobiler的开发中,控件或组件及客户端功能都是通过事件或委托来进行处理的. Smobiler是基于异步非阻塞的方式来运行的 下面我们分别对Windows的和Smobiler的MessageBo ...