上一篇大概的整理了一下在vm虚拟机下通过docker部署dapr应用,作服务之间调用的例子。
今天整理一下windows下dapr的非docker部署调试,毕竟大部分开发不需要花费太多时间做部署。
源代码还是来自上一篇的例子,代码就不再贴出来了。 exercisebook/Dapr/DaprDemo at main · liuzhixin405/exercisebook (github.com)
首先windows电脑下面需要安装dapr的sdk,官方文档跳转安装 Dapr CLI | Dapr 文档库
安装完docker后初始化一下dapr,最后通过dapr--version验证下安装是否成功和版本号。
看官方文档,往后的操作就是docker相关的,如果windows下不想装docker可以跳过,而且我的电脑有vm虚拟机,安装docker需要关闭hyper-x, 虚拟机和win下面安装cento或docker最头痛的是hyper-x不能共存,而且没必要都要装。
下面的教程跟docker和虚拟机无任何关。
继续翻看文档,在不使用diocker的情况下子托管模式运行dapr,
就是这个命令 dapr init --slim ,会初始化winows的dapr 运行时环境。
操作方式: 不使用 Docker 在自托管模式下运行 Dapr | Dapr 文档库
安装完后可以看到在本机的用户账号下生成的目录,打开components文件夹,会看到statestore.yaml文件,是不是有点熟悉,这就是状态管理和发布订阅默认的存储容器redis配置。
因为有了这个文件的配置,所以启动我们自己的服务前需要把我们的redis跑起来,如果有密码需要填上去。
下面调试我们的服务分两步走。
第一步启动两个服务
第二部当让又是熟悉的附加进程了。
首先分目标在项目文件夹下面执行这两个命令
dapr run --app-id getwf --app-port 5053 dotnet run
dapr run --app-id clientservice --app-port 5277 dotnet run
因为本地调试没有跟上一篇一样给指定--dapr-http-port的端口,而且在windows下面启动会需要launchSettings.json这个文件,所以端口是改文件配置好的http的端口。
如果不是指定launchSettings.json的端口,会有提示端口已指定该文件的http和https端口。
下面就是附加进程了,首先把代码打好断点,再把这两个进程加入到vs中,一下子不能同时添加两个进程,加完Server再加Client,没有先后顺序。
下面就来调试代码了,输入client请求的接口地址,client写了日志,server没有写,所以控制台只打印client输出的信息:
总结,dapr的调试确实非常简单,而且不需要一点复杂的调试环境,真的非常不错。学习成本不仅仅非常低,而且部署也不复杂。
下面是一个dapr服务日志发布订阅的例子
exercisebook/Dapr/DaprLogger at main · liuzhixin405/exercisebook (github.com)