写点什么

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:272473

评论 1 条评论

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

冗余是什么意思?与双机热备有什么区别?

行云管家

高可用 冗余 双机热备

带你读论文丨S&P21 Survivalism: Living-Off-The-Land 经典离地攻击

华为云开发者联盟

人工智能 华为云 论文 企业号 2 月 PK 榜 华为云开发者联盟

「BY林子」网站资源下载

BY林子

必备技巧,PCB设计布局的4项注意(基础篇)

华秋PCB

PCB 布局 PCB设计 布线

Java Agent 踩坑之 appendToSystemClassLoaderSearch 问题

阿里巴巴中间件

Java 阿里云

邀请 | Flink Batch 社区开发者会议

Apache Flink

大数据 flink 实时计算

杭州云堡垒机采购选择哪家好?为什么?

行云管家

云计算 网络安全 数据安全 云堡垒机

re:Invent 开发者最喜爱产品票选榜单出炉!快来探索高光产品~

亚马逊云科技 (Amazon Web Services)

java线下培训适合小白学习吗

小谷哥

防sql注入原理浅析

追赶者

SQL注入

TAE-MatrixOne云原生事务与分析引擎

MatrixOrigin

数据库事务 云原生数据库 国产数据库 MatrixOrigin MatrixOne

一个简单的案例入门 gRPC

江南一点雨

gRPC

开源即时通讯IM框架 MobileIMSDK v6.3 发布

JackJiang

网络编程 即时通讯IM

学习web前端培训怎么样?

小谷哥

选择前端培训怎么学?

小谷哥

一文搞清商旅酒店数据治理——酒店数据问题分析及治理方案

元年技术洞察

数据中台 数据 数据治理 企业数字化转型 商旅系统

如何使用 Terraform 在亚马逊云科技上创建 ShardingSphere Proxy 高可用集群?

亚马逊云科技 (Amazon Web Services)

数据库 负载均衡 存储

新鲜出炉!东莞华为云团泊洼数据中心T1项目成功入选2022年ICT优秀案例

Geek_2d6073

前端培训学习前景怎么样?

小谷哥

杭州银行牵手火山引擎数智平台,要既“好”又“快”地完成数字化升级

字节跳动数据平台

大数据 金融 银行

一个成熟的WMS(仓库管理系统)应该具备的那些功能

SAP虾客

功能 WMS系统 成熟的WMS系统

Studio One2023永久和谐版水果编曲工具使用教程

茶色酒

Studio One 5 Studio One2023

从入门到实战!阿里内部正式上线“Spring Cloud Alibaba (全彩小册)”

架构师之道

Java 编程 程序员 微服务

java开发培训机构怎样选择?

小谷哥

TiCDC 源码阅读(四)TiCDC Scheduler 工作原理解析

PingCAP

数据库 开源 TiDB 源码解读

使用插件扩展服务网格

Flomesh

插件 服务治理 服务网格 Pipy

个人总结18条心法奉上,手把手带你阅读开源项目的源码!

程序员小毕

源码 程序员 面试 程序人生 架构师

零基础自学网络安全/网络渗透攻防路线学习方法【建议收藏】

网络安全学海

黑客 网络安全 安全 信息安全 渗透测试

R2M分布式锁原理及实践

京东科技开发者

redis 框架解析 企业号 2 月 PK 榜 r2m 分布式锁原理

sun4.0泰山众筹模式项目系统开发技术讲解放哪(Demo)

I8O28578624

火山引擎ByteHouse助力中国地震台网中心,快速构建一站式实时数仓

字节跳动数据平台

大数据 Clickhouse 数据平台

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