daprv1.9.0版本已发布

dotNET跨平台 dotNET跨平台     2022-12-04     387

关键词:

Dapr是一套开源、可移植的事件驱动型运行时,允许开发人员轻松立足云端与边缘位置运行弹性、微服务、无状态以及有状态等应用程序类型。Dapr能够确保开发人员专注于编写业务逻辑,而不必分神于解决分布式系统难题,由此显著提高生产力并缩短开发时长。Dapr 是用于构建云原生应用程序的开发人员框架,可以更轻松帮助开发人员在 Kubernetes 上构建运行多个微服务,并与外部状态存储/数据库、机密存储、发布/订阅代理以及其他云服务和自托管解决方案进行交互。

2022年10月13日正式发布了1.9版本,Dapr v1.9.0 版本提供了几项新功能,包括可插入组件、弹性指标和应用运行状况检查,以及核心运行时和组件中的许多修复。

  • 详细了解Dapr[1]

  • 阅读 Dapr 1.9.0 的发行说明[2]

亮点

可插拔组件

我们现在可以创建称为“可插拔组件”[3]的私有组件。只需使用任何支持gRPC 的语言编写一个带有 gRPC 服务的组件,将二进制文件放入文件系统中,即可开始使用。在Sample 仓库里提供了一个 .NET的模板例子[4]。

可观察性:Open Telemetry(OTEL) 协议支持
OpenTelemetry(OTEL) 将OpenCensus、Zipkin 和OpenTracing等项目组合到标准 API 和规范集中,用于跟踪和指标。在1.9 版本中,Dapr 包括了 对OpenTelemetry的支持[5]。
可观察性:弹性能力指标

已添加用于弹性能力[6]的指标,能够跟踪以下各项的数量:

  • 已加载弹性策略

  • 执行弹性策略的次数

可靠性:应用程序运行状况检查

应用运行状况检查[7]是一项新功能,允许探测应用程序的运行状况并对状态更改做出反应。启用应用程序运行状况检查后,Dapr 运行时将通过 HTTP 或 gRPC 调用定期轮询应用程序。当 Dapr 检测到应用的运行状况出现故障时,它会代表应用程序停止接受新的请求。

可靠性:默认弹性策略

借助弹性策略,我们现在可以设置默认策略[8],这些策略的范围可能很广。这是通过应用于给定策略的保留关键字来完成的。有 3 种默认策略类型:

    • DefaultRetryPolicy

    • DefaultTimeoutPolicy

    • DefaultCircuitBreakerPolicy

如果定义了这些策略,将它们用于对服务、应用程序或组件的每个操作。还可以通过对特定目标使用其他关键字来修改它们以使其更具体。

服务调用:应用中间件

现在,在进行服务到服务调用时,可以使用任何中间件组件。例如,用于零信任环境中的令牌验证或应用 OAuth 策略。服务到服务调用中间件组件[9]适用于从 Dapr sidecar 到接收应用程序的所有传出调用。

发布/订阅:命名空间使用者组

将 Dapr 应用程序部署到所有共享相同app id的不同命名空间,并将所有主题订阅的范围限定在命名空间级别。使用用于发布/订阅的命名空间使用者组[10],开发团队可以重用相同的发布/订阅底层基础架构,而无需根据他们运行的命名空间更改其代码。

相关链接:

[1]详细了解Dapr: https://docs.dapr.io/concepts/overview/

[2]阅读 Dapr 1.9.0 的发行说明:https://blog.dapr.io/posts/2022/10/13/dapr-v1.9-is-now-available/

[3]可插拔组件: https://v1-9.docs.dapr.io/operations/components/pluggable-components

[4].NET的模板例子:https://github.com/dapr/samples/tree/master/pluggable-components-dotnet-template

[5]对OpenTelemetry的支持:https://v1-9.docs.dapr.io/developing-applications/building-blocks/observability/w3c-tracing-overview/

[6]弹性能力: https://github.com/dapr/dapr/blob/master/docs/development/dapr-metrics.md#resiliency

[7]应用运行状况检查:https://v1-9.docs.dapr.io/operations/observability/app-health

[8]默认策略:https://v1-9.docs.dapr.io/operations/resiliency/policies/#setting-default-policies

[9]服务到服务调用中间件组件:https://v1-9.docs.dapr.io/developing-applications/middleware/#configuring-app-middleware-pipelines

[10]用于发布/订阅的命名空间使用者组: https://v1-9.docs.dapr.io/developing-applications/building-blocks/pubsub/howto-namespace/

微软即将发布typescript2.0:候选版本已放出

...言已有差不多4年时间,不过该公司正准备发布第二个大版本。TypeScript2.0的开发似乎已近完成,因为该公司已经开放了候选发布(RC)版本的下载。在发行说明中,其主要提到了三方面的增强,分别是——(1)Taggedunions;... 查看详情

typescript教程:微软即将发布的候选版本已放出

...言已有差不多4年时间,不过该公司正准备发布第二个大版本。TypeScript2.0的开发似乎已近完成,因为该公司已经开放了候选发布(RC)版本的下载(腾云科技TY300.COM)。在发行说明中,其主要提到了三方面的增强,分别是—&mda... 查看详情

无效的预发布火车。火车版本“1.0”已关闭,无法提交新版本

】无效的预发布火车。火车版本“1.0”已关闭,无法提交新版本【英文标题】:invalidpre-releasetrain.Thetrainversion\'1.0\'isclosedfornewbuildsubmissions【发布时间】:2014-09-2616:50:34【问题描述】:在这些情况下发送新版本时,我们会收到此... 查看详情

