Dapr简介

Dapr是什么?

直接看下面这张图:

上图一共有3层,从上往下:

  • Application Code:应用程序,就是你写的业务系统应用;这里体现了Dapr支持多语言;Application Code通过HTTP/gRPC协议和Dapr通信;

  • Dapr:Dapr运行时,可以看出Dapr提供了服务间调用、状态管理(key/value管理)、发布订阅(MQ)等能力

  • Any cloud or edge infrastructur:服务提供者,且是多云的。

来个例子吧:

上图使用了Dapr的state management能力,由Redis提供真正的状态存储服务。

  • Order Processor:即业务系统应用,通过HTTP发起一个请求,要存储一个key为527的数据;

  • Dapr:收到上面的请求,再转发给Redis;

  • Redis:存储key/value

看了上面的图,你是不是会想:那我为啥不直接用Redis?接着往下看

Dapr能解决什么问题?

为什么不直接使用Redis?

如上面的Redis的例子,如果应用系统(上面是Order Processor)直接使用Redis,那应用系统就强依赖Redis了,如果应用系统要换成其它缓存数据库,如Memcached等,就需要改造应用系统的代码。

但如何使用了Dapr,应用系统通过通用的HTTP/gRPC协议和Dapr交互,再由Dapr和Redis交互。通过加入中间的Dapr,实现了应用系统和Redis的解耦;如果后续由Redis替换为Memcached,只需要修改Dapr的配置,应用系统无需改造。

Dapr的优势

  • 应用系统与具体服务解耦:通过轻量级SDK、通用HTTP/gRPC协议、与服务无关的API,实现应用系统与具体服务的解耦;

  • 易维护:Dapr通过Sidecar机制,将Dapr进程和应用系统进程隔离,Dapr对应用系统是透明的,Dapr的升级也是对应用系统无感的;

  • 天然支持多语言:由于SDK是轻量级的,即只提供HTTP/gRPC协议的API接口,所以很方便通过多语言实现;

  • 多云支持:应用系统与具体服务解耦后,服务的具体实现只由Dapr关心,应用系统在云环境之间迁移时,无需关心具体云之间的差异;

Dapr特性

Component

即组件,Dapr官方提供了很多内置的组件,如下图:

例如State Stores状态存储类,最简单就是key/value存储。实现的方式有Redis、Cassandra等

Building Blocks

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值