跨平台C++通用分布式服务器框架
2016-03-18 15:25
435 查看
分布式服务器框架
框架简介
此框架由三种服务器组成:n个
连接服务器:负责处理客户端的网络链接,并转发客户端和逻辑服务器之间的消息。
n个
逻辑服务器:负责处理(由链接服务器转发过来的)客户端的网络消息
1个
全局服务器:负责处理全局逻辑
其实还额外需要一个神器:etcd,作为服务器框架中的
逻辑服务器感知
链接服务器的新增和失效
无论拓扑图请参考
架构图:
框架内置组件:
多连接ssdb客户端
redis/ssdb代理服务器
仅支持C++语言的RPC(支持protobuf类型消息,适合服务器之间业务开发,并支持异步回调)
既定规则(建议)
客户端拥有最多两个逻辑服务器:分别是Primay和Slave
当客户端链接某
链接服务器会(自动)分配一个Primary类型的
逻辑服务器(且不会、也不能重设)
客户端的消息优先(转到到)Slave处理
逻辑服务器可自由设置客户端的当前Slave
当然,客户端的Primay和Slave可以为同一个
逻辑服务器
实际项目中,您可以借助第三方负载均衡服务器来分配
链接服务器的地址给客户端.
内置有
ssdb客户端和
ssdb代理服务器,如果你的应用需要数据库,不妨一试。
使用方式
开发应用时,只需要关注客户端和
逻辑服务器之间的消息设定,不需要考虑
链接服务器,且没有任何(需要引入的)预设消息。
开发应用时,只需要分别实现
逻辑服务器中的
initLogicServerExt函数 和 (可选)
全局服务器中的
initCenterServerExt函数 (通常进行消息handle注册即可)。
作为示例
中心服务器的扩展参考CenterServerExt.cpp
逻辑服务器的扩展参考LogicServerExt.cpp
测试客户端请看:SimulateClient.cpp
相关文章推荐
- C++虚继承(一) --- vtordisp字段
- C++ 和java的不同点
- [leetcode] Self Crossing
- [基础] C++与JAVA的内存管理
- C++ 基础算法之二分查找
- C/C++宏定义的可变参数
- 【C++】rand()函数,时间种子
- <转>c++引用与指针的区别(着重理解)
- apk和groovy和c++的关联
- 将项目从Visual C++ 6.0 升级到Visual C++ 2010
- 51Nod 1086 背包问题 V2(二进制多重背包)
- Visual C++ 2010新特性:MFC的三大巨变
- 17.C语言位操作符
- C++ 关于单色汉诺塔问题
- 第五届 蓝桥杯 本科B组 C/C++ 第9题 地宫取宝 记忆化搜索
- 基于Windows平台,C++ 如何调用exe程序
- 单复变单值、多值解析函数的程序计算;c++复数模板类(2012-12-06 20:25:36)
- html和framework和c++的关联
- c++和html和struts2的关联
- 简明python教程 --C++程序员的视角(九):函数式编程、特殊类方法、测试及其他