Skip to content

ZServer4D 是一套从商业项目(游戏类)剥离而出的云服务器中间件,可以承载百万级的分布式负载服务

License

Notifications You must be signed in to change notification settings

cgzcgb/ZServer4D

 
 

Repository files navigation

ZServer4D 是一套从商业项目(游戏类)剥离而出的云服务器中间件,可以承载百万级在线的分布式长连接负载

介绍

支持运行平台Android,IOS,Win32/64,Linux,OSX

支持开发平台:FPC以及DelphiXE10和以后的版本

并行计算支持HPC服务器,并行深度参数服务器可配置

良好支持轻量云主机,腾讯云,阿里云,亚马逊云,均有数百台使用ZServer4D的服务器在运行中

支持内网穿透,在公司或家里自己架设宅服 宅服架设说明

ZServer4D的前后台均支持苹果要求的IPV6审核条件,支持AAAA,A记录秒切,支持所有IPV6的云主机

内置高级加密系统,一万在线客户端会有一万把密钥,并且能动态定时更换密钥(请参考ZServer4D的附属开源项目 https://github.com/PassByYou888/CoreCipher

架构设计可以轻松实现IP池和入口网络秒切,非常利于在国内商业环境中防止对手DDos攻击

支持中心化网络群集,支持中心化网络群集一键对接

内置NoSQL并行化内核,良好支持大数据,良好支持聚类分析,支持分布式数据库负载,支持分布式数据查询结果汇集(NoSQL技术体系从11月初开始一直处于整理中,工程较大,可能短期不能完成,但是未来会以开源形式为Delphi国内带来前沿的数据库支持体系)

(NoSQL并行化内核已经完成,聚类分析和分布式负载已完成50%文档)

操作系统和设备支持一览,test with Delphi 10.2 upate 1 Tokyo

Windows: CrossSocket(C/S OK), DIOCP(C/S OK), ICS(C/S OK), Indy(C/S OK)

Linux(X64): Indy(C/S OK), CrossSocket(C/S OK)

Android:Indy(C/S OK), CrossSocket(Only Client)

IOS Device: Indy(C/S OK), CrossSocket(Only Client)

IOS Simulaor: n/a

OSX: Indy(C/S OK),ICS(未测试), CrossSocket(C/S OK)

文档

编译指南 日常问题 库说明

宅服架设

多媒体通讯

p2pVM隧道技术 p2pVM第二篇机理说明

云服务器框架

怎样开发基于ZS的底层通讯IO接口

部署Ubuntu服务器的开发环境

BatchStream机制详解

HPC服务器的工作机制详解

延迟反馈机制详解

云调度服务器用法详解

百度翻译服务后台(支持Ubuntu16.04LTS服务器) 百度翻译服务API(支持Ubuntu16.04LTS服务器)

通讯接口支持(Delphi 10或则更高版本,低版本未测试)

1.indy 阻塞模式的通讯组件,已在ZServer4D内部集成

(open source) http://www.indyproject.org/

2.CrossSocket 异步式通讯组件,已在ZServer4D内部集成

(open source) https://github.com/winddriver/Delphi-Cross-Socket

3.ICS异步式通讯组件,已在ZServer4D内部集成

(open source) http://www.overbyte.be

4.DIOCP 国人所开发的稳定DIOCP通讯库

(Open source) https://github.com/ymofen/diocp-v5

通讯接口支持(FreePascal with Lazarus 计划支持中)

1.synapse4(open source) 计划支持

支持ssl的优秀开源项目

2.fcl-net(open source) 计划支持

freepascal内置的网络库

zServer4D究竟是个什么东西?

从架构来说,ZSERVER4D是一个中间件。

从生产来说,ZSERVER4D是一套后台系统的开发工艺,也可以说是一套系统标准。

从程序和技术来说,iocp,epoll,kqueue它们只是一套从操作系统提供出来的服务器开发接口,拥有这类接口的后台服务器现在多如牛毛,而我们基于这些接口要做系统级开发,是件非常艰深的工作:优化内存池,服务器系统安全,处理并发后台的同步和异步,处理各种错误,新增通讯接口,兼容手机,Linux,Windows等等平台。

ZSERVER4D是作为系统的生产工艺,用标准开发模型解决了这些技术问题。

注意

REST,BAAS等等单项式的HTTP服务请自行在服务器开发和集成,ZServer4D不提供外部http支持

如果你在使用ZServer4D,并且对开发有疑问,请加群去寻找答案(请不要直接联系作者,作者不爱交网友)

qq群490269542

作者qq600585(请不要直接加作者)

关于内存泄漏

ZServer4D内置的服务器有4种:Indy,ICS,CrossSocket,DIOCP所有的服务器均无内存泄漏

ZServer4D内置的客户端采用的是用完抛弃的工作方式,会有少量内存泄漏,诸如:indy,DIOCP(客户端)

在ZServer4D中所捆绑的类,包括编解码,链表,数据库,均无内存泄漏

关于压力测试

压力测试如果链接超过6万,Windows系统会自动关闭侦听端口,具体原因不详,压测请尽量保持在6万以内,超过6万服务器侦听端口会自动关闭,只需要将服务器重开一次即可

关于切入和使用

使用ZServer4D前,请仔细阅读本项目所提供的Demo和文档,做到对基于ZServer4D的开发范式非常了解

参考 库说明

日常问题汇总

最后一更新日志

2018-5-26 基于云服务器的开发工艺在本次已经升级

  • 删除了云服务器模型1.0及其Demo
  • 原商业云服务器框架2.0被移动至Demo中
  • 新版本云服务器模型并入到了 ServiceApiModel 中
  • 新版本的云服务器模型具备低门槛的技术基因,支持了在Linux系统架设云服务器后台,整个模型只有一个300行代码的群集调度服务器,外加两个附属Demo和一份调度服务器的用法详解文档
  • 新增一个HPC服务器的使用Demo
  • 新增技术文档,BatchStream机制详解.pdf
  • 新增技术文档,HPC服务器的工作机制详解.pdf
  • 新增技术文档,延迟反馈机制详解.pdf
  • 新增技术文档,云调度服务器用法详解.pdf
  • 本次更新未对反向代理更新,反向代理工具系列将留在下次更新一并升级

更多更新日志

捐赠

如果你支持zServer开发,请向作者捐款,希望捐赠后能留下真实姓名和联系方式,开发建议请发至作者邮箱 [email protected]

About

ZServer4D 是一套从商业项目(游戏类)剥离而出的云服务器中间件,可以承载百万级的分布式负载服务

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Pascal 92.6%
  • PHP 5.3%
  • HTML 1.2%
  • C++ 0.7%
  • Assembly 0.2%
  • Batchfile 0.0%