『集群』004 Slithice 集群分布式(多个客户端,基于中央服务器的集群服务)
Slithice 集群分布式(多个客户端,基于中央服务器的多个集群服务端)
案例Demo展示:
集群架构图 如下:
如上图,上图 展示了 这个集群 的 结构:
>一个中央服务器(可以有多个),负责 为 所有 集群成员服务端 或者 客户端 提供 配置数据;
>对外 暴露的 成员服务端 有 两个Socket服务端,两个WebService服务端;
>两个 WCF服务端 不对外暴露,客户端 也不会从 中央服务器 得到 这两个WCF服务端的存在;
>客户端 从 中央服务器 得知,自己可以调度 四个服务端,以及每个服务端可以处理的 Action;客户端 将会 按照配置 随机调度 服务端 获取 想要的数据。当 其中 某个服务端 崩溃时,客户端会 降低失败服务端的调度优先级,并试着调度 另外可以处理 Action的 其他服务端;
运行展示:
这里 用 WinCE客户端 做为测试, WinPC客户端 也就不做测试啦;
服务端:
客户端:
测试 Slithice.Core.Utils.ConfigurationManager 类的稳定性:
测试 WinCE 客户端 手动调度 独立Socket服务端 :
测试 WinCE 客户端 从中央服务器 获取调度配置,随机调度 集群服务端 :
运行说明:
上图的 WinCE客户端运行,我们可以 看到:
>客户端 支持 手动设置 链接的服务器的调度对象,也支持 从 配置文件中 获取 链接服务器的调度对象;
>同一个 “配置” 按钮,随机 有 五个服务端 给出了 结果(只有 WebService 和 Socket —— WinCE 5.0 不支持 WCF);
>网格控件中,从 服务端 返回的是 一个 对象集合,这个 对象集合 就是用 Laura.Serialization 完成的 正反序列化;
>WinPC服务端 能够和 WinCE客户端 进行协同工作 —— 那么 WinPC服务端 和 WinPC客户端 也就理所当然 可以正常运行;所以 WinPC客户端 测试这里就 不予列出啦;
>Ps. 客户端 并非只支持 从中央服务器 配置获取,而且 还支持 自定义 配置获取;
集群容错:
Slithice 集群架构 支持 集群服务端 的 宕机容错;
还是 上面的 Demo —— 我们关闭 几个 集群服务端(模拟 服务器 宕机现象);
图片就不列举啦,结果是:
>WinCE 客户端 依然响应 正确值;
>但是 随机调度到错误服务端时,速度可能慢一点:
因为一次任务,有三次容错重连机会,即 实际 可能调度了 4、7、10、….. 次
>3次错误尝试 后 确定某个 服务端 确实错误;
>于是 更换 其他 服务端,1次成功尝试(如果更换的服务端 还错误,又会增加3次),并返回结果;
>对错误服务端的 调度 不会 一直 慢下去(每确定错误一次,这个 错误服务端 的 调度概率 会被 降低);
>集群 出现 服务端宕机,开始时,执行性能可能会慢一些;
>但是 随着 错误服务器 调度概率 越来越小,错误调度 也就会 不断减少,性能 也会 恢复;
舒小龙
2014-01-29 10:29
『集群』004 Slithice 集群分布式(多个客户端,基于中央服务器的集群服务)的更多相关文章
- 『集群』003 Slithice 最简分布式(多个客户端,一个独立服务端)
Slithice 最简分布式(多个客户端,一个独立服务端) 案例Demo 展示: 我们搭建一个 可以 独立运行 的 服务端:然后 多个客户端 并发链接 这个 服务端 完成 分布式逻辑: 服务器 独立运 ...
- 『集群』005 Slithice 基于 集群 的 自动容错
Slithice 基于 集群 的 自动容错 Slithice容错概述: Slithice 支持 非集群 的 独立服务端: 支持 基于 中央服务器 的 集群服务端: 支持 基于 自定义配置 的 集群服务 ...
- 『集群』001 Slithice 服务器集群 概述
Slithice 服务器集群 概述 Slithice是做什么的 Slithice 是一个 跨平台 的 分布式架构 框架: 旨在简化 分布式开发 的开发难度,节省 开发成本 和 后期维护成本: 并提供 ...
- 『集群』002 Slithice 集群配置工具 的使用
Slithice 集群配置工具 的使用 Slithice集群配置工具 主界面 在测试 Slithice 的 Demo 中,我配置了 7个服务端: 一个 WCF 的 中央服务端: 两个 WCF 的 成员 ...
- 『集群』006 Slithice 后期改进 和 Slithice可能存在的BUG
Slithice 后期改进 和 Slithice可能存在的BUG Slithice 可能存在的 BUG: >Slithice 暂时 没有 对 循环调度 进行控制:不正确的 配置 可能导致 调度死 ...
- 『练手』004 Laura.SqlForever如何扩展 导航栏 工具栏 右键菜单 插件
004 Laura.SqlForever如何扩展 导航栏 工具栏 右键菜单 插件 导航栏 插件扩展 比如下图的 窗口 > 关闭所有文档 这个导航栏: 在 任何程序集,任何命名空间,任 ...
- 『SharePoint 2010』Sharepoint 2010 Form 身份认证的实现(基于AD)
一.进管理中心,创建一个应用程序,配置如下: 二.填端口号,和选择form身份认证,以及填写成员和角色,其他都默认就可以了 三.使用SharePoint 2010 Management Shell在里 ...
- 『SharePoint 2010』Sharepoint 2010 Form 身份认证的实现(基于SQL)
1:创建一个基于身份认证的应用程序(具体参见上篇基于AD) SQL-MembershipProvider 成员SQL-RoleManager 角色 2:修改管理中心,我们创建的应用程序,还有Web服务 ...
- Tomcat:基于Apache+Tomcat的集群搭建
根据Tomcat的官方文档说明可以知道,使用Tomcat配置集群需要与其它Web Server配合使用才可以完成,典型的有Apache和IIS. 这里就使用Apache+Tomcat方式来完成基于To ...
随机推荐
- mutex.go
package} } ) ].GetResponseRange().Kvs[].CreateRevision ) return nil } func (m *Mutex) IsOwner() ...
- bzoj 2428 均分数据 模拟退火
模拟退火 按照自己的思路打了,结果WA,发现退火最关键的就是初温,降温,和修改次数, 这个题还在外层带了一个循环,骚气 #include<cstdio> #include<iostr ...
- BZOJ_2661_[BeiJing wc2012]连连看_费用流
BZOJ_2661_[BeiJing wc2012]连连看_费用流 Description 凡是考智商的题里面总会有这么一种消除游戏.不过现在面对的这关连连看可不是QQ游戏里那种考眼力的游戏.我们的规 ...
- 终于将SAP系统完全配置通过了
花了近10天的时间,每天晚上加班加点,终于将SAP S4 1610 IDES系统从零到有,从头到尾配置一遍.目前只启用了一家模拟公司,从基础数据的设置,到销售订单开立(含按单按库需求),跑MRP需求, ...
- 【SAP业务模式】之STO(一):业务背景和前台操作
所谓STO即两个关联公司之间的库存转储交易,一家公司发出采购订单向另一家公司做采购,然后在做发货.如此之后,两家公司有相应应收应付的票据,以及开票和发票校验等动作. STO分为一步法与两步法,因为一步 ...
- Airtest 快速上手教程
一.Airtest 简介: AirtestIDE 是一个跨平台的UI自动化测试编辑器,适用于游戏和App. 自动化脚本录制.一键回放.报告查看,轻而易举实现自动化测试流程 支持基于图像识别的 Airt ...
- mybatis 增加热加载xml
由于在本地开发环境上每次修改mybatis xml文件都需要手动重启服务,调试的很麻烦,所以需要热加载xml文件来避免浪费时间,于是网上搜一下资料,看了下有一大堆,但试了下真正能跑起来没有(大都代码没 ...
- 对SVN的落地与实践总结
现今最为流行的Git是管理很几套很成熟的分支管理策略.而SVN确实也有,但结合现公司的实际场景还是做了些调整和变动. 一.分支命名规则 所有分支命名采用小写字母 + 数字 + 特殊符号 组成 项目分支 ...
- spring boot 2.0 Feign的客户端
1.pom.xml <dependency> <groupId>org.springframework.cloud</groupId> <artifactId ...
- Vue.js 学习笔记 第5章 内置指令
本篇目录: 5.1 基本指令 5.2 条件渲染指令 5.3 列表渲染指令 v-for 5.4 方法与事件 5.5 实战:利用计算属性.指令等知识开发购物车 回顾一下第2.2节,我们己经介绍过指令(Di ...