开源了之前开发的一个Dapr的POC应用。
地址在:https://github.com/heavenwing/daprapps-poc
是以一个供应链的系统(的一部分业务)作为场景。POC场景很简单:
管理部分基础数据
实现简单的入库流程,包括申请-收货-入库
整个架构如下:
用到的技术栈:
Dapr(一共11项目,10个Dapr应用,1个桌面应用)
Java 项目(basicinfo,basicsetting,old)
.NET项目(其他的项目)
托管在AKS中,CI/CD使用Azure DevOps Service
SQL Server/Postgresql
portal项目是Server Blazor,并实现聚合网关模式
gateway项目基于Ocelot实现路由网关模式
以Dapr的方式来启动Mockoon-CLI来实现仅启动部分应用的联调
基于Logic Apps的运行时实现了一个工作流来驱动入库申请的审批流程:
申请单创建PubSub触发工作流
1.创建分公司审批待办
2.等待分公司审批完成
3.判断是否超过入库限制
如果是:
3.1.创建总公司审批待办
3.2.等待总公司审批完成
4.完成入库申请单
下图是在Logic Apps中设计的工作流
在AKS中的监控通过Dapr内置的观测能力发送到Azure Monitor,如下图
(图2)
用到Dapr组件配置为:
本地开发:pubsub.redis,state.redis
AKS环境:pubsub.azure.servicebus,state.azure.blobstorage
未来的计划:
会持续把Dapr的实践和技巧加到这个POC项目中
随着Dapr工作流构建块的发布,会替换工作流的实现
随着Dapr分布式事务的支持,会尝试实现分布式事务的场景
通过docker compose在本地方便的启动Dapr应用
通过VSCode的devcontainer技术来方便搭建开发环境