相似
istio 通过proxy解决网络问题;
dapr 解决网络(networking)、生命周期(lifecycle)、状态(state)、捆绑(binding);
- 通过api方式 解决网络问题;
统一服务间接口调用规范;
POST/GET/PUT/DELETE http://localhost:<daprPort>/v1.0/invoke/<appId>/method/<method-name>
- 存储: POST http://localhost:/v1.0/state/
- 读取: GET http://localhost:/v1.0/state//
- 删除: DELETE http://localhost:/v1.0/state//
- 发布: POST http://localhost:/v1.0/publish//[?
]
事件驱动框架 bindings
- input Bindings: 输入绑定):当外部资源的事件发生时,借助输入绑定,你的应用即可通过特定的API: POST http://localhost:/ 收到外部资源的事件,用于处理特定逻辑
- output Bindings: 输出绑定允许你调用外部资源。比如,在订单处理场景中,在订单创建成功后,可以将订单信息通过Dapr的绑定API: POST/PUT http://localhost:/v1.0/bindings/ 输出到Kafka特定队列上。
Actors
Actor模型 = 状态 + 行为 + 消息。
Actor模型大大简化了并发编程的复杂度,Dapr在Actor运行时中提供了许多功能,包括并发控制,状态管理,生命周期管理如Actor的激活/停用以及用于唤醒Actor的Timer(计时器)和Reminder(提醒)。这些功能同样也是通过 API的方式予以提供。
- 调用Actor 方法: POST/GET/PUT/DELETE http://localhost:3500/v1.0/actors///method/
- 创建 Timer: POST/PUT http://localhost:3500/v1.0/actors///timers/
- 创建 Reminder: POST/PUT http://localhost:3500/v1.0/actors///reminders/
Secrets
Dapr 提供了Secret管理,不过不同于K8S中的Secret,其支持与公有云和本地的Secret存储集成,以供应用检索使用。