Code Monkey home page Code Monkey logo

hive's Introduction

hive

Distributed game server framework based on CPP 17 && LUA 5.4

  • 框架(hive)+基础服务(server)
  • 支持跨平台开发(windows,linux)
  • oop模式的lua开发,支持lua热更新
  • 支持星型组网及多级组网自动路由,router热备,独立子网,服务动态扩容及热备
  • 基于tcp协议及lua协程实现同步代码异步rpc
  • 基于行为树的机器人/单元测试一体化
  • 自带GM命令快速验证
  • 路由协议支持有序及无序模式,支持服务的动态扩容/容灾/hash扩容
  • 支持服务线程模式(不接入集群,所有线程服务间可以相互rpc,master线程可以访问集群rpc)
  • 支持nacos或monitor服务发现

数据库

  • mysql,clickhouse,mongodb,redis,etcd,influxdb,lmdb
  • 自实现的分布式cache服务,支持分布式读写权限控制,容灾,扩容

网络协议

  • 支持tcp,udp,websocket协议
  • 支持http client,http server及ssl模式
  • 客户端协议支持protobuf,json

工具

  • lmake 根据配置自动生成跨平台的makefile文件及vs.sln工程文件及一键编译
  • excel2lua 表格配置xls导出lua读写及热更
  • encrypt lua加密

日志

  • 分级文件日志
  • graylog日志系统
  • zipkin opentrace 分布式链路追踪
  • 飞书,钉钉,企业微信消息及错误日志推送

服务监控

  • Influxdb + granfana 性能监控及分析(协议,消息,rpc,cpu,内存,协程,服务等)
  • monitor监控服务
  • 自带自适应的GM web页面
  • 自带函数性能分析prof,支持协程模式

性能

  • rpc单服务性能在5w次/s左右,这是计算完整的从发起到接收结果.涉及到服务的拆分,部署按这个性能去做评估
  • mongodb的性能集群模式远超mysql,单机测试插入5-8w/s

Documents

img.png

img.png

自动GM页面

进程说明

有bug或好的建议请@ QQ群:543833695 Toney

Friend Open Source

特别贡献者

  • xiyoo0812

todo list

  • 目前应用于已上线百万pcu大型实时在线FPS项目,压测过5000台服务器的百万在线全区全服,同步更新优化(部分功能会延迟或简化).多多关注,建议,star
  • 相互交流&学习&借鉴(个人QQ:8242117)
  • 完善文档及工具链,编写demo
  • 优化性能,完善精简代码

hive's People

Contributors

hero1s avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

hive's Issues

windows下面编译失败

4>F:\ilike\hive-main\core\plugins\src\tools\helper.cpp(165,12): error C2039: "kit_state": 不是 "luakit" 的成员
4>F:\ilike\hive-main\extend\luakit\include\lua_class.h(4): message : 参见“luakit”的声明
4>F:\ilike\hive-main\core\plugins\src\tools\helper.cpp(165,1): error C2065: “kit_state”: 未声明的标识符
4>F:\ilike\hive-main\core\plugins\src\tools\helper.cpp(165,22): error C2146: 语法错误: 缺少“;”(在标识符“kit_state”的前面)
4>F:\ilike\hive-main\core\plugins\src\tools\helper.cpp(165,22): error C3861: “kit_state”: 找不到标识符
4>F:\ilike\hive-main\core\plugins\src\tools\helper.cpp(168,11): error C2065: “kit_state”: 未声明的标识符
4>F:\ilike\hive-main\core\plugins\src\tools\helper.cpp(172,70): warning C4996: 'getpid': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _getpid. See online help for details.
4>F:\ilike\hive-main\core\plugins\src\tools\helper.cpp(174,16): error C2440: “return”: 无法从“int”转换为“luakit::lua_table”
4>F:\ilike\hive-main\core\plugins\src\tools\helper.cpp(174,16): message : 无构造函数可以接受源类型,或构造函数重载决策不明确
4>正在生成代码...
4>已完成生成项目“lplugins.vcxproj”的操作 - 失败。
========== 生成: 成功 5 个,失败 5 个,最新 0 个,跳过 0 个 ==========
F:\ilike\hive-main\bin\libcurl-x64.dll
F:\ilike\hive-main\bin\lua.dll
F:\ilike\hive-main\bin\mimalloc-redirect.dll
F:\ilike\hive-main\bin\mimalloc.dll
移动了 4 个文件。
请按任意键继续. . .

hello

有qq ? 交流一个?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.