micserver

package module
v0.1.3 Latest Latest
Warning

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

Go to latest
Published: Aug 5, 2020 License: MIT Imports: 4 Imported by: 0

README

MICServer

micserver 是一个为分布式系统设计的服务器框架,以模块为服务的基本单位。底层模块间使用 TCP 及自定义二进制编码格式通信,底层实现优先考虑时间效率。

使用 ROC(Remote Object Call)远程对象调用作为模块间的主要通信接口,不关心服务模块本身,而是将上层业务作为对象注册到 micserver 中,寻址路由均由底层维护,只需要知道目标调用对象的 ID 即可调用,不需要关心目标所在的模块。得益于 ROC 抽象,使所有业务状态都可以与服务本身解耦,可以轻松将各个 ROC 对象在模块间转移或加载,实现分布式系统的无状态/热更/容灾冗余等特性。

你可以在示例程序中了解 micserver 的基本使用方法。

目前 micserver 不需要任何第三方包。

适用于谁?

本框架设计初衷,是个人开发者或者低成本团队中能以最简单步骤建立一个能用于生产的服务器集群。

至少适用于以下业务场景:

  1. 服务端主动驱动业务,如游戏服务器,互联网等应用中的主动推送业务,主动式监控。
  2. 物联网服务。

安装

go get github.com/liasece/micserver

官方文档

GoDoc

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func SetupApp

func SetupApp(configpath string) (*app.App, error)

SetupApp func

Types

This section is empty.

Directories

