chaosengine

module
v1.0.1 Latest Latest
Warning

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

Go to latest
Published: Nov 16, 2024 License: Apache-2.0

README

分布式服务框架

所有的服务都是actor模型,由消息作为服务之间的调用 服务默认是单线程执行,支持多线程执行

感谢 github.com/duanhf2012/origin 作者大哥,我的这个框架有很多东西都是抄他的,感谢他的开源

主要的框架结构和origin是一致的,整个框架分为三部分:
1. node 节点
2. service 服务
3. module 模块

node: 即独立运行的进程, 每个节点上可以运行多个service服务
service: 即一个actor, 以协程的形式运行, 支持多线程执行, 每个service中可以包含多个module
module: 即最小的业务单元, module无法独立运行, 必须依附于service, 是组成service功能的基础单位
集群:
1. 每个节点都会启动自己的集群模块, 用来管理整个集群中的其他可调用服务
2. 服务发现模块, 所有service,只要包含RPC开头的接口, 这个service就会被注册到集群中,供其他服务调用
3. 服务启动后会自动注册
4. 服务发现是通过etcd实现的, 目前暂时未抽离成接口, 后续有空再弄, 这样就可以接入自己的服务发现
5. 远程调用目前使用的是rpcx, 可以自行加入自己的rpc框架
1. 目前实现了本节点内的服务调用和跨界点服务调用
2. 使用etcd作为服务发现中心
3. rpcx作为rpc框架
FUTURE
1. 热更新(这个估摸很难在这个框架中支持)
2. 自动扩容(这已经是具体的业务需求了)
3. 自动负载均衡(需要提供策略)
4. 后台服务管理
5. 自动服务监控调度(不出意外应该是给出调度规则,然后自动调度,应该可以使用temporal,给一个调度配置,然后自动调度)
TIPS
1. 敏感配置在打包时请使用 //go:embed config.yaml 嵌入到二进制中

Directories

