昨天参加完中兴捧月的决赛,感觉特别的糟糕。说实话,感觉中兴这次比赛搞得真的很奇葩!一是比赛搞得让我觉得公司对整个比赛的态度有点随意,有点不正式。二是比赛的赛题要求每天都在变,感觉不天天关注活动交流区,就容易违规一样~真奇葩!。三是比赛的通知。收到了进入决赛的邮件通知,看完后真的没懂要做些什么要准备些什么。直到到了中兴的研究所现场才发现,我擦,居然是视频答辩~邮件里面和电话里面怎么不说清楚呢?再者,我刚好没准备ppt,我以为是现场拿着自己的作品演示,然后答辩,谁知道是远程视频答辩,在摄像头面前叽里咕噜了半天,我也说不清楚我们的作品的原理怎么样,有哪些技术要点。你要是在现场,我立马给你说清楚作品的基本情况和一些基本原理。哎~算是自己没充分准备吧。

话说,一开始没打算参加这个比赛的,一是时间比较紧,二是要准备找工作,后面开赛后看到任务四不错,挺有感觉挺想练练手的,于是就参加了。谁知道复赛的要求一变再变,感觉赛题要求都脱离了现实生活了:控制进程瘫痪的时候,系统要能正常工作,要让用户感知不到系统瘫痪~。还不允许添加其他进程(如监视进程),要在模拟的环境下实现双机热备,我还真的没头绪,或许自己经验欠缺。

为了应付赛题的要求,设计了一个“有点靠拢题目意思的方案”。写一下自己的方案,学习交流、总结提升~

上图就是我们的系统原理图。系统由三类进程构成。测试进程和主控和从控同时保持套接字连接,主控和从控同时和所有的负荷进程保持套接字连接,主控与从控之间保持套接字连接。网络模块和日志模块是通用模块。网络模块负责基于socket 的数据包收发和网络状态检测,给上层提供基于固定格式的消息通信。

基本原理是:控制进程启动时,先启动的处于主模式(主控进程)。后启动的处于从模式(从控进程)。主控与从控之间定时保持心跳包交换,如果一定时间后没收到对方的心跳包,则认为对方瘫痪(重启或者死机),发现对方瘫痪时,检查自己的工作模式,如果工作于从模式则切换到主模式。整个系统,任何时候只有一个工作在主模式下的控制进程。该进程为测试进程服务,而工作于从模式的进程不提供任何服务。两个总控与所有负荷进程都保持套接字连接,测试进程同时与两个控制进程保持套接字连接。测试进程在发送请求时,同时给两个控制进程发送请求,其中肯定有一个处于主模式的进程会提供响应。此外,主控与从控之间实时保持状态同步,即保证有主控瘫痪时从控立刻能够转换为主控进程并为测试进程服务。(负荷进程的热插拔这里就不提了)

以上介绍了防控制进程瘫痪的方案。当然,这个方案有两个明显的缺陷:

1.数据同步问题。即由于网络传输的不可靠性,主控与从控之间的状态非常有可能不一致,而这个不一致会导致用户丢失。

2.从现实角度讲,让用户同时访问两个服务器是不科学不合理的。

3.当主控宕机,从控切换到主控时有可能会丢失用户的请求。

当然,让用户同时访问两个服务器,虽然不科学不合理,但是作为比赛也是为了应付赛题要求:主控瘫痪,快速为用户服务。在本方案中,理想的情况下,主控宕机了,从控会尽快感知对方宕机,然后切换到主模式下,从而为用户服务。这样设计也是让用户感知不到主控与从控的切换。

最后,这样的方案只是比赛用用而已~O(∩_∩)O~

