Dapr是如何简化微服务的开发和部署

基于微服务设计模式的现代应用程序面临着一系列挑战。微服务需要有一个强大的服务发现机制来实现动态连接。它们需要松散耦合,实现自主性和独立缩放。微服务需要支持多种语言,其中每个服务都是以最合适的语言、框架和运行时实现的。尽管采用容器和编排引擎(如 Kubernetes)可以应对打包、部署和扩展方面的挑战,但开发过程仍然很复杂。微软发布的分布式应用程序运行时 (Dapr) 开发现代应用程序的新方法来应对微服务开发的复杂性,这是微服务和云原生应用程序的一个平台和语言无关的运行时。

Dapr 的体系结构对于开发人员来说非常迷人,尤其是那些熟悉 20 世纪 90 年代 COM 或 EJB 的开发人员。与 COM/DCOM 和 EJB 为在 Windows 和 Java 上运行的分布式应用程序提供管道的方式类似,Dapr 基于容器化、云原生、微服务的应用程序所需的繁重工作。Dapr 有三大元素:运行时、 服务构建块和SDK

Dapr 运行时可以安装在任何可以运行 Docker 的计算机上。核心运行时是容器化的,可以部署在运行 Linux、Windows 或 Mac 操作系统的 x86/ARM 处理器上。它也可以安装在多节点 Kubernetes 群集中,也可以安装在资源受限的边缘设备(如树莓派)上。唯一的要求是主机环境 能够运行 Docker。

Dapr 使得使用在同一主机、内部或外部数据服务以及基于 pub/sub 模式的消息传递服务中运行的其他微服务变得非常简单。由于 Dapr 使用Sidecar 模式,因此可以轻松地集成在 Kubernetes 上运行的微服务,以利用构建基块。Dapr 构建基块充当配置为组件的内部/外部服务提供商和内部使用者之间的中间层。由于每个服务的使用者始终与一个众所周知的终结点通信,Dapr 只需将调用重定向到当前配置的组件。

上图是状态构建基块组件封装构建基块 API 的实现。状态构建基块的实现可能包括 Redis、etcd、MongoDB、Amazon DynamoDB 和 Azure CosmosDB。许多组件是可插拔的,因此一个实现可以很容易地换换到另一个实现。

为了使不同语言使用 Dapr 更自然,它还包括用于 Go、Java、JavaScript、.NET 和 Python 的语言特定 SDK。这些 SDK 通过语言封装的 API 而不是调用标准 http/gRPC API 公开 Dapr 构建基块中的功能,例如保存状态、发布事件或创建Actor。这使开发人员能够用自己选择的语言编写无状态和有状态函数和Actor的组合。

Dapr 将一些经过验证的技术和最佳实践带到微服务开发中。它通过即插即用模型将90 年代的数据驱动的客户端/服务器应用程序的操作,用于 现代云原生应用程序所需的最常见服务。

相关文章:

  • Dapr 已在塔架就位 将发射新一代微服务

  • 牛年 dotnet云原生技术趋势

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

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

相关文章

table 内 下拉列表 被遮挡_一个简洁、有趣的无限下拉方案

本文主旨长列表渲染、无限下拉也算是前端开发老生常谈的问题之一了,本文将介绍一种简洁、巧妙、高效的方式来实现。话不多说,看下图,也许你可以发现什么?无限下拉示意图不知你是否从上面这张图中注意到了什么,比如只是…

天龙八部服务器维护后提BB,天龙八部:宠物比号值钱?玩家哭诉附体BB半年也卖不出去...

说到天龙八部的附体宝宝,相信许多爱美的玩家基本上都人手一只。附体后的增益多不多无所谓,首先附体后身上有龙、凤凰、蝴蝶等之类的特效,让许多玩家觉得游戏中角色颜值增添不少,当然一只属性不错的附体珍兽,也能够给游…

asp.net 动态添加JavaScript方法

//在页面顶部添加脚本 if (!Page.ClientScript.IsClientScriptBlockRegistered("myscriptKey"))//判断是否已经存在相同//键值的ScriptBlock { string myScript "function AlertHello(){alert(hello xuanhun!!);}";//脚本内容 …

写了 15 年代码,总结出提升 10 倍效率的三件事

译者:roy 【译者注】本文作者 Matt Watson 已经写了超过 15 年的代码,也由此总结出了提升 10 倍效率的三件事。Matt 表示,一个 10 倍效率的开发人员很快就知道了他们需要做什么,要问什么问题,什么时候不问问题&#xf…

python怎么样另存为_python要怎么保存python生成式

本篇将介绍Python的列表生成式,更多内容请参考:Python列表生成式列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式。举个例子,要生成list[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]可以用list(range(1, 11))>>>…

反锐化掩膜_光电图像处理 | 空域锐化滤波

锐化滤波Sharpen filterclc;close all;I imread(图片11.jpg);set(figure(1), name,不同梯度合成效果, numbertitle, off);subplot(221),imshow(I);title(原图);I rgb2gray(I);%% Roberts operatorH1x [0 0 0;0 -1 0;0 0 1]; H1y [0 0 0;0 0 -1;0 1 0];J1x imfilter(I,H1x)…