Path Synopsis
engine
actor
Package actor @Title 请填写文件名称(需要改) @Description 请填写文件描述(需要改) @Author yr 2024/9/4 下午5:53 @Update yr 2024/9/4 下午5:53
Package actor @Title 请填写文件名称(需要改) @Description 请填写文件描述(需要改) @Author yr 2024/9/4 下午5:53 @Update yr 2024/9/4 下午5:53
cluster
Package cluster @Title 集群模块 @Description desc @Author pc 2024/11/5 @Update pc 2024/11/5
Package cluster @Title 集群模块 @Description desc @Author pc 2024/11/5 @Update pc 2024/11/5
cluster/config
Package config @Title 集群配置 @Description 集群配置 @Author yr 2024/8/30 下午6:54 @Update yr 2024/8/30 下午6:54
Package config @Title 集群配置 @Description 集群配置 @Author yr 2024/8/30 下午6:54 @Update yr 2024/8/30 下午6:54
cluster/discovery
Package discovery @Title 服务发现 @Description 服务发现 @Author yr 2024/8/29 下午3:42 @Update yr 2024/8/29 下午3:42
Package discovery @Title 服务发现 @Description 服务发现 @Author yr 2024/8/29 下午3:42 @Update yr 2024/8/29 下午3:42
cluster/endpoints
Package endpoints @Title 请填写文件名称(需要改) @Description 请填写文件描述(需要改) @Author yr 2024/8/29 下午6:24 @Update yr 2024/8/29 下午6:24
Package endpoints @Title 请填写文件名称(需要改) @Description 请填写文件描述(需要改) @Author yr 2024/8/29 下午6:24 @Update yr 2024/8/29 下午6:24
cluster/endpoints/client
Package client @Title title @Description desc @Author yr 2024/11/7 @Update yr 2024/11/7
Package client @Title title @Description desc @Author yr 2024/11/7 @Update yr 2024/11/7
cluster/endpoints/remote
Package remote @Title 远程rpc服务器 @Description 请填写文件描述(需要改) @Author yr 2024/9/3 下午4:26 @Update yr 2024/9/3 下午4:26
Package remote @Title 远程rpc服务器 @Description 请填写文件描述(需要改) @Author yr 2024/9/3 下午4:26 @Update yr 2024/9/3 下午4:26
cluster/endpoints/repository
Package repository @Title title @Description desc @Author yr 2024/11/11 @Update yr 2024/11/11
Package repository @Title title @Description desc @Author yr 2024/11/11 @Update yr 2024/11/11
core
Package core @Title title @Description desc @Author pc 2024/11/5 @Update pc 2024/11/5
Package core @Title title @Description desc @Author pc 2024/11/5 @Update pc 2024/11/5
def
Package def @Title title @Description desc @Author pc 2024/11/5 @Update pc 2024/11/5
Package def @Title title @Description desc @Author pc 2024/11/5 @Update pc 2024/11/5
errdef/errcode
Package errcode @Title 请填写文件名称(需要改) @Description 请填写文件描述(需要改) @Author yr 2024/8/30 下午3:27 @Update yr 2024/8/30 下午3:27
Package errcode @Title 请填写文件名称(需要改) @Description 请填写文件描述(需要改) @Author yr 2024/8/30 下午3:27 @Update yr 2024/8/30 下午3:27
event
Package event @Title 事件类型 @Description 事件类型 @Author yr 2024/7/19 下午3:40 @Update yr 2024/7/19 下午3:40
Package event @Title 事件类型 @Description 事件类型 @Author yr 2024/7/19 下午3:40 @Update yr 2024/7/19 下午3:40
inf
Package inf @Title title @Description desc @Author yr 2024/11/12 @Update yr 2024/11/12
Package inf @Title title @Description desc @Author yr 2024/11/12 @Update yr 2024/11/12
messagebus
Package messagebus @Title 消息总线 @Description 所有的消息都通过该模块进行发送和接收 @Author yr 2024/11/12 @Update yr 2024/11/12
Package messagebus @Title 消息总线 @Description 所有的消息都通过该模块进行发送和接收 @Author yr 2024/11/12 @Update yr 2024/11/12
monitor
Package monitor @Title title @Description desc @Author yr 2024/11/7 @Update yr 2024/11/7
Package monitor @Title title @Description desc @Author yr 2024/11/7 @Update yr 2024/11/7
msgenvelope
Package msgenvelope @Title 数据信封 @Description 用于不同service之间的数据传递 @Author yr 2024/9/2 下午3:40 @Update yr 2024/9/2 下午3:40
Package msgenvelope @Title 数据信封 @Description 用于不同service之间的数据传递 @Author yr 2024/9/2 下午3:40 @Update yr 2024/9/2 下午3:40
node
Package node 模块名: 程序入口 功能描述: 用于提供程序入口 作者: yr 2024/1/10 0010 23:43 最后更新: yr 2024/1/10 0010 23:43
Package node 模块名: 程序入口 功能描述: 用于提供程序入口 作者: yr 2024/1/10 0010 23:43 最后更新: yr 2024/1/10 0010 23:43
rpc
Package rpc @Title title @Description desc @Author pc 2024/11/5 @Update pc 2024/11/5
Package rpc @Title title @Description desc @Author pc 2024/11/5 @Update pc 2024/11/5
services
Package services @Title 服务配置 @Description desc @Author pc 2024/11/5 @Update pc 2024/11/5
Package services @Title 服务配置 @Description desc @Author pc 2024/11/5 @Update pc 2024/11/5
sysModule/httpmodule
Package httpmodule 模块名: http服务 功能描述: 这是一个公用的http服务器 作者: yr 2024/1/4 0004 23:41 最后更新: yr 2024/1/4 0004 23:41
Package httpmodule 模块名: http服务 功能描述: 这是一个公用的http服务器 作者: yr 2024/1/4 0004 23:41 最后更新: yr 2024/1/4 0004 23:41
sysModule/httpmodule/auth
Package auth 模块名: 模块名 功能描述: 描述 作者: yr 2024/1/16 0016 10:30 最后更新: yr 2024/1/16 0016 10:30
Package auth 模块名: 模块名 功能描述: 描述 作者: yr 2024/1/16 0016 10:30 最后更新: yr 2024/1/16 0016 10:30
sysModule/httpmodule/router_center
Package router_center 模块名: 路由中心 功能描述: 描述 作者: yr 2024/1/4 0004 1:57 最后更新: yr 2024/1/4 0004 1:57
Package router_center 模块名: 路由中心 功能描述: 描述 作者: yr 2024/1/4 0004 1:57 最后更新: yr 2024/1/4 0004 1:57
sysModule/mysqlmodule
Package mysqlmodule @Title mysql模块 @Description mysql模块 @Author yr 2024/7/25 下午3:12 @Update yr 2024/7/25 下午3:12
Package mysqlmodule @Title mysql模块 @Description mysql模块 @Author yr 2024/7/25 下午3:12 @Update yr 2024/7/25 下午3:12
sysModule/redismodule
Package redismodule @Title redis模块 @Description redis模块 @Author yr 2024/7/25 下午3:13 @Update yr 2024/7/25 下午3:13
Package redismodule @Title redis模块 @Description redis模块 @Author yr 2024/7/25 下午3:13 @Update yr 2024/7/25 下午3:13
sysService/dbservice
Package dbservice @Title 数据库服务 @Description 数据库服务 @Author yr 2024/7/25 下午3:10 @Update yr 2024/7/25 下午3:10
Package dbservice @Title 数据库服务 @Description 数据库服务 @Author yr 2024/7/25 下午3:10 @Update yr 2024/7/25 下午3:10
sysService/pprofservice
Package pprofservice @Title 请填写文件名称(需要改) @Description 请填写文件描述(需要改) @Author yr 2024/8/21 下午5:00 @Update yr 2024/8/21 下午5:00
Package pprofservice @Title 请填写文件名称(需要改) @Description 请填写文件描述(需要改) @Author yr 2024/8/21 下午5:00 @Update yr 2024/8/21 下午5:00
sysService/pprofservice/config
Package config @Title 请填写文件名称(需要改) @Description 请填写文件描述(需要改) @Author yr 2024/8/21 下午5:03 @Update yr 2024/8/21 下午5:03
Package config @Title 请填写文件名称(需要改) @Description 请填写文件描述(需要改) @Author yr 2024/8/21 下午5:03 @Update yr 2024/8/21 下午5:03
utils/asynclib
Package asynclib Mode Name: 异步执行 Mode Desc: 使用协程池中的协程执行任务,防止出现瞬间创建大量协程,出现性能问题
Package asynclib Mode Name: 异步执行 Mode Desc: 使用协程池中的协程执行任务,防止出现瞬间创建大量协程,出现性能问题
utils/errorlib
Package errorlib 模块名: 调用者 功能描述: 用来描述调用者信息 作者: yr 2023/7/3 0003 16:44 最后更新: yr 2023/7/3 0003 16:44
Package errorlib 模块名: 调用者 功能描述: 用来描述调用者信息 作者: yr 2023/7/3 0003 16:44 最后更新: yr 2023/7/3 0003 16:44
utils/log
Package log 模块名: 模块名 功能描述: 描述 作者: yr 2023/5/22 0022 21:49 最后更新: yr 2023/5/22 0022 21:49
Package log 模块名: 模块名 功能描述: 描述 作者: yr 2023/5/22 0022 21:49 最后更新: yr 2023/5/22 0022 21:49
utils/pid
Package pid 模块名: 进程id 功能描述: 进程id 作者: yr 2023/4/22 0022 2:03 最后更新: yr 2023/4/22 0022 2:03
Package pid 模块名: 进程id 功能描述: 进程id 作者: yr 2023/4/22 0022 2:03 最后更新: yr 2023/4/22 0022 2:03
utils/queue
Package queue provides a fast, ring-buffer queue based on the version suggested by Dariusz Górecki.
Package queue provides a fast, ring-buffer queue based on the version suggested by Dariusz Górecki.
utils/version
Package version Mode Module: 模块名 Mode Desc: 模块功能描述
Package version Mode Module: 模块名 Mode Desc: 模块功能描述
example
cmd/game
Package main @Title title @Description desc @Author yr 2024/11/15 @Update yr 2024/11/15
Package main @Title title @Description desc @Author yr 2024/11/15 @Update yr 2024/11/15

Jump to

Keyboard shortcuts

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