13、Dapr 中的 Actor 编程模型详解

Dapr 中的 Actor 编程模型详解

1. Actor 编程模型概述

Actor 编程模型是一种直观的模型,它将状态和操作封装为一个独立单元,这与熟悉面向对象编程(OOP)范式的人产生了很好的共鸣。然而,如果不注意该编程模型的微妙含义,可能会导致误用。

1.1 Actor 模型的误用

  • 场景示例 :以用 Actor 模拟道路上的汽车为例,每辆车维护自己的状态(如行驶速度)。起初,Actor 模型似乎很合适,汽车启动时创建 Actor,速度变化时调用 ChangeSpeed(speed) 方法更新状态。但当需要创建所有行驶中汽车状态的快照时,若直接查询每个 Actor 并聚合数据,会产生以下问题:
    • 同时调用成百上千个 Actor 是缓慢且性能不佳的操作。
    • 查询 Actor 状态会阻塞其他更新车辆速度的调用,暂停所有活跃的 Actor 实例。
  • 另一种常见误用 :每个 Actor 保存大量数据。数据量越大,调用 Actor 的 I/O 操作完成所需时间越长,会导致 Actor 长时间锁定,造成瓶颈。

为避免这些问题,如果需要多个 Actor 数据的聚合视图,最好查询底层状态存储。若不可行,建议每个 Actor 将数据保存到外部数据库,以便查询和聚合。

2. Dapr 与 Actor

2.1 Dapr 的 Actor 模型特点

Dapr 提供了云原生、弹

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值