随笔 - 86  文章 - 0  评论 - 737  阅读 - 18万

『集群』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

posted on   InkFx  阅读(977)  评论(2编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· [AI/GPT/综述] AI Agent的设计模式综述
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示