服务器设计总结

1.设备用户名和密码需要校验。
通过调用设备多个重要通信接口校验用户名。有些onvif设备不同的用户名有不同的权限。有些用户名会没有权限获取到profiles,导致没法播放视频。

2.线程进程监控功能。
监控进程线程的退出情况,有些线程会崩溃退出,有些线程迟迟不退出,这些情况都是要暴露出来给开发人员的,用于负载均衡等目标,某些线程进程退出后,需要重新拉起。
监控内存使用量、监控内核句柄数、网络套接字数量,程序代码过大,使用了第三方库,出现内存泄露是正常的情况,虽然我们极力要消除内存泄露的出现,这时就需要监控内存使用量、内核句柄数和网络套接字数量。
监控业务处理速度。业务速度过慢可能是业务代码逻辑出现了问题,开发人员可以根据监控信息发现问题解决问题。同时master进程可以控制减少发往此业务进程的消息。必要时master进程可以发送邮件告警并重启进程。

3.有维护功能。
维护功能包括,服务器重启,服务器关闭,服务器平滑升级。互联网服务器对服务器平滑升级要求很高。但安防交通行业要求不高。

4.日志功能。
完善的日志功能。可以精细反应服务器的运行情况运行逻辑。出现问题时,日志是快速定位问题的最佳手段。

5.数据库功能。
服务器就是一个数据存储传递的节点。处理的数据是要落地保存的。很多时候,我们可以把数据库看成开发模式里的状态机。

6.前端服务。
前端服务负责接送用户发送给来的数据,并给予用户反馈。

7.后端服务。
后端服务用来处理耗时业务。后端业务和前端业务的处理耗时和生命周期有差异。

8.网络io服务。
网络io服务并发量大的话,用epoll和窗口消息的方式,异步、状态机。并发量少的话,用一个线程一个io服务也是可以的。

9.文件io服务。
linux处理freedsb有完善的异步读写文件api外,其他的unix服务器都没有完善的文件读写异步api。所以可以用每次读写一小段数据的方式。当然其他方式也是可以的。一个服务器无非就是要处理4块事情:处理网络请求、处理文件读写、处理数据库读写、编写业务代码。

时间: 2024-12-07 06:31:53

服务器设计总结的相关文章

2016年netty/mina/java nio视频教程java游戏服务器设计教程

2016年netty/mina/Javanio视频教程Java游戏服务器设计教程 需要的加qq:1225462853,备注:程序员学习视频 其他视频都可以索要(Netty   NET    C++ 等等) 互联网架构师教程:http://blog.csdn.net/pplcheer/article/details/71887910 netty录制时间为2015.11-2016.2月份  netty教程为加密视频!      netty12个课程已全部录制完成,相信通过这12节课的分析能让大家对n

FPS游戏服务器设计的问题 【转】

一.追溯 去gameloft笔试,有一个题目是说: 叫你去设计一个FPS(第一人称射击游戏),你是要用TCP呢还是要用UDP,说明理由 . 二.学习 这是两篇网上找到的文章,写非常不错. 当时笔试的时候自己没想到这么全,但大概想法都是一致的,摘录下来再学习一下. 1.网络游戏程序员须知 UDP vs TCP 作者:[email protected] 首发链接:http://blog.csdn.net/rellikt/archive/2010/08/21/5829020.aspx 这篇教程让我们就

网络并发服务器设计---9

网络并发服务器设计 1 #include <stdio.h> 2 #include <sys/types.h> 3 #include <sys/socket.h> 4 #include <string.h> 5 #include <netinet/in.h> 6 7 #include <unistd.h> 8 9 #define portnum 3333 10 11 int main() 12 { 13 int sockfd; 14

企业级服务器设计与实现经验之插件系统基础篇

最初之所以要采用插件的形式进行开发,主要是为了解决功能服务的“热插拔”问题,在决定采用“框架+插件”的方式进行设计后,我们就更进一步,打算将一个个可以分割开来的拥有完整功能的组件都做成插件的形式,并且使同类型的插件的接口兼容,这样在以后需要改变时就可以灵活的进行替换.比如,将通信部分做成通信插件.日志记录部分做成日志插件等等. 首先,我们要弄清楚,什么是插件?我给出了一个定义,可能有失偏颇. 插件又称为扩展,是一种特殊的组件,用于增强和扩展基本框架的行为能力.插件和框架的通信协议是一组接口,插件

