一个Dapr的POC应用

开源了之前开发的一个Dapr的POC应用。

地址在:https://github.com/heavenwing/daprapps-poc

是以一个供应链的系统(的一部分业务)作为场景。POC场景很简单:

  • 管理部分基础数据

  • 实现简单的入库流程,包括申请-收货-入库

整个架构如下:

68a6da194c6db9c627eac36ffeb4c8c3.png

用到的技术栈:

  • 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中设计的工作流

21a83dcc70f8e09d0b0fcad046f85179.png

  • 在AKS中的监控通过Dapr内置的观测能力发送到Azure Monitor,如下图

c77129b57a17379bf37b947deb1e2bb0.png

(图2)

用到Dapr组件配置为:

  • 本地开发:pubsub.redis,state.redis

  • AKS环境:pubsub.azure.servicebus,state.azure.blobstorage

未来的计划:

  • 会持续把Dapr的实践和技巧加到这个POC项目中

  • 随着Dapr工作流构建块的发布,会替换工作流的实现

  • 随着Dapr分布式事务的支持,会尝试实现分布式事务的场景

  • 通过docker compose在本地方便的启动Dapr应用

  • 通过VSCode的devcontainer技术来方便搭建开发环境

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/286004.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

hadoop-2.7.1+zookeeper-3.4.8+hbase-1.2.1+apache-hive-2.0.0完全分布式集群

一、环境准备 1.查看系统版本 cat /etc/issue CentOS release 6.8 (Final) 2.软件准备 软件自行官网下载,但自己要统一规划方便后面操作,本文软件源目录/usr/local/src 安装目录/usr/local 赋权限,以备后续步骤安装软件[安装包都在/usr/lo…

ArcGIS实验教程——实验二十九:ArcGIS制图掩膜工具案例详解

ArcGIS实验视频教程合集:《ArcGIS实验教程从入门到精通》(附配套实验数据)》 实验目录 1. ArcGIS掩膜概述2. 死胡同掩膜3. 要素轮廓线掩膜4. 交叉图层掩膜1. ArcGIS掩膜概述 掩膜是利用遮盖或隐藏要素的视觉处理技术来增强地图表现力的一种技术手段,掩膜实质是包含一些多边…

利用Android 8.0 ShortcutManager创建桌面快捷图标

创建方法: /**param context 当前contentparam targetClass 快捷图标打开的界面param backClass 打开后按返回键返回的界面param shortCutId shortCut 唯一idparam shortCutIcon 桌面上显示的图标param shortCutLabel 桌面图标下方显示的文字*/public static void A…

03 数据库查询、模型查询、多库查询《ThinkPHP6 入门到电商实战》

文章目录(更新中…) 01 thinkphp6的前期开发准备《ThinkPHP6 入门到电商实战》 02 控制器《ThinkPHP6 入门到电商实战》 03 数据库查询、模型查询、多库查询《ThinkPHP6 入门到电商实战》 04 tp6 的查数据《ThinkPHP6 入门到电商实战》 05 tp6 的数据添…

文本索引与检索

本质上,非常多实际须要解决的问题归根究竟都是搜索问题 - 在某个空间中寻找特定的目标。而, 文本检索又是当中最典型最基础的一种。文本检索之所以重要,也是由于非常多更复杂对象或者结构的检索能够转化为文本检索,或者參考利用文…

Public DNS (公共域名解析服务)

114DNS 服务IP:114.114.114.114, 114.114.115.115 拦截 钓鱼病毒木马网站:114.114.114.119, 114.114.115.119 拦截 色情网站:114.114.114.110, 114.114.115.110 DNSPod 服务IP:119.29.29.29 阿里DNS 服务IP:223.5.5.5,…

Android之BaseQuickAdapter(3.0.4版本)给子view添加点击事件(helper.addOnClickListener(view))的函数没了

1、问题 用BaseQuickAdapter给子view添加点击事件,以前都是在适配器里面这么写的helper.addOnClickListener(view),现在这个函数没了 2、解决办法 直接在适配器里面初始化调用 init {addChildClickViewIds(view)} 然后不要再给view在适配器里面setOnC…

使用开源工具 k8tz 优雅设置 Kubernetes Pod 时区

容器在主机的内核上运行,并获得时钟,但时区不是来自内核,而是来自用户空间。在大多数情况下,默认使用协调世界时 (UTC)。时区的不一致,会带来很多困扰。即使代码与时区无关,但容器日志与系统日志时间相关联…

Android WebView 在内部打开链接,捕获错误

webView.setWebViewClient(new WebViewClient() {Overridepublic boolean shouldOverrideUrlLoading(WebView view, String url) {view.loadUrl(url);return true;//ture为在webview中打开}});webView.setWebChromeClient(new WebChromeClient() {Overridepublic void onReceiv…

04 tp6 的查数据 find、select、findOrEmpty、findOrFail、toArray、selectOrFail、value、column《ThinkPHP6 入门到电商实战》

文章目录(更新中…) 01 thinkphp6的前期开发准备《ThinkPHP6 入门到电商实战》 02 控制器《ThinkPHP6 入门到电商实战》 03 数据库查询、模型查询、多库查询《ThinkPHP6 入门到电商实战》 04 tp6 的查数据《ThinkPHP6 入门到电商实战》 05 tp6 的数据添…

学生信息管理系统小结

ASP.NETAccess 一、登入部分 主界面 Fm new 主界面(); string s1 "ProviderMicrosoft.Jet.OLEDB.4.0;Data Sourcestudent.mdb"; string s2 "select*from 登录信息表 where 用户名" this.ttbName.Text " and 密码 "…

ArcGIS实验教程——实验三十:地图注记与标注(标注转注记)用法案例详解

ArcGIS实验视频教程合集:《ArcGIS实验教程从入门到精通》(附配套实验数据)》 实验目录 一、实验描述二、地图标注1. 标注工具2. 标注属性默认设置3. 标注分类4. 多属性字段标注5. 标注转换6. 显示地图提示三、地图文档注记1. 注记组2. 创建地图文档注记3. 编辑地图文档注记一…

Android之实现多桌面图标app入口进入不同的页面,像2个独立运行的app一样,互不干扰。

1、需求 Android实现2个图标app入口进入不同的页面,一个图标点击进去主app页面,一个图标点击直接进入app页面的里面一个子页面,两个图标功能点击效果独立,不能乱跳,副桌面图标然后返回也是直接返回,不能先返回到本地,就是感觉像2个独立运行的app一样,互不干扰。 问题:…

启动obiee

启动obiee:1.启动数据库第一步:打开Oracle监听$ lsnrctl start第二步:使用sysdab角色登录sqlplussqlplus / as sysdba第三步:启动数据库SQL> startup 2.启动WebLogic:nohup /home/oracle/obiee11g/user_projects/domains/bifou…

ASP.NET中IsPostBack详解

1、IsPostBack介绍Page.IsPostBack是一个标志:当前请求是否第一次打开。 调用方法为:Page.IsPostBack或者IsPostBack或者this.IsPostBack或者this.Page.IsPostBack,它们都等价。  1)当通过IE的地址栏等方式打开一个URL时是第一次打开, 当通…

05 tp6 的数据添加 助手函数、 save、insert、strict、replace、insertGetId、insertAll《ThinkPHP6 入门到电商实战》

文章目录(更新中…) 01 thinkphp6的前期开发准备《ThinkPHP6 入门到电商实战》 02 控制器《ThinkPHP6 入门到电商实战》 03 数据库查询、模型查询、多库查询《ThinkPHP6 入门到电商实战》 04 tp6 的查数据《ThinkPHP6 入门到电商实战》 05 tp6 的数据添…

利用bat修复office文件图标

如果电脑上安装了office,再安装wps,卸载wps后office文件图标会丢失。利用下边的代码,另存为bat文件,运行后可以快速修复图标问题。 rem 修复office文件默认图标.bat:: office图标文件路径,请根据自己电脑上的安装目录设…

VS2019如何创建C++项目?没有找到空项目(C++)完全解决方案

在使用Visual Studio 2019创建C++空项目时,没有空白项目可选,如下图所示,原因是在安装VS2019时没有选择C++对应的模块。本文讲解如何使用VS2019创建C++空项目,并使用C语言输出Hello World。 运行Visual Studio Installer,点击【修改】。 勾选【使用C++的桌面开发】,点击…

CentOS7.2 忘记root密码解决

CentOS 7 root密码的重置方式和CentOS 6完全不一样,以进入单用户模式修改root密码为例。 1.重启开机按esc,在第一行按e,进行编辑 2.编辑修改两处:ro改为rw,在LANGen_US.UFT-8后面添加init/bin/sh 3.按CtrlX重启,并修改…

Android之解决NestedScrollView嵌套RecyclerView部分手机返回到这个页面Recyclerview顶部,而不是页面NestedScrollView顶部

1、问题 NestedScrollView嵌套Recyclerview部分手机返回到这个页面Recyclerview顶部,而不是页面NestedScrollView顶部 部分布局大致如下 <androidx.core.widget.NestedScrollViewandroid:layout_width="match_parent"android:layout_height="match_parent…