服务器不知道怎么回事安卓系统很卡,为什么安卓系统很容易变卡?该怎么解决?看完长知识了...

手机是我们现代生活的必备之物,什么都可以没有到就是不能没有手机,如今市面上的手机的手机不是安卓系统就是ios系统,安卓系统的手机虽然便宜但是有一个诟病,那就是安卓的手机会越用越卡,不管你手机配置是多么的高&…

EntityFramework Core自动返回SQL语句

【导读】给各位拜年了,开年第一篇,后续我们介绍EF Core 5.0相关新特性自动返回SQL语句当执行LINQ查询时,EF Core 5.0提供了ToQueryString扩展方法返回生成的SQL语句比如,执行如下LINQ查询var name "jeffcky"; var user…

生成jar文件的方法

生成jar文件的方法。菜单:Wizards--Archive builder如果需要重新生成jar文件,则需要在菜单中选择 project--rebuilder在jbuilder中加入其它jar包的方法。1>菜单:tools--Enterprise Setup--Datebase Driver--Add--new--选择jar所在的路径--…

怎么用ai做出适量插画_怎么用最简单的方法,做出最炫酷的数据可视化图表?...

如果要问数据怎样做才能显得最装逼,那么答案一定只有一个:“数据可视化”!看上去也很炫酷对不对,其实上面的可视化图表其实并不复杂,很多人推荐的Python、R语言、Tableau等专业数据分析工具几乎都能很轻松的实现。但是…

stm32烧不进去程序_STM32的FLASH和SRAM的使用情况分析

点击上方蓝字关注我哦~01前言STM32片上自带FLASH和SRAM,简单讲FLASH用来存储程序的,SRAM是用来存储运行程序中的中间变量。本文详细分析下如何查看程序中FLASH和SRAM的使用情况。本文开发工具: keil5芯片: STM32F105VCT602FLASH和SRAM介绍FLA…

每一个人都应该学习电脑编程,因为它会教你如何思考

扎克伯格11岁开始学习编程,创办Facebook;比尔盖茨13岁学习编程,创办微软……乔布斯说:“每一个人都应该学习电脑编程,因为它会教你如何思考。" 现在在北京上海,顶级的IT工程师,年薪至少是百…

GitHub Actions 支持 skip ci 了

GitHub Actions 支持 "skip ci" 了IntroGitHub Actions 作为 GitHub 官方的 CI 支持,很多开源项目已经在使用 Actions 来做项目的 CI 了,但是一直以来有一个痛点,就是不支持跳过 CI,其他的 CI 大多都可以通过在 commit …

化解致癌食品有办法

一:化解致癌食品有办法 盐腌菜在加工前期没有处理过,含有一定量的亚硝基化合物,一般人们常用水煮、日照、热水洗涤等方法可达消除致癌的目的。其中上佳的方法是用水煮,但对腌菜的味道有所影响。如腌制前适量加入维生素C&#xf…

layui上传报错会有哪些原因_一到冬天,为什么会比别人更怕冷?有哪些原因?...

冬天已经正式来到,气温也是越来越低了,早晚的时候就能明显的感觉到寒风凛凛。有很多人到了冬天以后就很怕冷,风一吹过来,就觉得浑身都冰冷。明明已经穿了很多的衣服,还是会觉得很冷,只有在空调、暖气底下&a…

干货|MIT线性代数课程精细笔记[第一课]

1知识概要本节开始,我们一起来学习线性代数的有关知识,首节我们从解方程谈起,学习线性代数的应用之一就是求解复杂方程问题,本节核心之一即为从行图像与列图像的角度解方程。 2方程组的几何解释基础 2.1 二维的行图像 我们首先通…

element 方法返回的boolean被当成字符串了_13个需要知道的方法:使用 JavaScript 来操作 DOM...

作者:Milos Protic 译者:前端小智来源:impressivewebs.DOM 或文档对象模型是 web 页面上所有对象的根。它表示文档的结构,并将页面连接到编程语言。它的结构是一个逻辑树。每个分支结束于一个节点,每个节点包含子节点、…

很遗憾,总对工作挑挑拣拣的家伙,一般结局都不会太好

这是头哥侃码的第233篇原创在过去的五年里,我最怕遇到两件事。一是失眠,一个人半夜醒来,瞬间毫无困意,只能瞪大眼睛望着天花板数羊,等待着黎明的到来。二是每到春节之前,在进行团队年度绩效评估和年终奖发放…

Strategy模式与Delegate委托

Strategy模式是对算法的封装。即使是一个计算行为,如果其实现有其多样性,为达到易扩展的目的,我们也有必要将其抽象出来,以接口的形式来定义。由于充分利用了面向 对象的多态性,在调用该行为时,其具体的实现…

pmos低电平驱动_MOS管驱动电路详解要点

时间:2009-07-06 8756次阅读【网友评论2条我要评论】收藏在使用MOS管设计开关电源或者马达驱动电路的时候,大部分人都会考虑MOS的导通电阻,最大电压等,最大电流等,也有很多人仅仅考虑这些因素。这样的电路也许是可以工…