程序聚合 软件案例 一点通服务器:分接入服务器和业务服务器两大模块

一点通服务器:分接入服务器和业务服务器两大模块

2025-05-04 22:25:20
行业:生活服务、社交
载体:Windows应用
技术:C++、PHP

业务和功能介绍

负责一点通接入服务器和业务服务器全部代码编写, 负责确保服务器的稳定性和正确性
的前提下, 不断地优化服务器的性能, 负责测试客户端代码的编写(采用MFC编写), 负责与测试人员的沟通和交流, 负责维护服务器运维过程中出现的BUG
负责公司整个服务器代码的编写, 服务器用Linux c++开发, 该服务器目前正在联通上线(服务器分接入服务器和业务服务器两种), 负责测试客户端的编写, 客户端使用MFC来开发, 目前该服务器能够达到稳定运行, 无明显的内存泄漏, 对客户端的连接和服务器的业务处理可以做到负载均衡, 对服务器的架构和整个服务器的业务流程非常了解(包括客户端的连接, 接入服务器消息的分发, 业务服务器业务的处理), 目前和联通合作的推送服务器已经做到了二期的版本, 即将开发做第三期的开发, 接入服务器和业务服务器通过部署多个实例来达到缓解服务器压力的目的, 业务服务器的推送任务包括任务的翻译和推送两个流程, 为了减缓数据库查询的压力, 发送给客户端的推送消息又分为主动推送和被动推送两种, 主动推送即业务服务器通过接入服务器序号和客户端连接socket主动地把消息推送给客户端, 而被动推送即客户端来一个请求才发送一个任务推送给客户端

项目实现

1、【接入服务器】
1.1、接入模块: 采用epoll模式来支持客户端的大并发连接
1.2、消息接收模块: 使用链式队列来保存epoll触发所返回的socket id, 采用哈希表来保证线程池中线程接收消息的唯一性, 使用消息缓存来保证一次接收客户端消息的完整性, 使用顺序队列来保存接收到完整的客户端消息
1.3、业务服务器路由模块: 根据业务服务器配置文件来连接所有的业务服务器, 并产生相应的接收线程来接收业务服务器的消息
1.4、超时检测模块: 此模块可以检测业务服务器忙碌与否(通过客户端发包的时间与当前的时间做比较, 如果业务服务器返回数据包, 会删掉此对应的消息包)
1.5、接入服务器重连机制: 此模块使得接入服务器与业务服务器断开时避免重启接入服务器, 并通过轮询业务服务器配置文件来连接新的业务服务器
1.6、消息分发模块: 采用线程池的方式, 负责客户端消息的分发(通过消息类型, 主业务码和子业务码来路由到相应的业务服务器中), 此模块采用负载均衡的方式, 如果当前业务量很大的话, 可以加大业务服务器(软)的数量
1.7、客户端消息分发模块: 取出接收到的业务服务器消息包中的接入服务器序号和消息计数器信息, 从哈希表中找到相对应的socket id, 并且分发到对应的客户端中
1.8、心跳检测模块: 通过客户端连接时间和当前时间做比较(如果客户端发送了数据包, 会修改对应的客户端连接时间), 如果超过一定的时间, 会主动把客户端断开
备注: 如果当前接入服务器的连接数量过大的话, 可以适量添加接入服务器(软)的数量

2、【业务服务器】
2.1 【通用业务服务器】(与接入服务器的交流是双向的)
2.1.1、接入模块: 负责与接入服务器的连接, 每一个接入服务器连接都会产生接收线程(对应queue_in消息队列), 发送线程(对应queue_out消息队列)和处理

示例图片视频


