go-pitaya学习笔记(10)-worker demo分析
学习笔记: 我家别墅靠大海/pitaya-learn
尝试集成功能:我家别墅靠大海/pitaya-game
如果你正在看此笔记,请你左边放笔记,右边放chatdemo的代码!!
我是按代码的顺序记的笔记
复制demo worker过来
这里的worker 指的是
谷歌翻译
看一下源码
main.go
看起来我们还要搞个redis。
直接搞个编译完的zip就行。。
redis:https://github.com/tporadowski/redis/releases
就用他默认配置了
测一下,好像可以
worker大概有这么多配置
文档:Configuration — Pitaya documentation
pitaya.worker.redis.url | localhost:6379 | string | Redis url 火龙果工人用于注册工作 |
---|---|---|---|
pitaya.worker.redis.pool | 10 | string | 与 Redis 保持的连接数 |
pitaya.worker.redis.password | “” | string | Redis password to connect to pitaya workers redis |
pitaya.worker.concurrency | 1 | int | Number of workers to execute job |
pitaya.worker.namespace | “” | string | Worker namespace, can be used to differ stacks in a blue-green deployment |
pitaya.worker.retry.enabled | true | bool | If true, retry job if errored for max times |
pitaya.worker.retry.max | 5 | int | Max number of job retries |
pitaya.worker.retry.exponential | 2 | int | Retry job after backoff of nRetry**2 |
pitaya.worker.retry.minDelay | 0 | int | Min time to wait on backoff to retry job |
pitaya.worker.retry.maxDelay | 10 | int | Max time to wait on backoff to retry job |
pitaya.worker.retry.maxRandom | 10 | int | Random time to wait during backoff |
demo依旧是集群方式进行
room 前端服务器
metagame 后端服务器
worker 可靠的rpc
protoc请求依旧很麻烦,我们给前端服务器改成字节切片
room.go
main.go
新建个客户端文件测试
mydemo/demo3/client.go
package mainimport ("fmt""time""github.com/sirupsen/logrus""github.com/topfreegames/pitaya/v2/client"pb "github.com/topfreegames/pitaya/v2/examples/demo/worker/protos""github.com/topfreegames/pitaya/v2/serialize/protobuf"
)func main() {c := client.New(logrus.InfoLevel, 100*time.Millisecond)err := c.ConnectTo(":3250")if err != nil {fmt.Println(" conn server error :", err)return}go func(c client.Client) {for {select {case data := <-c.MsgChannel():if data.Err {fmt.Println("error :", string(data.Data))break}fmt.Printf("data: %#v\n", data)var res pb.Responseprotobuf.NewSerializer().Unmarshal(data.Data, res)fmt.Printf("res: %#v\n", res)}}}(*c)_, err = c.SendRequest("room.room.calllog", []byte(""))if err != nil {fmt.Println("send request error")return}select {}
}
分别启动三个服务器
PS D:\Work\pitaya-test-game\demo\worker> go run .\main.go -type room
PS D:\Work\pitaya-test-game\demo\worker> go run .\main.go -port 3251 -type metagame -frontend=false
PS D:\Work\pitaya-test-game\demo\worker> go run .\main.go -type worker -port 3252
测试
测试是过了的
看看代码,
worker.go
就这一个是陌生的东西,可靠的rpc请求,也是我们这个worker demo主要想说的东西
进去看一下,一共有4个不同的rpc请求方法,前两种就是不可靠的。
可靠和不可靠上面记过了
请求来到了metagame这边。
单纯的打印些东西
看下worker
他这边启动了,worker并且注册了rpcjob
rpcJob要实现rpc.job的接口 ,也就是需要实现个rpc分发器
demo看的差不多了,但是感觉自己对于集群还是有点问题。
再测试一下集群
go-pitaya学习笔记(11) - 测试集群_冰纳-CSDN博客
go-pitaya学习笔记(10)-worker demo分析相关推荐
- go-pitaya学习笔记(9)-rate_limiting demo分析
学习笔记: 我家别墅靠大海/pitaya-learn 尝试集成功能:我家别墅靠大海/pitaya-game 如果你正在看此笔记,请你左边放笔记,右边放chatdemo的代码!! 我是按代码的顺序记的笔 ...
- go-pitaya学习笔记(6)-cluster-protobuf demo分析
学习笔记: 我家别墅靠大海/pitaya-learn 尝试集成功能:我家别墅靠大海/pitaya-game 如果你正在看此笔记,请你左边放笔记,右边放chatdemo的代码!! 我是按代码的顺序记的笔 ...
- go-pitaya学习笔记(7)-custom_metrics demo分析
学习笔记: 我家别墅靠大海/pitaya-learn 尝试集成功能:我家别墅靠大海/pitaya-game 如果你正在看此笔记,请你左边放笔记,右边放chatdemo的代码!! 我是按代码的顺序记的笔 ...
- motan学习笔记 三 motan Demo 分析
motan学习笔记 一 微博轻量级RPC框架Motan motan学习笔记 二 motan架构分析 motan学习笔记 三 motan Demo 分析 motan学习笔记 四 motan Demo 之 ...
- motan学习笔记 二 motan架构分析
motan学习笔记 一 微博轻量级RPC框架Motan motan学习笔记 二 motan架构分析 motan学习笔记 三 motan Demo 分析 motan学习笔记 四 motan Demo 之 ...
- Li‘s 影像组学视频学习笔记(10)-T检验+lasso+随机森林、Li‘s have a solution and plan.
本笔记来源于B站Up主: 有Li 的影像组学系列教学视频 本节(10)主要介绍: T检验+lasso+随机森林 李博士借用和女朋友一起吃饭这个实例来说明:爱情和机器学习一样,复杂深奥.难以揣测. im ...
- Hadoop学习笔记—10.Shuffle过程那点事儿
Hadoop学习笔记-10.Shuffle过程那点事儿 一.回顾Reduce阶段三大步骤 在第四篇博文<初识MapReduce>中,我们认识了MapReduce的八大步骤,其中在Reduc ...
- sheng的学习笔记-Vector源码分析
概述 Vector底层也是数组,跟ArrayList很像(先看下ArrayList,再看Vector会很轻松),ArrayList可参考下文,并且由于效率低,已经被淘汰了,大概瞅瞅得了 sheng的学 ...
- thinkphp学习笔记10—看不懂的路由规则
原文:thinkphp学习笔记10-看不懂的路由规则 路由这部分貌似在实际工作中没有怎么设计过,只是在用默认的设置,在手册里面看到部分,艰涩难懂. 1.路由定义 要使用路由功能需要支持PATH_INF ...
最新文章
- DbSetT().Where(e = true)之后再想Include怎么办?
- Scala基础教程(四):if语句、循环语句、while语句
- 产品经理的四个重要阶段
- oracle dg snapshot,Oracle Broker Snapshot Standby测试
- 未来客:人人都可以构建软件或系统
- matlab 拉普拉斯锐化函数_机器视觉 03.3 频域高通滤波(锐化)
- 如何:在 Windows 窗体 ListView 控件中启用平铺视图 【转载】
- 深度学习大厂前端项目开发全流程全流程
- Python用户画像词云图生成并集成到django网站
- 麒麟子出了一款免费3D角色虚拟摇杆控制器!这也太好用了
- 多次重复原生进入RN优化Catalyst Instance has already disappeared
- 不是抽象的, 并且未覆盖Handler中的抽象方法
- Greenplum 分布键 distribute hash分布和随机分布
- QQ群 该页面暂时无法显示
- 读书笔记:忍耐的艺术
- html导出excel表头多了一行空行,excel中有时候表格下面有很多空行,下拉条滚动一点就过了很多行,怎么取消掉多余的行啊?(excel表头每页都显示)...
- 串口发送数据,只接收到00的原因之一
- macos 旧版本 lightroom 找不到新镜头配置文件 新镜头配置导入lr/ps
- 关于华为设备ospf进程中RID重叠的问题
- 使用python预测基金_使用python先知3 1创建预测