Mini WEB服务器设计

MINI WEB服务器设计 以下是曾经Watchmen一个朋友学习网络编程时设计的一个简单的MiniWEB服务器.以下是其工作计划: 1.查看HTTP/1.0协议 参见:RFC1945, <>第9章 2.配置文件格式定义<详见minim.conf> option=val1, val2,... # 注释文本 #选项集开始 option=val #选项值定义 #选项集结束 3.定义所要实现的功能 主功能: 3.1 日志记录 服务器程序日志:由配置文件minim.conf的全局变量(is

基于内存,redis,mysql的高速游戏数据服务器设计架构

转载请注明出处,欢迎大家批评指正 1.数据服务器详细设计 数据服务器在设计上采用三个层次的数据同步,实现玩家数据的高速获取和修改. 数据层次上分为:内存数据,redis数据,mysql数据 设计目的:首先保证数据的可靠,防止数据丢失,保证数据完整.然后实现数据的高速访问,减少由玩家数量增加对数据服务器性能造成的影响.最后实现运维数据的入库,以及数据持久化. 在这个基础上数据服务器不再是一个单一服务器,它涉及到与其他服务器之间的交互. 数据服务器的核心在于redis数据层面.通过redis加快玩家

服务器设计

阻塞与非阻塞指的是 socket api,如,accept,read,write,conncet等,通过fcntl或者ioctlsockt可以设置socket非阻塞. 同步与异步指的是 io复用通知应用程序的是 io就绪事件还是io完成事件,也就是读写数据是有应用程序来读写还是内核来读写.也叫reactor,preactor 服务器设计:半同步半异步 主线程监听listen socket,有客户端连接的时候,通过管道向工作线程,通知accept socket. 然后,每个工作线程都有自己的epo

游戏服务器设计之NPC系统

游戏服务器设计之NPC系统 简介 NPC系统是游戏中非常重要的系统,设计的好坏很大程度上影响游戏的体验.NPC在游戏中有如下作用: 引导玩家体验游戏内容,一般游戏内有很多主线.支线任务,而任务的介绍.接取.领取奖励等操作都是通过NPC的操作,一般会有几个核心NPC,再不停的任务引导中,玩家会对核心npc印象深刻,强化了游戏代入感. 核心功能的展示和操作.游戏大部分功能都会放到游戏主界面,但是全部功能都放进去是不现实的,其他功能则以NPC的方式提供,比如进入某副本的入口等. 一些运营活动,比如道具

百万级高并发WebRTC流媒体服务器设计与开发

第1章 课程导学与准备工作本章主要介绍为何要学习WebRTC流媒体服务器开发,以及本门课能为我们带来哪些收获.之后会为大家介绍本课程内容具体安排,最后给出如何学好这门课程的一些学习建议.希望大家都能通过这门课程,学有所成,学有所归. 第2章 C++语言基础回顾[已掌握,可略过]为了便于大家更好的学习流媒体服务器的开发,本章将带大家对WebRTC服务器开发中用到的C++基础知识进行回顾梳理,如类的定义与使用,继承,多态,名存空间等相关知识. 第3章 服务器基础编程本章将带你学习最基础的服务器开发,

百万级高并发WebRTC流媒体服务器设计与开发教程云

百万级高并发WebRTC流媒体服务器设计与开发 资源获取链接:点击获取完整教程 百万级高并发WebRTC流媒体服务器设计与开发 5G时代音视频为王,随着实时音视频应用的爆发,来自Google 的WebRTC成为了人们关注的焦点,但很多人却不知道如何使用WebRTC实现多人实时互动,本课就将围绕与浏览器互通.级联.可扩展等6大痛点手把手带你学习大负载.高并发.高性能 WebRTC 流媒体服务器的设计与开发,揭秘万人互动直播背后的深层奥秘,打造可负载百万用户量的企业级的流媒体服务器 播答题的核心需求