xingo是免费、开源、可定制、可扩展、节点支持“热更新”的高性能分布式服务器开发框架,采用golang语言开发,天生携带高并发场景的处理基因,继承了golang语言本身的各种优点,开发简单易上手并且功能强大。它主要实现了高性能的异步网络库,分布式节点间的高性能rpc通信,日志管理,数据库支持(暂时只支持mongodb),goroutine安全的定时器,telnet在线服务器调试工具等,可用的开发场景包括但不局限于IM即时通讯服务器,游戏服务器(已有多款公司级别的项目选择了xingo)等可以节省大量游戏开发时间,让游戏开发人员可以将主要精力放到游戏玩法和游戏逻辑上。真正实现了修改配置文件就可以搭建自定义的分布式服务器架构。
优势特点:
1) 开发效率高
2) 支持自定义的分布式架构,方便横向扩展节点,理论上只要有足够的物理机器,没有承载上限
3) 支持自定义通信协议
4) 分布式节点自动发现,自动重连
5) worker pool工作线程池
6) telnet在线服务调试工具(使用方便扩展简单)
7) 内置mongodb数据库支持
8)goroutine安全的定时器实现
示例配置:
{ "master":{"host": "192.168.2.225","rootport":9999}, "servers":{ "gate2":{"host": "192.168.2.225", "rootport":10000,"name":"gate2", "module": "gate", "log": "gate2.log"}, "gate1":{"host": "192.168.2.225", "rootport":10001,"name":"gate1", "module": "gate", "log": "gate1.log"}, "net1":{"host": "192.168.2.225", "netport":11009,"name":"net1","remotes":["gate2", "gate1"], "module": "net", "log": "net.log"}, "net2":{"host": "192.168.2.225", "netport":11010,"name":"net2","remotes":["gate2", "gate1"], "module": "net", "log": "net.log"}, "net3":{"host": "192.168.2.225", "netport":11011,"name":"net3","remotes":["gate2", "gate1"], "module": "net", "log": "net.log"}, "net4":{"host": "192.168.2.225", "netport":11012,"name":"net4","remotes":["gate2", "gate1"], "module": "net", "log": "net.log"}, "admin":{"host": "192.168.2.225", "remotes":["gate2", "gate1"], "name":"admin", "module": "admin", "http": [8888, "/static"]}, "game1":{"host": "192.168.2.225", "remotes":["gate2", "gate1"], "name":"game1", "module": "game"} } }
示例架构图:
1)安装go 2)安装git xingo默认使用google protobuf来进行序列化和反序列化操作,所以需要安装 go get github.com/golang/protobuf/proto go get github.com/viphxin/xingo 3)获取demo所需资源包 4)按readme步骤执行 转载于:https://www.cnblogs.com/
xingo协议用的是Protobuf, 如果是Unity3d客户端也要生成Protobuf, 因此在这里我提取出来进行一下说明: 从网上找了一个unity3d的protobuf生成工具,我把它fork了一下: https://github.com/atgczcl/UnityGolang_Protobuf3_gen 或者 https://github.com/Mikejinhua/UnitySock
1.自我介绍 2.算法题:8位数字首位相连成一个环,每位数字都是0或者1,输入一个8位数字,每次可以将一位翻转, 翻转时,这一位的前后各一位也会同时翻转,求最少的翻转次数,能够将输入的8位数转换为全0 3.实习相关项目介绍 4.项目相关问题 5.协程 6.reactor 剩下记不住了 #友塔游戏##C/C++##面经一面面经##游戏开发#
问题 自我介绍 问我在实习的时候做了什么 问我擅长的语言和技术 http的默认端口,https的默认端口 一个网卡上可以绑定多个ip吗 指向自身主机的ip地址 怎么不用第三个变量交换a和b的值,我答了异或,面试官问还有吗,我就说c++的swap和指令集的xchg make和cmake的区别 5L的水桶和3L的水桶怎么量出4L的水 交换机位于OSI模型的哪一层 问我玩过哪些游戏 总结 20多分钟就面
nebula3 是一个游戏引擎和开发框架,可移植的特性支持多平台,包括 iPhone。 http://code.google.com/p/nebula3-engine/
问题内容: 我只是想知道哪种语言是开发支持大量(数千)用户的游戏服务器的理想选择?我涉足python,但意识到这不会给所有内核带来线程(这意味着8核心服务器= 1核心服务器)会带来太多麻烦。我也不太喜欢这种语言(那种“自我”的东西使我很生气)。 我知道C ++是性能方面的工作语言,但我讨厌它。我不想处理它的草率语法,我喜欢我的手被托管语言握住。这使我接触到C#和Java,但是我对其他语言持开放态度
🕒 岗位/面试时间 64min 1.聊项目 2.怎么处理粘包问题 3.netty线程模型 4.synchronized与reenterlock 5.cas与锁的区别 6.项目并发线程数 7.公平锁与非公平锁,项目中那种锁用的多,实际场景那种锁用的多 8.IO密集型与CPU密集型,你的项目是哪种类型,为什么 9.场景题:多个用户申请加入公会,多个审核员同时审核请求,只有一个名额,如何设计实现并发?
本项目是win32下大型客户端游戏的游戏辅助开发框架,由于它集成并包含了游戏辅助开发的各方面功能,称本项目为win32辅助开发的组件也可。 内含具体项目有fifa online3、疾风之刃、怪物猎人online、流放之路等,也有辅助帐号验证服务器,帐号查寻与管理工具,特征码识别,资源文件系统等。 本人现已转型,特发布此项目,旨在分享一份只供参考的多年工作经验与心血,若本项目中有些您认为闪亮的设计、
我试图建立一个通用服务器总是在连接的客户端。 该体系结构由4个主要组件组成 有状态应用服务器 无状态网关服务器 客户排队 系统和经纪人 工艺流程 客户端连接到网关 我正在使用JavaNetty作为网关。appserver也是用Java编写的。 我很想说这个设计像Mongrel2,但我不能完全确定。我想说,这更符合城市飞艇氦边缘服务器的设计(http://urbanairship.com/blog/
JAGS 游戏服务器是一个开源的 Java / AS 3.0 的游戏服务器,支持多玩家、碰撞检测以及键盘事件等等。