程序员
30天前活跃
方向: 后端-C++、爬虫/脚本-爬虫/脚本、
交付率:100.00%
相似推荐
基于Java编程语言实现推箱子小游戏-推箱子
启动程序: 玩家双击JAR文件或运行主类,系统初始化,加载主界面和第一关的地图数据。 主界面交互: 界面显示游戏区域、关卡信息和功能菜单。玩家可以选择“开始游戏”直接游玩,或通过“选择关卡”进入特定关卡。 核心游戏循环: 玩家按下方向键。 事件处理模块捕获按键事件,并调用游戏逻辑模块。 游戏逻辑模块根据当前玩家位置和按键方向,计算下一个位置。 判断逻辑: 如果前方是空地或目标点,则移动玩家;如果前方是箱子,则进一步判断箱子前方是否为空地或目标点,若是,则同时移动玩家和箱子。 移动发生后,渲染绘制模块立即清空画布,并根据最新的地图数据重新绘制整个场景。 游戏逻辑模块随后检查所有目标点是否都已被箱子占据。如果是,则判定本关通过,弹出成功提示,并自动加载下一关。 辅助功能路径: 存档/读档: 玩家在游戏中通过菜单选择“保存游戏”,系统将当前关卡、步数和地图状态写入文件。之后可通过“加载游戏”读取文件恢复状态。 重置关卡: 玩家操作失误时,可选择“重置”将当前关卡恢复到初始状态,步数清零。
斗罗大陆捕获器
该项目是一款网络抓包游戏登录器应用,支持代理设置与管理,能拦截网络请求和响应并按规则过滤,还包含 WebView 展示网页功能,可切换 IP、处理网页交互,同时具备数据存储管理及网络请求日志记录等功能。
网页前端游戏-2048益智游戏
本 2048 网页小游戏以 **“轻量化益智体验 + 个性化玩法拓展”** 为核心定位,面向全年龄段用户提供无需下载、即开即玩的数字合并益智服务。依托 HTML5、CSS3 与 JavaScript 技术构建,实现跨设备无缝适配(桌面端 / 移动端),既满足玩家碎片化娱乐需求,又通过创新功能提升用户留存与商业价值,打造经典 IP 的现代化迭代版本。
拾金者
本想自主研发的一款在线网页游戏。 游戏地址:https://12345.sale/gold/ 「缩放画面」:滚动鼠标中键(同CAD) 「拖动画面」:点住鼠标中键,然后移动鼠标(同CAD) 「拖动对象(如:人物、动物、植物)」:把鼠标移动到目标对象,点住鼠标左键,然后移动鼠标 「跟踪对象」:把鼠标移动到目标对象,单击鼠标右键(注意:1、程序默认跟踪女孩,可手动取消跟踪。2、对于移动速度较快的对象,需要足够快的手速才能成功点击。) 「取消跟踪对象」:点击状态栏的「取消跟踪」按钮 「播放/暂停背景音乐」:点击状态栏的「BGM」按钮 淘金者:一个锲而不舍的淘金女孩,她会前往每个金矿的位置收集这些金矿; 小蓝鸟:作为淘金者的好朋友,它如影随形地陪伴在「淘金者」的身侧; 蝴蝶:在各「花」对象之间停留和往返; 燕子:在各「树」对象之间停留和往返; 狗:作为人类的忠实朋友,狗将会往返于「人」对象和「房屋」对象之间以帮助人类传递讯息; 你,作为这个世界的幕后操控者,可用鼠标拖动任何对象穿梭于虚拟空间的每一个角落,在它们毫无防备与察觉之下,悄无声息地操控这个世界的流转。
游戏制作-仿制黄金矿工
我们选择了简单易懂的Python语言。它就像搭积木一样,用清晰的代码块就能构建游戏世界:Pygame库负责让钩爪"活"起来,Photoshop把矿洞画得栩栩如生,PyCharm开发工具就像智能助手,随时帮我们修正代码里的"小马虎"。整个过程就像拼乐高,看着简单的零件逐渐变成精巧的矿车、闪烁的宝石,这种创造的快乐,正是游戏开发最迷人的地方。
帮助文档   Copyright @ 2021-2024 程聚宝 | 浙ICP备2021014372号
人工客服