NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

Dapr 旨在简化弹性和可移植微服务的创建

  • 2019-11-19
  • 本文字数:1221 字

    阅读完需:约 4 分钟

Dapr旨在简化弹性和可移植微服务的创建

Microsoft Dapr是一个开源的、事件驱动的框架,旨在为云计算和边缘应用程序构建弹性和可移植的微服务。微软表示,Dapr 封装了构建微服务的最佳实践,并使开发人员可以专注于他们的应用程序的业务逻辑。


Dapr提供了一个事件驱动的运行时,它支持构建微服务所需的基本功能,比如服务调用、状态管理和发布/订阅消息传递。此外,它还引入了许多更高级的特性。


Virtual actors旨在通过将状态和行为封装在可以激活和停用的对象中来简化异步计算的管理,并支持使用计时器来触发代码执行。actor 也可以是无状态的。Dapr 中的 actor 是虚拟的,这意味着它们在内存中的表示与 actor 身份和生命周期无关。特别是,可以在一段时间内不使用 actor 时自动回收它,并在首次请求它时创建。actor 还可以迁移到不同的节点,例如,当正在运行它们的节点发生故障时。为了简化并发处理,actor 是单线程的,并且受制于基于回合的访问策略。此外,Dapr 运行时将使用超时来检测和解决可能的死锁。


Dapr 还提供了一个高级的事件驱动模型,这个模型可以将数据库、队列和 webhook 等外部服务注册为触发代码执行的事件源,或者注册为事件消费者。这是通过绑定实现的,绑定简化了与那些服务的交互,处理重试和失败,并支持将应用程序从一个服务移植到另一个服务,而无需更改代码。在撰写本文时,当前的绑定还处于试验阶段


最后,Dapr 还支持跨服务(内部或外部)的分布式跟踪。跟踪不需要插装应用程序代码,因为 Dapr 使用 HTTP/gRPC 中间件来拦截所有 Dapr 和应用程序流量,并自动注入相关 ID 以跟踪分布式事务。Dapr 与 OpenTelemetry 兼容,后者支持使用许多后端,包括 Azure Monitor、Datadog、Instana、Jaeger、SignalFX、Stackdriver、Zipkin 以及其他等等。


Dapr 架构遵循边车模式,这意味着它的组件既可以作为独立的进程部署,也可以作为提供隔离和封装的容器部署,而且不需要在应用程序代码中包含运行时。这使得将 Dapr 与其他运行时集成然后在 Kubernetes 环境中使用它变得很容易。


Dapr 针对许多语言提供了 SDK,包括 GoJava、 JavaScript、 Python,当然还有.NET。特定于语言的 SDK 以符合语言习惯的方式暴露 Dapr API,并隐藏使用其 HTTP/gRPC API 的复杂性。


你可以使用主要操作系统可用的安装脚本来安装 Dapr。在 Linux 下,你可以运行以下命令:


$ wget -q [](https://raw.githubusercontent.com/dapr/cli/master/install/install.sh) -O - | /bin/bash
$ dapr init
复制代码


然后你可以通过执行 Dapr run 在本地运行 Dapr,或者配置 Kubernetes 集群来利用它的自动伸缩能力。如果你打算在 Kubernetes 中使用 Dapr,确保你也可以检出最近针对 Kubernetes 发布的微软开放应用程序模型Open Application Model ,简称 OAM)及其最初的实现Rudr。OAM 和 Rudr 旨在帮助开发人员明确地定义他们的应用程序,使其与实现区分开来,并保持开发和部署之间的关注点分离。


原文链接:


Dapr Aims to Simplify the Creation of Resilient and Portable Microservices


2019-11-19 09:272345

评论 1 条评论

发布
用户头像
这玩意儿完全把service mesh做成了actor模型...会玩,将Service mesh,Actor,Grpc,EDA合并了...脑洞大开
2019-11-21 12:06
回复
没有更多了
发现更多内容

软件测试 | Sonarqube架构

测吧(北京)科技有限公司

测试

三天吃透SpringMVC面试八股文

程序员大彬

Java spring springmvc

Matlab实现小波变换

timerring

图像处理 数字图像处理

软件测试 | 代码分析的持续集成应用

测吧(北京)科技有限公司

测试

软件测试 | 精准化测试

测吧(北京)科技有限公司

测试

设计模式之美—接口隔离

GalaxyCreater

设计模式

软件测试 | Sonarqube maven分析

测吧(北京)科技有限公司

测试

【Java优化实战】「微基准系列」带你脚踏实地的进行开发和使用JMH测试和提升应用程序和服务指南

洛神灬殇

Java JMH 3月日更 JMH性能基准测试

好用的数据校验&修复工具gt-checksum开源啦

GreatSQL

greatsql社区 gt-checksum

英特尔公司高级副总裁、中国区董事长王锐: 下一个中国是中国!

科技之家

软件测试 | 测试左移代码分析

测吧(北京)科技有限公司

测试

软件测试 | Sonarqube scanner使用

测吧(北京)科技有限公司

测试

2022 IoTDB Summit:长安汽车黄立《Apache IoTDB 在长安智能汽车数据平台的实践》

Apache IoTDB

软件测试 | Sonarqube中的覆盖率分析

测吧(北京)科技有限公司

测试

四步走搭建自己的专属 ChatGPT(附开源代码)| 社区征文

FN0

AI 话题广场 ChatGPT

2022 IoTDB Summit:IoTDB PMC 乔嘉林《端边云协同:Apache IoTDB 全新单机分布式架构》

Apache IoTDB

用友成为铸基计划-2022标准建设贡献单位!

用友BIP

DockQuery x 达梦 国产数据库生态“加速跑”

BinTools图尔兹

#数据库 信创产业 达梦认证

Docker 环境搭建

流火

Docker

5分钟部署百台云上计算机,22支参赛队伍快速接入南网电力调度AI应用大赛

云布道师

无影云电脑

推荐这5个很牛的开源项目,程序员直呼内行

引迈信息

开源 低代码

这样在 C# 使用 LongRunnigTask 是错的

newbe36524

C# Docker Kubernetes

IntelliJ IDEA中提高代码开发效率的10个快捷操作

京东科技开发者

var java 企业号 3 月 PK 榜 psvm sout

软件测试 | 常见覆盖率统计工具

测吧(北京)科技有限公司

测试

一万年太久,只争朝夕 | Foundation model的进展仍不够快

Baihai IDP

人工智能 AI 大模型 企业号 3 月 PK 榜 Foundation Models

C++ 线程池

王玉川

c++ 编程语言 多线程 线程池

1行Python代码,把PPT转成图片,python-office功能更新~

程序员晚枫

Python Office 自动化办公

阿里云函数计算助力高德 RTA 广告投放系统架构升级

Serverless Devs

Serverless 高德

GPT-3/ChatGPT复现的经验教训

OneFlow

人工智能 深度学习 GPT-3 ChatGPT

某游戏公司基于OceanBase 4.0的运营分析AP实践

OceanBase 数据库

Spring进阶:定义bean时容易踩的两个坑,连老手也容易犯错

程序员拾山

spring

Dapr旨在简化弹性和可移植微服务的创建_架构_Sergio De Simone_InfoQ精选文章