自从微软宣布Dapr以来已经有6个月了。Dapr或分布式应用程序运行时是一个开源项目,其目标是使开发人员能够编写微服务。这是一个很好的目标,在本博客中,我们将探讨这意味着什么。
自从Dapr发布以来,我听到越来越多关于它的消息。与每次发布一样,Dapr都会发布一些公告、Azure Friday剧集等。对我来说,Dapr似乎并不常见的是,即使在发布之后,它似乎仍能吸引人们。我一直在网络上看到人们在推特上谈论Dapr,最近有一集关于Dapr的Azure播客,让我确信我终于要看一看了,我今天就看了。
在本博客中,我们将介绍什么是Dapr,它与服务网格 Service Mesh 的区别,以及运行Dapr的快速演示。在这篇文章的最后,我列出了更多的资源。
什么是Dapr
Dapr是一种可移植的、事件驱动的运行时,使企业开发人员能够轻松构建在云和边缘上运行的弹性、微服务无状态和有状态的应用程序,并支持多种语言和开发人员框架。
Dapr的一个主要功能是允许您使用外部组件(如消息传递基础结构或状态存储),而无需写入该外部组件的特定实现。您的应用程序将使用您想要执行的操作(例如从DB读取状态)调用Dapr,Dapr将根据您的配置(例如从CosmosDB读取状态)将此转换为该操作的实现。
让我们考虑这个例子:您需要读写事件到消息队列。Dapr允许您这样做,而无需实现特定于队列的SDK。队列实现由Dapr运行时处理,甚至允许您交换实现细节。从应用程序的角度来看,您只需使用需要执行的操作调用Dapr,Dapr将处理转换。
这也使得您可以编写一次应用程序,在多个云上运行它,并且在每个云上都有一个不同的Dapr配置文件用于特定的队列实现。实际上,您可以在Azure上使用事件中心,在GCP上使用Google发布/订阅。
Dapr中的当前功能(也称为构建块)
在当前版本中,Dapr有6种功能,称为构建块。当您构建应用程序时,您可以选择您决定使用其中的哪一个。