中兴捧月大赛之方案探讨相关推荐

  1. 谈谈中兴捧月大赛决赛以及总结

    前言 四月份,在师兄的推荐下,报名参加了中兴捧月大赛.一开始只是为了混一个面笔试的资格(因为提交有效成绩即可免笔试),然后为了找一个简单的赛道,注册了几个号看了两三个赛道的题目.发现自己每个都不熟悉, ...

  2. 中兴捧月大赛之经验教训总结(上)

    参加这个比赛的过程中,自己也摸索和学习了很多新的知识,特别是网络编程这块,以前学得太简单,这次到了前所未有的学习深度.这里一并总结一下. 技术要点: 1.C语言实现简单数据结构. 由于大赛要求必须在c ...

  3. 2023第十三届“中兴捧月”全球精英挑战赛今日正式启动

    3月31日,第十三届"中兴捧月"全球精英挑战赛正式启动! 由中兴通讯主办的"中兴捧月"大赛,自2009年首次举办至今,已走过13个年头,是广大高校师生的重点关注 ...

  4. 2020中兴捧月算法大赛-阿尔法(MOT)赛道--赛后总结

    比赛结束了,很荣幸拿到了中兴捧月算法大赛 MOT赛道 全国总决赛第二名的亚军奖杯,这估计也是我找到工作前最后一个比赛了,收获满满,下面算是自己给自己写的一个简单的赛后总结,做的比较粗糙,细节也就不多赘 ...

  5. 2020年中兴捧月算法大赛---埃德加考特派赛题解析及代码

    写在前面 三月份疫情期间在家闲来无事, 各大公司举办了很多的算法比赛, 但是大多是人工智能相关, 而我这个菜鸡又不会这方面的, 这时发现了中兴捧月的埃德加考特派赛道, 也就是数据库相关本科课设, 恰好 ...

  6. Deepsort_V2 2020中兴捧月阿尔法赛道多目标检测和跟踪初赛第一名

    2020中兴捧月阿尔法赛道多目标检测和跟踪初赛第一名方案 初赛:多目标跟踪:指标MOTA和MOTP, 后期的大量实验证明检测算法相对于跟踪更重要. 数据集分析: 1.人群密集稀疏场景: 2.场景(白天 ...

  7. “中兴捧月”报文监视器的实现

    前一段时间和几个好友组队参加了中兴举办的"中兴捧月杯"程序设计大赛,跌跌撞撞竟然进了复赛,不过最终还是没能入围区域决赛,还是感觉很遗憾.这里把当时复赛的题目以及我们被Out的代码拿 ...

  8. 2020中兴捧月算法赛道傅里叶派赛题菜鸡回顾

    最近抱着试水的心理参加了2020中兴捧月算法大赛傅里叶派赛题.从4.19号由旁观者转变为参赛者,到5.8号提交完成最后的文档和代码,前后算起来也有20天了.虽然自己比较菜,但毕竟是第一次参加这种比较正 ...

  9. 2019中兴捧月算法大赛历程

    1.初赛 题目是网络流量均衡.再带宽限制的图中求不同请求带宽的各条业务的最短路径使总成本最小. 解题思路: 对业务进行排序,优先级高的业务去走热点链路,优先级低的业务发现热点链路已经达到带宽上限就绕路 ...

最新文章

  1. 实现影响力的三个核心要素
  2. 某程序员感叹自己学历虽低,却能进入阿里!虽然只是p6,却面过不少清北毕业生!清北毕业生也没什么了不起,水货一抓一大把!...
  3. [转] 如何从多份Java/JEE工作中进行抉择
  4. python培训班一般多少钱-报个python培训班多少钱
  5. [羊城杯 2020]RRRRRRRSA
  6. 【算法】字符串近似搜索(转)
  7. matlab fig生成exe,MATLAB GUI多个m文件和fig如何生成exe文件
  8. 目标检测必看——RCNN是怎样融合了分类与回归,CNN与SVM
  9. centos 7 通过yum安装dnf 包管理器
  10. ZUI – 开源HTML5跨屏框架
  11. Spring学习笔记:尝试Lombok简化实体类代码
  12. 百行代码解读阿里 AloT 芯片平台无剑 100!
  13. jenkins集成sonar问题记录
  14. 配置管理计划的主要内容有哪些?
  15. python image.open 参数作用,python基础(python Image Library)
  16. 小招喵跑步[java]
  17. 计算机云开头的词语,云开头的四字词语介绍
  18. 折线分割平面(图文解析)
  19. 2、水晶头制作---网管技能
  20. 【渝粤题库】广东开放大学Photoshop图像设计 形成性考核

热门文章

  1. fMRI预处理-DPABI
  2. java中设置基偶隔行换色_Excel2016中奇偶行填充不同颜色的方法
  3. 程序员裸辞三个月,终于拿到大厂offer!网友:不应该!
  4. JS判断对象是否为空(个人常用)
  5. 多链路5G组网方案-支持国密算法的5G安全组网方案
  6. RabbitMQ的安装
  7. java jmx 监控tomcat_通过Tomcat开启JMX监控的方法图解
  8. 火车头采集,wordpress特色图如何设置?
  9. 正则表达式检测电子邮件_电子邮件中的垃圾邮件检测
  10. html5程序员面试官如何提问,前端程序员第二轮面试的10个问题