What's Dapr
Distributed Application Runtime. An event-driven, portable runtime for building microservices on cloud and edge.
分布式应用运行时。一个事件驱动、可移植的运行时用于在云上和边缘计算上构建微服务。
How Dapr Works
那Dapr如何简化分布式应用的开发呢?下面我们来看一看Dapr的主要特性。
一图胜千言:Dapr通过以HTTP/gRPC API这种与语言无关的方式暴露封装的分布式能力供应用调用,从而支持使用任意语言或框架进行开发集成。目前官方已经提供了Go,Node,Python,.NET,Java, C++,PHP,Rust,Javascript的Sdk,简化Dapr的集成。
2. State management(状态管理)
在进行微服务开发时,绕不开的话题就是服务间的状态共享、并发一致性问题。对于状态共享,你可能会说,各个服务连接到同一个Redis实例就OK了。是,但不得不考虑潜在的更新冲突的问题。Dapr 以更友好的HTTP API的方式进行状态的存储和读取,同时支持通过ETags进行并发控制,并支持通过选项设置并发和一致性行为。
存储: POST http://localhost:<daprPort>/v1.0/state/<storename>
读取: GET http://localhost:<daprPort>/v1.0/state/<storename>/<key>
删除:DELETE http://localhost:<daprPort>/v1.0/state/<storename>/<key>
以下是保存状态的举例:
What Can We Do With Dapr
了解了Dapr是什么,以及其提供的特性,那Dapr的应用场景就一目了然了。也就是官网首页的Slogan:Simplify cloud-native application development--Focus on your application’s core logic and keep your code simple and portable。
简化云原生应用的开发,确保应用专注于业务,并保证代码简单可移植。
因此,在考虑云原生应用开发的技术选型时,尽情尝试吧,目前在国内阿里云也已采用。
Last
在云原生如火如荼发展之际,Dapr V1.0 的正式发布,为开发者指明了云原生时代微服务的开发方向。相信Dapr 在未来的微服务架构选型中必将占有一席之地!