Android applinks 在已发布的版本中不起作用,但在本地安装中可以正常工作

】Androidapplinks在已发布的版本中不起作用,但在本地安装中可以正常工作【英文标题】:Androidapplinksnotworkinginreleasedbuildbutworkcorrectlyfromalocalinstall【发布时间】:2020-11-0814:36:50【问题描述】:我有一个使用应用链接的game。从我的... 查看详情

最新版本的声纳 Maven 插件已损坏

】最新版本的声纳Maven插件已损坏【英文标题】:Latestreleaseofsonarmavenpluginisbroken【发布时间】:2021-04-1819:41:42【问题描述】:看起来他们发布了最新版本的声纳maven插件,位于org/sonarsource/scanner/maven/sonar-maven-plugin/3.8.0.2131/但是,... 查看详情

使用 Ant 构建已签名和未签名的版本

】使用Ant构建已签名和未签名的版本【英文标题】:BuildingbothsignedandunsignedreleaseswithAnt【发布时间】:2012-02-1119:46:17【问题描述】:我在AndroidMarket上发布了一个Android应用。我只需键入antrelease即可准备发布版本。我配置了一个密... 查看详情

Xcode 5 应用程序在 IOS 8 的已发布版本下无法运行

】Xcode5应用程序在IOS8的已发布版本下无法运行【英文标题】:Xcode5appnorworkingunderreleasedversionofIOS8【发布时间】:2014-09-2314:01:47【问题描述】:iPad/iPhone应用程序在IOS7及更早版本下完美运行,但在IOS8下失败。我没有安装xcode6,所... 查看详情

如何查看已安装的 Flutter 版本?

】如何查看已安装的Flutter版本?【英文标题】:HowtochecktheinstalledversionofFlutter?【发布时间】:2019-07-2404:55:54【问题描述】:如何找到我电脑上安装的Flutter版本?【问题讨论】:使用flutterdoctor命令【参考方案1】:颤动版本:flutt... 查看详情

如何找出已安装的可可豆荚的版本?

】如何找出已安装的可可豆荚的版本?【英文标题】:Howtofindouttheversionofinstalledcocoapods?【发布时间】:2014-10-3115:10:04【问题描述】:如何查看已安装的cocoapod的版本?我问的不是可可豆荚的版本gem,而是豆荚本身的版本。理想情... 查看详情

查找已安装的石墨版本

】查找已安装的石墨版本【英文标题】:Findinstalledversionofgraphite【发布时间】:2018-03-2405:12:33【问题描述】:我前段时间用nginx和chef部署了石墨,但没有冻结要安装的版本。因此,现在,尝试使用相同的配方安装时,由于缺少与... 查看详情

查找已安装 npm 包的版本

】查找已安装npm包的版本【英文标题】:Findtheversionofaninstallednpmpackage【发布时间】:2012-06-1321:21:45【问题描述】:如何找到已安装的node.js/npmpackage的版本?这会打印npm本身的版本:npm-v<package-name>这会打印一个神秘的错误:n... 查看详情

查找已安装 npm 包的版本

】查找已安装npm包的版本【英文标题】:Findtheversionofaninstallednpmpackage【发布时间】:2021-12-1101:10:20【问题描述】:如何找到已安装的node.js/npmpackage的版本?这会打印npm本身的版本:npm-v<package-name>这会打印一个神秘的错误:n... 查看详情

查找已安装 npm 包的版本

】查找已安装npm包的版本【英文标题】:Findtheversionofaninstallednpmpackage【发布时间】:2012-06-1321:21:45【问题描述】:如何找到已安装的node.js/npmpackage的版本?这会打印npm本身的版本:npm-v<package-name>这会打印一个神秘的错误:n... 查看详情

查找已安装 npm 包的版本

】查找已安装npm包的版本【英文标题】:Findtheversionofaninstallednpmpackage【发布时间】:2012-06-1321:21:45【问题描述】:如何找到已安装的node.js/npmpackage的版本?这会打印npm本身的版本:npm-v<package-name>这会打印一个神秘的错误:n... 查看详情

如何验证已安装的 spaCy 版本?

】如何验证已安装的spaCy版本?【英文标题】:HowtoverifyinstalledspaCyversion?【发布时间】:2018-05-0105:56:52【问题描述】:我已经为我的NLP项目安装了带有python的spaCy。我已经使用pip安装了它。使用pipinstall-Uspacy验证已安装spaCy版本的... 查看详情

如果已安装旧版本,则创建将执行更新的安装程序

】如果已安装旧版本,则创建将执行更新的安装程序【英文标题】:Creatinganinstallerthatwillperformanupdateifanolderversionisalreadyinstalled【发布时间】:2013-03-1608:13:09【问题描述】:我正在尝试为我的软件(这是一个C#软件)配置Inno设置... 查看详情

springboot3.0.0ga版本正式发布,期待已久的springboot3发布了

期待已久的SpringBoot3.0.0发布了发布说明新版本的亮点分析1.Java17baseline和Java19支持2.支持[GraalVMnativeimages](https://docs.spring.io/spring-boot/docs/3.0.0/reference/html/native-image.html#native-image),取代实验性的SpringNa 查看详情

如何确定已安装的 webpack 版本

】如何确定已安装的webpack版本【英文标题】:Howtodeterminetheinstalledwebpackversion【发布时间】:2017-05-3009:44:21【问题描述】:特别是在从webpackv1到v2的过渡期间,以编程方式确定安装了哪个webpack版本非常重要,但我似乎找不到合适... 查看详情