IDE 调试 Dapr java sdk DemoService

以 Dapr Java SDK demo 为例。

编译 jar 包

cd $JAVA_SDK_DIRECTORY
mvn package

⚠️编译过程会从外网拉去二进制文件,随时都可能需要梯子

命令行启动 DemoService

然后通过命令行启动 demoservice:

dapr run --app-id invokedemo --app-port 3000 --port 3005 -- java -jar examples/target/dapr-java-sdk-examples-exec.jar io.dapr.examples.invoke.http.DemoService -p 3000

通过 ps aux | grep daprd 可以发现 dapr run 的时候,会启动一个 daprd 后台进程,进程如下:

daprd --app-id invokedemo --dapr-http-port 3005 --dapr-grpc-port 51793 --log-level info --max-concurrency -1 --protocol http --metrics-port 51794 --app-port 3000 --placement-address localhost:50005

daprd 进程注册了 app 端口 3000,以及 dapr 的通讯端口,http=3005, grpc=51793

IDE debug InvokeClient

在 IDE 里面,调试 sdk 自带的 invokeclient,编辑配置设定环境变量 DAPR_HTTP_PORT=3005;DAPR_GRPC_PORT=51793 来指定 daprhttpgrpc 通讯端口即可:

IDE 调试 Dapr java sdk DemoService_第1张图片
还未深入了解源代码,猜测 java sdk 会有一个确定 dapr runtime 通信端口的流程,其中 DAPR_HTTP_PORT DAPR_GRPC_PORT 两个环境变量会被用到。

IDE 调试 DemoService

参考intellij-debugging-daprd。

启动 daprd

首先命令行启动 daprd 预先注册 DemoServiceapp 端口:

daprd -app-id invokedemo -app-port 3000 -dapr-http-port 3005 -dapr-grpc-port 52000 -placement-address localhost:50005

IDE 运行 InvokeClient

编辑 configuration 设置 dapr runtime 的通信端口,添加环境变量:DAPR_HTTP_PORT=3005;DAPR_GRPC_PORT=52000,注意环境变量的值需要和 daprd 启动 invokedemo 指定的 -dapr-http-port-dapr-grpc-port 保持一致,否则 InvokeClient 启动时会报连接不上的错误。

命令行运行 InvokeClient

cd $JAVA_SDK_DIRECTORY
mvn package
DAPR_HTTP_PORT=3005;DAPR_GRPC_PORT=52000 java -jar examples/target/dapr-java-sdk-examples-exec.jar io.dapr.examples.invoke.http.InvokeClient 'message one' 'message two'

得到如下输出:

2020-06-01 16:41:40.437
2020-06-01 16:41:40.453
Done

你可能感兴趣的:(IDE 调试 Dapr java sdk DemoService)