core

package module
v1.0.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 25, 2025 License: Apache-2.0 Imports: 10 Imported by: 1

README

goserver

core 旨在做一个传统的CS结构的服务器框架 目前主要用于游戏服务器开发 框架还在不断努力完善中,如果你对它感兴趣,请关注它的动态或者参与进来

Features

  • 组件通过package的概念统一管理(可以理解为win32下的dll),由config来配置各个组件的特性参数
  • goroutine通过Object进行包装以树型结构组织,Object间的通信通过command(内部是chan),主要是为了预防chan滥用、失控,从而造成各种死锁问题
  • 提供了时间,任务,事务,计划工作,网络通讯,模块管理的内置组件
  • 提供一套传统的游戏服务器架构(制作中...)

模块说明

  • +core 核心模块
    • basic : 基础的线程对象,封装对象间内部通讯;避免chan环锁现象,树形管理object
    • cmdline: 自建命令行,给控制台进程提供一种命令模式
    • container: 框架用到的一些容器,队列,回收器,线程安全list,线程安全map
    • logger: 日志接口
    • module: 业务模块管理,提供统一的心跳管理,模块通过注册挂载到管理器
    • profile: 性能统计相关,用于辅助查找性能热点
    • schedule: 定时任务调度模块,用于周期job处理,如:每日凌晨4:00进行日志清理
    • signal: 信号管理模块,hook操作系统的信号进行回调处理,如:kill -2 PID
    • task: 线程模块,提供线程池、实名线程和独立线程多种模式
    • timer: 定时器,有别于go内置的timer;主要用于确保线程安全问题
    • transact: 分布式事务,基于二段提交实现,协调多节点配合完成一件原子性操作
    • utils: 工具接口

Documentation

Index

Constants

View Source
const (
	HOOK_BEFORE_START int = iota
	HOOK_AFTER_STOP
	HOOK_MAX
)
View Source
const (
	ObjId_RootId int = iota
	ObjId_CoreId
	ObjId_ExecutorId
	ObjId_TimerId
	ObjId_ProfileId
)

Variables

View Source
var (
	AppCtx = newCtx()
)
View Source
var Config = Configuration{}

Functions

func ClosePackages

func ClosePackages()

ClosePackages 关闭功能包

func CoreObject

func CoreObject() *basic.Object

func ExecuteHook

func ExecuteHook(hookpos int) error

func IsPackageLoaded

func IsPackageLoaded(name string) bool

IsPackageLoaded 判断功能包是否已经加载

func IsPackageRegistered

func IsPackageRegistered(name string) bool

IsPackageRegistered 判断功能包是否已经注册

func LaunchChild

func LaunchChild(o *basic.Object)

func LoadPackages

func LoadPackages(configFile string)

LoadPackages 加载功能包

func LoadPackagesAuto

func LoadPackagesAuto()

LoadPackages 加载功能包

func RegisteHook

func RegisteHook(hookpos int, f hookfunc)

func RegistePackage

func RegistePackage(p Package)

RegistePackage 注册功能包

func RegisterConfigEncryptor

func RegisterConfigEncryptor(h viperx.ConfigFileEncryptorHook)

RegisterConfigEncryptor 注册配置文件加密器

func Terminate

func Terminate(o *basic.Object)

func WritePid

func WritePid()

Types

type Configuration

type Configuration struct {
	MaxProcs int
	Debug    bool
}

func (*Configuration) Close

func (c *Configuration) Close() error

func (*Configuration) Init

func (c *Configuration) Init() error

func (*Configuration) Name

func (c *Configuration) Name() string

type Ctx

type Ctx struct {
	*basic.Object
	CoreObj *basic.Object
}

type Package

type Package interface {
	Name() string
	Init() error
	io.Closer
}

Package 功能包 只做初始化,不要依赖其它功能包

Directories

Path Synopsis
queue
queue
queue
recycler
recycler
recycler
skiplist
Package skiplist implements skip list based maps and sets.
Package skiplist implements skip list based maps and sets.
signal
signal
config
config
AtomicIdGen
AtomicIdGen

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL