单体应用 适合采用 dapr 构建吗?
缘起今天在微信群里有同学问 ”纯.net 项目,有必要上dapr吗?”

当时不假思索的说不是微服务没必要,其他群友也说没必要。下午细想了一下,觉得这个和微服务没有关系,如果我的应用是个单体架构(将所有功能都部署在一个web容器中运行的系统就叫做巨石型应用),但是它却用到了分布式中间件,比如缓存、消息队列,Actor模型呢,这些分布式中间件的标准化API 正是Dapr的价值所在。
从前两天写的文章 为什么 Dapr 如此令人兴奋 第二点,Dapr利用Sidecar的模式,把代码中的一些横切关注点需求(Cross-cutting)分离和抽象出来,从而达到运行环境的独立和对外部依赖(包括服务之间)的独立. 横切关注点需求是无论单体还是微服务都需要处理的问题。

总之,Dapr 解决了分布式中间件的依赖问题,上层所有的语言和下层所有的基础设施,通过一层层统一的接口进行抽象。不管用 Redis Stream 还是 Rabbit MQ,对上层业务是无感的,它会给上层业务一个统一抽象的 API ,而且是 HTTP 或者 gRPC 这样的一个企业的 API 。开发人员不再关心底下到底是什么,进一步地让开发人员和下面进行解耦。
单体应用 适合采用 dapr 构建吗?的更多相关文章
- 通过Dapr实现一个简单的基于.net的微服务电商系统(十三)——istio+dapr构建多运行时服务网格之生产环境部署
之前所有的演示都是在docker for windows上进行部署的,没有真正模拟生产环境,今天我们模拟真实环境在公有云上用linux操作如何实现istio+dapr+电商demo的部署. 目录:一. ...
- NodeJS 基于 Dapr 构建云原生微服务应用,从 0 到 1 快速上手指南
Dapr 是一个可移植的.事件驱动的运行时,它使任何开发人员能够轻松构建出弹性的.无状态和有状态的应用程序,并可运行在云平台或边缘计算中,它同时也支持多种编程语言和开发框架.Dapr 确保开发人员专注 ...
- 通过Dapr实现一个简单的基于.net的微服务电商系统(十二)——istio+dapr构建多运行时服务网格
多运行时是一个非常新的概念.在 2020 年,Bilgin Ibryam 提出了 Multi-Runtime(多运行时)的理念,对基于 Sidecar 模式的各种产品形态进行了实践总结和理论升华.那到 ...
- 采用ftpServer构建嵌入式ftp服务器时设置pass功能
讲ftpserver嵌入式ftp服务器的文章很多,但是都没有介绍pass功能设置的. apach上pass部分也是针对的ftpd服务器的xml配置,关于嵌入式ftp服务器设置pass功能的部分几乎没有 ...
- 技术分享:Dapr,让开发人员更轻松地构建微服务应用
最近一直在学习微服务相关的技术.微服务架构已成为构建云原生应用程序的标准,并且可以预见,到2022年,将有90%的新应用程序采用微服务架构.微服务架构提供了令人信服的好处,包括可伸缩性,松散的服务耦合 ...
- 敢为人先,从阿里巴巴云原生团队实践Dapr案例,看分布式应用运行时前景
背景 Dapr是一个由微软主导的云原生开源项目,国内云计算巨头阿里云也积极参与其中,2019年10月首次发布,到今年2月正式发布V1.0版本.在不到一年半的时间内,github star数达到了1.2 ...
- 乘风破浪,.Net Core遇见Dapr,为云原生而生的分布式应用运行时
Dapr是一个由微软主导的云原生开源项目,国内云计算巨头阿里云也积极参与其中,2019年10月首次发布,到今年2月正式发布V1.0版本.在不到一年半的时间内,github star数达到了1.2万,超 ...
- 手把手教你学Dapr - 6. 发布订阅
上一篇:手把手教你学Dapr - 5. 状态管理 介绍 发布/订阅模式允许微服务使用消息相互通信.生产者或发布者在不知道哪个应用程序将接收它们的情况下向主题发送消息.这涉及将它们写入输入通道.同样,消 ...
- Dapr 不是服务网格,只是我长的和他很像
概述 我们快速看一遍官方文档:https://docs.dapr.io/concepts/service-mesh/#how-dapr-and-service-meshes-compare ,看看 D ...
随机推荐
- 移动端常用单位——rem
移动端常用单位: ①px:像素大小,固定值 ②%:百分比 ③em(不常用,但是在首行缩进时可以使用):相对自身的font大小(当自身的字体大小也是em做单位时,才会以父元素的字体大小为基准单位) ④r ...
- Seq2Seq sequence-to-sequence模型 简介
Sequence-to-sequence (seq2seq) 模型. 突破了传统的固定大小输入问题框架 开创了将DNN运用于翻译.聊天(问答)这类序列型任务的先河 并且在各主流语言之间的相互翻译,和语 ...
- GUI容器之布局管理器
布局管理器 布局管理器:frame.setLayout(); 默认值为new flowLayout() 流式布局 frame.setLayout(new FlowLayout(FlowLayout.R ...
- 【CSS】计数器
抄自B站Up主CodingStartup起码课 <!DOCTYPE html> <html lang="en"> <head> <meta ...
- Python之struct模块
面对网络协议,在组包拆包时,python提供了struct模块,它可以帮助我们在python值和C语言的结构体之间相互转换,下面一起来了解struct的具体用法. 假设,我们的网络协议为消息id(un ...
- springMVC学习总结(三) --springMVC重定向
根据springMVC学习总结(一) --springMVC搭建搭建项目 在com.myl.controller包下创建一个java类WebController. 在jsp子文件夹下创建一个视图文件i ...
- hash类型数据的操作指令
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
- openswan专栏序言
openswan专栏序言 "一杯茶,一包烟,一个bug解一天!!!". 2020年春季,正值新冠病毒在全球肆虐之际,美国的疫情已经相当的严峻,每天仍以3万速度狂奔.而国内的疫情 ...
- docker镜像与容器的导出导入
导入导出涉及的命令有save.load.export.import # 1) docker save 导出镜像到文件 docker save -o nginx.tar nginx:latest # 2 ...
- jQuery判断多种数据类型
1.判断是否为数组类型 var obj=[0]; alert((typeof obj=='object')&&obj.constructor==Array) 2. 判断是否为字符串 ...