Skip to content

Latest commit

 

History

History
52 lines (45 loc) · 4.33 KB

README.zh_CN.md

File metadata and controls

52 lines (45 loc) · 4.33 KB

Framework

English | 简体中文

简介

Golaxy分布式服务开发框架 旨在为实时通信应用程序提供一个全面的服务端解决方案。基于EC系统与Actor线程模型的 内核 ,框架实现了分布式服务的所有依赖项,设计简洁、易于使用,特别适合用于开发游戏和远程控制系统。

功能与特性

基于框架可以开发有状态(Stateful)或无状态(Stateless)分布式服务,已实现功能与特性:

  • 消息队列与事件驱动架构(MQ and Broker):基于NATS。
  • 服务发现(Service Discovery):基于ETCD,框架也提供Redis支持,但是Redis没有数据版本控制机制,所以仅能用于功能演示。
  • 分布式锁(Distributed Synchronization):基于ETCD或Redis,默认ETCD。
  • 分布式服务支持(Distributed Service):定义分布式服务节点地址格式,提供异步模型未来(Future),支持分布式服务间通信,可以横向拓展服务。
  • 分布式实体支持(Distributed Entities):提供分布式实体(Distributed Entity)信息登记与查询功能,支持分布式实体间通信。
  • GTP协议(Golaxy Transfer Protocol):适用于长连接、实时通信的工作场景,需要工作在可靠网络协议(TCP/WebSocket)之上,支持双向签名验证、链路加密、链路鉴权、断线续连重传、自定义消息等特性。
  • GAP协议(Golaxy Application Protocol):适用于开发应用层通信消息,需要工作在GTP协议MQ之上,支持消息判重、自定义消息、自定义可变类型等特性。
  • GTP协议网关与客户端(GTP Gate and Client):基于GTP协议的网关与客户端,支持TCP/WebSocket长连接。
  • 路由(Router):支持规划通信路线,映射会话与实体,使任意服务可以与客户端通信,还支持创建通信分组,实现消息组播。
  • RPC支持(Remote Procedure Call):支持服务、实体、客户端和分组间的RPC调用,基于GAP协议,支持可变类型,简单易用。支持单程通知RCP与有响应RPC。
  • 日志(Logger):基于Zap。
  • 配置(Config):基于Viper,支持本地本地配置与远端配置。
  • 数据库(DB):支持连接关系型数据库(基于GORM)、Redis、MongoDB。

目录

Directory Description
/ 开发应用时常用的类型与函数。
/net/gap GAP协议实现。
/net/gtp GTP协议实现。
/net/netpath 服务节点地址结构。
/plugins/broker 消息队列中间件。
/plugins/conf 配置系统。
/plugins/db 支持数据库。
/plugins/dentq 支持分布式实体查询。
/plugins/dentr 支持分布式实体注册。
/plugins/discovery 服务发现。
/plugins/dserv 支持分布式服务。
/plugins/dsync 分布式锁。
/plugins/gate 实现GTP网关。
/plugins/log 日志系统。
/plugins/router 客户端路由系统。
/plugins/rpc RPC系统。
/plugins/rpcstack 支持RPC堆栈。

示例

详见: Examples

安装

go get -u git.golaxy.org/framework