使用arthas 观察 temporal worker grpc 方法调用
所属分类 temporal
浏览量 773
watch io.temporal.api.workflowservice.v1.WorkflowServiceGrpc$WorkflowServiceBlockingStub *Task* '{method.name}' -x 1
内部类用 $
method.name 只输出方法名
ts=2022-04-01 19:33:46; [cost=23.83277ms] result=@ArrayList[
@String[respondWorkflowTaskCompleted],
]
ts=2022-04-01 19:33:46; [cost=22.053461ms] result=@ArrayList[
@String[respondActivityTaskCompleted],
]
ts=2022-04-01 19:33:46; [cost=21.748461ms] result=@ArrayList[
@String[respondWorkflowTaskCompleted],
]
ts=2022-04-01 19:33:46; [cost=21.623007ms] result=@ArrayList[
@String[respondActivityTaskCompleted],
]
ts=2022-04-01 19:33:46; [cost=21.446144ms] result=@ArrayList[
@String[respondWorkflowTaskCompleted],
ts=2022-04-01 19:34:05; [cost=25.288608ms] result=@ArrayList[
@String[respondWorkflowTaskCompleted],
]
ts=2022-04-01 19:34:46; [cost=60028.259497ms] result=@ArrayList[
@String[pollWorkflowTaskQueue],
]
ts=2022-04-01 19:34:46; [cost=60021.271157ms] result=@ArrayList[
@String[pollActivityTaskQueue],
]
ts=2022-04-01 19:34:54; [cost=59085.731906ms] result=@ArrayList[
@String[pollActivityTaskQueue],
]
ts=2022-04-01 19:34:55; [cost=60106.089911ms] result=@ArrayList[
@String[pollWorkflowTaskQueue],
]
ts=2022-04-01 19:35:04; [cost=59069.627846ms] result=@ArrayList[
@String[pollWorkflowTaskQueue],
worker 通过 grpc调用 pollActivityTaskQueue pollWorkflowTaskQueue 长轮询获取任务
执行完任务 , 通过grpc调用 respondActivityTaskCompleted respondWorkflowTaskCompleted 设置任务已完成
worker 和 temporal 来回都是通过 grpc 交互
一次工作流会有很多次 事件 ,这些都是 通过grpc来完成
因此一次工作流会涉及 多次 grpc调用 和 数据库读写
从 任务队列 分区 长轮询 事件 定时器 这些特性来看 ,temporal 的一些机制 跟 kafka有点像
工作流客户端
watch io.temporal.api.workflowservice.v1.WorkflowServiceGrpc$WorkflowServiceBlockingStub * '{method.name}' -x 1
去掉 init 和 build 方法
调用以下 grpc 接口
startWorkflowExecution
getWorkflowExecutionHistory
例子代码
EchoWorker 直接main 启动
EchoClientApp 直接main 启动 , 使用netty 暴露 http 接口用于提交工作流
http://127.0.0.1:8135/submitWorkflow?rt=
rt 用于模拟任务处理耗时
http://127.0.0.1:8135/submitWorkflow?rt=1000
https://gitee.com/dyyx/hellocode/tree/master/demo/temporal/sdkdemo/src/main/java/com/dyyx/temporal/demo/echo
arthas使用
arthas watch 使用
上一篇
下一篇
temporal学习笔记
Temporal Server architecture
temporal 监控指标
temporal local activity vs activity
temporal 一些关键概念
CompletableFuture 实例