以 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 来指定 dapr 的 http 和 grpc 通讯端口即可:

还未深入了解源代码,猜测 java sdk 会有一个确定 dapr runtime 通信端口的流程,其中 DAPR_HTTP_PORT DAPR_GRPC_PORT 两个环境变量会被用到。
IDE 调试 DemoService
启动 daprd
首先命令行启动 daprd 预先注册 DemoService 的 app 端口:
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
本文详细介绍了如何使用Dapr Java SDK编译并运行示例项目,包括编译jar包、命令行启动DemoService、IDE调试InvokeClient及DemoService等步骤。深入解析了daprd进程的启动参数及其与应用的交互方式。
2809

被折叠的 条评论
为什么被折叠?