Path Synopsis
Package app micserver 最基础的运行单位,app中包含了多个module,app在启动时会初始化所有module, 并且根据配置初始化module之间的连接。
Package app micserver 最基础的运行单位,app中包含了多个module,app在启动时会初始化所有module, 并且根据配置初始化module之间的连接。
Package base micserver重要的一些接口
Package base micserver重要的一些接口
Package conf 包含micserver中使用的 配置文件/命令行参数 的配置
Package conf 包含micserver中使用的 配置文件/命令行参数 的配置
Package connect 实现了 micserver 中 模块间连接/客户端Gateway连接 的逻辑, 包括了所有连接需要用到的方法,连接池管理方法。
Package connect 实现了 micserver 中 模块间连接/客户端Gateway连接 的逻辑, 包括了所有连接需要用到的方法,连接池管理方法。
internal
log
Package log micserver 中使用的 log 系统,支持 Syslog(系统信息)/Debug(调试)/Info(关心的)/ Warning(警告)/Error(错误)/Fatal(致命) 日志级别,日志可按大小/小时转储。
Package log micserver 中使用的 log 系统,支持 Syslog(系统信息)/Debug(调试)/Info(关心的)/ Warning(警告)/Error(错误)/Fatal(致命) 日志级别,日志可按大小/小时转储。
buffer
Package buffer provides a thin wrapper around a byte slice.
Package buffer provides a thin wrapper around a byte slice.
core
Package core defines and implements the low-level interfaces upon which core is built.
Package core defines and implements the low-level interfaces upon which core is built.
internal/bufferpool
Package bufferpool houses core's shared internal buffer pool.
Package bufferpool houses core's shared internal buffer pool.
internal/color
Package color adds coloring functionality for TTY output.
Package color adds coloring functionality for TTY output.
internal/exit
Package exit provides stubs so that unit tests can exercise code that calls os.Exit(1).
Package exit provides stubs so that unit tests can exercise code that calls os.Exit(1).
internal/ztest
Package ztest provides low-level helpers for testing log output.
Package ztest provides low-level helpers for testing log output.
test
Package test provides a variety of helpers for testing log output.
Package test provides a variety of helpers for testing log output.
test/observer
Package observer provides a core.Core that keeps an in-memory, encoding-agnostic repesentation of log entries.
Package observer provides a core.Core that keeps an in-memory, encoding-agnostic repesentation of log entries.
Package module 基础模块,实现了基本的模块接口,利于上层使用 micserver ,在业务中自定义模块时, 可以直接继承该基础模块,继承于基础模块(使用匿名成员实现)的上层业务模块, 即实现了 IModule 接口。
Package module 基础模块,实现了基本的模块接口,利于上层使用 micserver ,在业务中自定义模块时, 可以直接继承该基础模块,继承于基础模块(使用匿名成员实现)的上层业务模块, 即实现了 IModule 接口。
msg
Package msg micserver 中消息传递的基本单位
Package msg micserver 中消息传递的基本单位
base
Package base 一个消息具有的基础数据
Package base 一个消息具有的基础数据
network
baseio
Package baseio micserver 中网络连接的基础IO接口实现,支持自定义网络协议
Package baseio micserver 中网络连接的基础IO接口实现,支持自定义网络协议
chanconn
Package chanconn micserver 中的管道连接,底层默认将其应用于在同一个 App 下的模块间的连接, 可以减少消息编解码CPU占用,提高同一APP下的Module交换消息的效率。
Package chanconn micserver 中的管道连接,底层默认将其应用于在同一个 App 下的模块间的连接, 可以减少消息编解码CPU占用,提高同一APP下的Module交换消息的效率。
tcpconn
Package tcpconn micserver 中的 TCP 连接管理,默认情况下,跨 App 的 Module 使用的便是 TCP 进行消息 通信,常用的客户端连接的协议也是 TCP 协议。
Package tcpconn micserver 中的 TCP 连接管理,默认情况下,跨 App 的 Module 使用的便是 TCP 进行消息 通信,常用的客户端连接的协议也是 TCP 协议。
Package process 是一个 micserver 中的单例,用于获取该进程中存在的所有 App 以及 Module, 以便实现例如 roc catch 的优化,有一些数据不必每个 Module 都持有一份。
Package process 是一个 micserver 中的单例,用于获取该进程中存在的所有 App 以及 Module, 以便实现例如 roc catch 的优化,有一些数据不必每个 Module 都持有一份。
Package roc 每个 micserver 进程会持有一份 ROC 缓存单例,维护了所有已知的ROC对象所处的位置 Package roc Remote Object Call.
Package roc 每个 micserver 进程会持有一份 ROC 缓存单例,维护了所有已知的ROC对象所处的位置 Package roc Remote Object Call.
Package rocutil roc对象构造及调用的简单使用工具,基于反射实现,性能敏感处不宜使用。
Package rocutil roc对象构造及调用的简单使用工具,基于反射实现,性能敏感处不宜使用。
Package server micserver中的ROC调用发生时,处理调用以及返回值。
Package server micserver中的ROC调用发生时,处理调用以及返回值。
base
Package base 服务的基本接口
Package base 服务的基本接口
gate
Package gate gateway基础模块
Package gate gateway基础模块
gate/base
Package base 网关的基本接口
Package base 网关的基本接口
subnet
Package subnet micserver中的子网信息,管理了所有模块间的连接
Package subnet micserver中的子网信息,管理了所有模块间的连接
subnet/base
Package base 服务器子网基础
Package base 服务器子网基础
subnet/serconfs
Package serconfs 连接到本模块的服务器配置信息管理器
Package serconfs 连接到本模块的服务器配置信息管理器
Package servercomm micserver中模块间发送的消息的定义,由 *_binary.go 实现二进制协议。
Package servercomm micserver中模块间发送的消息的定义,由 *_binary.go 实现二进制协议。
Package session 管理当前Module所拥有的Session Package session 客户端在连接到服务器网络后,除了Gate能取到客户端的实际连接Client外, 其他模块只能通过客户端的Session操作客户端。
Package session 管理当前Module所拥有的Session Package session 客户端在连接到服务器网络后,除了Gate能取到客户端的实际连接Client外, 其他模块只能通过客户端的Session操作客户端。
test
app
roc
Package util micserver中的一些算法及实用工具
Package util micserver中的一些算法及实用工具
atomic
Package atomic provides simple wrappers around numerics to enforce atomic access.
Package atomic provides simple wrappers around numerics to enforce atomic access.
buffer
Package buffer 无拷贝IO缓冲区实现
Package buffer 无拷贝IO缓冲区实现
errors
Package errors provides simple error handling primitives.
Package errors provides simple error handling primitives.
multierr
Package multierr allows combining one or more errors together.
Package multierr allows combining one or more errors together.
sysutil
Package sysutil 系统当前的网络信息 Package sysutil 系统panic恢复
Package sysutil 系统当前的网络信息 Package sysutil 系统panic恢复
timer
Package timer 系统时间 Package timer 定时器实现
Package timer 系统时间 Package timer 定时器实现
uid
Package uid UUID生成器
Package uid UUID生成器

Jump to

Keyboard shortcuts

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