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

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

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消息队列)和处理

示例图片视频


程序员
1天前活跃
方向: 后端-C++、爬虫/脚本-爬虫/脚本、
交付率:100.00%
相似推荐
slog试玩广告-采矿
采矿slog试玩广告游戏制作。改策略游戏通过操作玩家进行采矿并出售获取金币,然后用金币去解锁砍伐和采矿小屋,当砍伐和采矿小屋解锁后会有工人自动进行资源采集并出售,玩家拿到更多金币后去解锁更多建筑和升级城防,并最终抵御敌人攻击,赢得胜利。
Uni-App移动应用开发-我的世界2048手机版
项目概述 这是一个将经典益智游戏 2048 与沙盒游戏 《我的世界》 相结合的趣味作品。原版网页游戏经过重新设计,使用 uniapp 框架重构,技术栈基于 Vue.js,可实现小程序、Android、H5 等多端适配。 主要功能 经典 2048 玩法:通过滑动屏幕合并相同数字的方块,合成新的矿物方块。 合成动画:合并时方块会有缩放、弹幕效果,操作反馈强。 背景音乐与音效:添加了轻快的背景音乐,合并时伴有音效,提升沉浸感。 多端支持:基于 uniapp 编译,一套代码可生成微信小程序、H5 网页、Android/iOS App,覆盖主流平台。
流棋
流棋是一款自主创新的下棋游戏,主要是玩法新颖,可跨平台。市面上下棋游戏有很多,但大多都是类型重复,氪金严重,广告横飞的样子,所以我开发了一款完全免费,且好玩的下棋游戏。 流棋是一款电脑桌面单机游戏,双方在棋盘上落下的第一子为源子,通过移动源子在原地留下影子,对方移动己方的影子转化为自己的普通子,当一方源子被包围时,或者源子连续4步没移动,即判负。或者双方都无子可走,棋子多者获胜。当双方普通子都将己方源子包围时,棋子多者获胜,一样多则平局。双方都无子可走时,棋子数量一样多则平局。目前已在taptap上运行测试。
teenpattiflush
技术要点: 1、主要基于smartfoxserver这款游戏框架进行开发,应用了hibernate,spring这些框架 2、在游戏玩法的逻辑上涉及并发问题,运用锁等内容保证流程的正常性 3、使用了Memcached,Redis等缓存技术保证高请求量,响应问题 4、有整合Googlepaly,Facebook,Amazon,Paypal等支付接口 5、有应用爬虫技术获取一些赛事的实时信息 6、使用rmi进行分布式的交互
FL模拟赛车平台
Fantasy League 是面向 Assetto Corsa 的赛事运营的一体化平台,覆盖赛事配置、报名管理、成绩与积分、实时圈速、车队/车手管理与内容发布。项目由web后端、AC Live Timing 实时采集服务、Web 前端与小程序端组成。 系统结构(四大核心模块) 1) web后端 2) 圈速采集服务 3) Web 前端 4) 小程序端 项目正常运营中,地址:https://fantasyleague.online/
帮助文档   Copyright @ 2021-2024 程聚宝 | 浙ICP备2021014372号
人工客服