学习笔记: 我家别墅靠大海/pitaya-learn
尝试集成功能:我家别墅靠大海/pitaya-game
1.接收器 acceptor
来源acceptor接口
目前内置tcp和ws
常见使用方法:
在火龙果构建过程中绑定给火龙果即可,例如:
2.接收器包装器 acceptorwrapper
来源acceptorwrapper接口
目前内置只有一个接受包装器,控制请求频率
参数参考文档:
Configuration — Pitaya documentation
常见使用方法:绑定ratelimit装饰器
3.火龙果客户端 client
在没客户端对接时候,模拟客户端请求
来源于pitayaclient接口
目前内置标准客户端和proto客户端(我还没测试)。
常见使用方法:
4.会话数据 session
来源于session接口
常见使用方法:
组件中应包含火龙果实例
没有测试过全局的火龙果实例
通过上下文即可获得客户端和服务器的会话
Bind 绑定会话
OnClose 会话关闭时执行函数
Close 手动关闭会话
SetData 设置data数据
GetData 获得data数据
Int 获得data中int类型的数据
......
5.组件 component
组件就是组件,你的业务组成部分
用户是个组件
订单是个组件
。。。
来源于component接口,只需要实现4个方法即可
base已帮用户实现
通常用法:
绑定给火龙果后,通过handler处理游戏请求
6.序列化 serialize
序列化传输参数使用
来源 serializer接口
内置了protobuf , json
通常用法:
用于cli传递protobuf
build时传递序列化方式
7.链接组驱动 group_service
组驱动:管理链接组的方式
来源 serializer接口
目前内置了etcd驱动和内存驱动
通常用法:
构建时给火龙果构建器赋值,选择驱动
8.模块 modules
模块和组件差不多,只不过是全局存活的东西。
来源 interfaces
base已实现抽象方法。
继承base即可
官方内置了一些模块
api_docs_gen.go
APIDocsGen是一个pitaya模块,它为pitaya服务器生成api文档
binary.go
Binary是一个pitaya模块,它将二进制文件作为子进程启动,并通过管道传输其标准输出
binding_storage.go
ETCDBindingStorage模块,使用etcd保存每个用户绑定到的前端服务器
unique_session.go
UniqueSession模块监视使用相同UID的会话并将其踢出
和组件使用一样:绑定一下就行了
9.定时 timer
具体用法可参考:
但通常通过app下的timer.go使用
例如:
每分钟回调
10.错误 errors
//ErrUnknownCode是表示未知错误的字符串代码
//当处理程序未发送错误代码时,将使用此选项
const ErrUnknownCode=“PIT-000”
//ErrInternalCode是表示内部Pitaya错误的字符串代码
常量ErrInternalCode=“PIT-500”
//ErrNotFoundCode是表示未找到相关错误的字符串代码
const ErrNotFoundCode=“PIT-404”
//ErrBadRequestCode是表示错误请求相关错误的字符串代码
const ErrBadRequestCode=“PIT-400”
//ErrClientClosedRequest是表示客户端关闭请求错误的字符串代码
const ErrClientClosedRequest=“PIT-499”
通常用法,还是通过火龙果:
11.日志 logger
来源interfaces.go
常用方法:
log是全局参数
直接调用日志就行
12.集群 cluster
Features — Pitaya documentation
集群内置了两种方法grpc和nats。
grpc我这边没测试
nats是火龙果默认的集群方式
常见用法:
注册远程组件
进行rpc调用即可
可以参考集群测试
go-pitaya学习笔记(11) - 测试集群rpc_冰纳-CSDN博客
13.路由 route
转发消息
常见用法:
通过火龙果实例添加路由方法
官方demo中的cluster展示。
前端绑定room路由,请求会转移到后台room服务器
14.管道 pipeline
常见用法:
可以查看官方的demo pipeline
或者
go-pitaya学习笔记(8)-pipeline demo分析_冰纳-CSDN博客
在构建前添加通过火龙果添加管道
15.工具 util
火龙果内置的一些工具
包括文件是否存在,从请求中获得上下文之类的
16.追踪 tracing
分布式的追踪封装
开放分布式追踪(OpenTracing)入门与 Jaeger 实现-阿里云开发者社区
17.指标 metrics
内置了普罗米修斯和statsd
用法:
看一下之前的笔记
go-pitaya学习笔记(6)-cluster-protobuf demo分析_冰纳-CSDN博客
18.可靠的rpc支持 worker
worker
常见用法:
看一下之前的笔记
go-pitaya学习笔记(10)-worker demo分析_冰纳-CSDN博客
火龙果实例
内置了一堆处理方法,实际上我们用这里的东西特别多。
被开发者集成起来统一调用
1. builder
用来建筑火龙果实例
参数也是可以直接赋值的
也可以调用方法给构建参数
2.group
组
3.组件管理
4.干掉用户
5.模块管理
6.推送
7. 报告
8.rpc
9.timer
笔记