最近项目的后端需求是全球同服的,在使用语言方面确定了为golang之后,了解了一下当前的一些goalng游戏服务器框架,终于在leaf/pitaya/ 等众多框架中选择了 Origin, 主要是因为它是分布式框架,微服务架构,比较匹配做全球同服需求下的功能模块分离。
|
(后续2021.08.04补充更正一下,Origin的服务发现功能现已实现,参看Origin服务发现详解)
目前基本已经上手,现在总结归纳一下一些需要注意和记住的点:
1、服务的安装
步骤如下:
-
服务的实现
定义一个组合了service.Service的结构体,它就是一个服务了 -
服务的预加载
在服务实现的package的init函数中使用 node.setup就可以预加载服务了, 预加载之前根据需要设置服务的Name, 与后面配置servicelist中的名字对应,默认是服务结构体的名称. -
服务配置
在config/cluster.json 中可以配置每个节点的servicelist, 添加节点想要装载的服务名即可. -
main.go中导入服务package
这点是很容易忽略的点,一不小心就容易搞忘记了, 一定要在main.go中import
2、rpc的使用细节
在Origin中rpc的接口及注释如下:
// 异步, rpc首选, 不会阻塞本服务
AsyncCall(serviceMethod string,args interface{
},callback interface{
}) error
// 同步等待调用结果
Call(serviceMethod string,args interface{