Dapr分布式应用运行时初探2

Dapr是一个很优秀的分布式应用运行时,在本篇里我们来说一下Dapr的几个特色功能。
为了方便介绍,我简单画了个思维导图,如下所示:
在这里插入图片描述

众所周知,新技术的产生是为了解决现存的问题。从上面的思维图中我们可以了解下Dapr这几大特色功能是为了解决微服务架构中现存的什么问题。具体的Dapr技术代码示例或者说明大家可以访问这个链接来查看。

Publish And Subscribe

发布与订阅 微服务之间一些对实时性要求不高的场景,可以采用发布与订阅的方式来实现微服务之间的异步通信。Dapr初始化安装的Redis很容易就能实现简单的队列功能,不过我个人觉得小型项目用用还可以,如果是大吞吐量的高并发系统还是选用更专业的Rabbit或者Kafka来做消息队列。

Service Invocation

服务调用 微服务之间实时调用的场景Dapr提供了Service Invocation功能来满足。 Dapr支持使用HTTP或者gRPC来调用,我们一起来看看当ServiceA通过Service Invocation来调用ServiceB会发生哪些事情?
在这里插入图片描述

  1. Service A makes an HTTP or gRPC call targeting Service B. The call goes to the local Dapr sidecar.
    ServiceA发起调用,调用将转向到Dapr的本地边车进程。
  2. Dapr discovers Service B’s location using the name resolution component which is running on the given hosting platform. Dapr
    通过命名解析组件来获取ServiceB的地址。
  3. Dapr forwards the message to Service B’s Dapr sidecar.
    Note: All calls between Dapr sidecars go over gRPC for performance. Only calls between services and Dapr sidecars can be either HTTP or gRPC.
    Dapr将消息转发至B的边车进程。
  4. Service B’s Dapr sidecar forwards the request to the specified endpoint (or method) on Service B. Service B then runs its business logic code.
    B的边车进程转发消息至特定方法,然后B执行业务逻辑代码。
  5. Service B sends a response to Service A. The response goes to Service B’s sidecar.
    B回复响应至B的边车。
  6. Dapr forwards the response to Service A’s Dapr sidecar.
    Dapr转发响应至A。
  7. Service A receives the response.
    A获取响应。

State Management

状态管理 在分布式微服务框架中共享一致的数据是很重要的功能。Dapt通过State Management提供了对一致数据的读写功能。比如一些实际案例中的购物车信息,用户状态会话信息等。

在这里插入图片描述

Bindings

绑定 使用这个功能Dapr允许微服务接受第三方系统的消息以及主动与第三方系统交互。官方给的Demo是微服务接收一个Cron表达式来驱动任务按照表达式来定时执行。

Actors

计算单元 计算单元理解起来优点困难,我们先来看看官方给的解释。

The actor pattern describes actors as the lowest-level “unit of computation”. In other words, you write your code in a self-contained unit (called an actor) that receives messages and processes them one at a time, without any kind of concurrency or threading.
While your code processes a message, it can send one or more messages to other actors, or create new actors. An underlying runtime manages how, when and where each actor runs, and also routes messages between actors.
A large number of actors can execute simultaneously, and actors execute independently from each other.
参与者模式将参与者描述为最低级别的“计算单元”。换句话说,您在一个独立的单元(称为参与者)中编写代码,该单元接收消息并一次处理一条消息,而无需任何类型的并发或线程。
当您的代码处理一条消息时,它可以向其他参与者发送一条或多条消息,或创建新的参与者。底层运行时管理每个参与者的运行方式、时间和地点,并在参与者之间路由消息。
大量参与者可以同时执行,并且参与者彼此独立执行。

哪一些场景适合应用计算单元呢?

  • 功能涉及大量(数千或更多)小型、独立且孤立的状态和逻辑单元,比如聊天室?
  • 希望使用不需要外部组件进行大量交互的单线程对象,包括跨一组参与者查询状态。
  • 参与者实例不会通过发出 I/O 操作来阻止具有不可预测延迟的调用者。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/719160.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【x264】滤波模块的简单分析

【x264】滤波模块的简单分析 1. 滤波模块概述1.1 自适应边界1.2 自适应样点级滤波器1.3 滤波过程 2. 函数入口(fdec_filter_row)2.1 去块滤波(x264_frame_deblock_row)2.1.1 强滤波函数(deblock_edge_intra&#xff09…

FPGA - 滤波器 - IIR滤波器设计

一,IIR滤波器 在FPGA - 滤波器 - FIR滤波器设计中可知,数字滤波器是一个时域离散系统。任何一个时域离散系统都可以用一个N阶差分方程来表示,即: 式中,x(n)和y(n)分别是系统的输入序列和输出序列;aj和bi均为…

vue简介实例

先看样式 再看代码 <div v-else class"relative mt-4 h-44 cursor-pointer overflow-hidden rounded-xl"><divclass"absolute flex h-44 w-full blur-lg":style"{ backgroundImage: url(${currentSongList.list[0]?.coverImgUrl}) }"…

jpg压缩在线方法,我只用这2种(无损)

在数字化的时代&#xff0c;我们经常需要分享、存储或上传各种图像文件&#xff0c;而JPG是其中最常见的图像格式之一。然而&#xff0c;大文件大小有时可能成为一个问题&#xff0c;尤其是在网络传输或存储空间有限的情况下。为了解决这一问题&#xff0c;我们可以利用在线工具…

滚球游戏笔记

1、准备工作 (1) 创建地面&#xff1a;3D Object-Plane&#xff0c;命名为Ground (2) 创建小球&#xff1a;3D Object-sphere&#xff0c;命名为Player&#xff0c;PositionY 0.5。添加Rigidbody组件 (3) 创建文件夹&#xff1a;Create-Foder&#xff0c;分别命名为Material…

Ps:条件模式更改

Ps菜单&#xff1a;文件/自动/条件模式更改 Automate/Conditional Mode Change 条件模式更改 Conditional Mode Change脚本命令可用于将图像文档的颜色模式更改为指定的模式。 既可以将指定的源颜色模式转换为目标颜色模式&#xff0c;还可以将此命令记录在动作中以便实施快速转…

单通道触摸感应开关RH6016

1.简介 SOT23-6 RH6016 封装和丝印 RH6016 是一款内置稳压模块的单通道电容式触摸感应控制开关IC&#xff0c;可以替代传统的机械式开关。 RH6016可在有介质(如玻璃、亚克力、塑料、陶瓷等)隔离保护的情况下实现触摸功能&#xff0c;安全性高。 RH6016内置高精度稳压、上电复…

Apache Doris 全新分区策略 Auto Partition 应用场景与功能详解 | Deep Dive系列

编辑&#xff1a;SelectDB 技术团队 在当今数据驱动的时代&#xff0c;如何高效、有序地管理数据库中的海量数据成为挑战。为了处理庞大的数据集&#xff0c;分布式数据库引入了类似分区和分桶策略&#xff0c;通过将数据按特定规则划分成较小的单位并分布到不同节点上&#x…

远程桌面控制

收费程序&#xff0c;白嫖党勿扰 收费金额1000元 1 概述 之前做了一个云渲染程序&#xff0c;和虚幻的像素流原理是一样的&#xff0c;不过没有虚幻做的那么完善。云渲染是使用视频流技术&#xff0c;将三维可视化画面以视频流的形式推送到服务器&#xff0c;服务器将视频转发…

28. 空间滤波器

导论&#xff1a; 几何光线追迹是光线传播的一种不完善描述。严格地说&#xff0c;光束传播是一个相干过程。当波前通过自由空间或光学介质时&#xff0c;波前会发生相干干涉。这种相干传播的建模包括物理光学领域。 物理光学传播&#xff08;POP&#xff09;是zemax的一项强…

2024年【高压电工】模拟考试题及高压电工考试试题

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2024年高压电工模拟考试题为正在备考高压电工操作证的学员准备的理论考试专题&#xff0c;每个月更新的高压电工考试试题祝您顺利通过高压电工考试。 1、【单选题】下列()安全用具是在电气操作中使用的基本安全用具。…

服务器数据恢复—KVM虚拟机被误删除如何恢复虚拟磁盘文件?

服务器数据恢复环境&故障&#xff1a; 1台服务器&#xff0c;Linux操作系统EXT4文件系统&#xff0c;部署了数台KVM虚拟机&#xff0c;每台虚拟机包含一个qcow2格式的磁盘文件&#xff0c;和一个raw格式的磁盘文件。 工作人员操作失误删除了3台服务器上的KVM虚拟机&#xf…

c# 二维图形绘制实践

1.等边三角形 1.1 概述 1.2 代码 using System; using System.Drawing; using System.Windows.Forms;public partial class TriangleForm : Form {public TriangleForm(){//InitializeComponent();// 确保窗体大小足够大&#xff0c;以容纳三角形 this.ClientSize new Siz…

springboot相关的一些知识

SpringBoot可以同时处理多少请求 SpringBoot默认的内嵌容器是Tomcat&#xff0c;所以SpringBoot可以同时处理多少请求取决于Tomcat。 SpringBoot中处理请求数量相关的参数有四个&#xff1a; server.tomcat.thread.min-spare&#xff1a;最少的工作线程数&#xff0c;默认大小…

表单中的常用元素

10.图像形式上传文件 <input type“image”>定义图像形式的提交。 src 属性和alt属性必须与<input type“image””>结合使用。 input type"image"src"img/l.jpg"alt"submit"/> 11.下拉列表框 <select>标签定义下拉列表框…

ubuntu 20.04禁止自动更新内核驱动、显卡驱动(使用命令行)

本文目录 一、禁止更新内核1.1 查看当前内核1.2 查看安装的内核1.3 根据需求&#xff0c;使用hold参数禁止固定内核1.4 查询被锁定不更新软件包的状态 二、禁止更新显卡驱动2.1 查看安装的显卡驱动2.2 查看详细的详细的显卡信息2.3 禁止显卡驱动更新2.4 查询显卡是否设置成功 前…

EE trade:现货黄金杠杆比例的计算方法

现货黄金杠杆交易是一种利用保证金进行交易的方式&#xff0c;允许投资者用较少的资金控制较大的交易量&#xff0c;从而放大收益或损失。杠杆比例的计算方法相对简单&#xff0c;主要取决于交易所需的保证金和实际交易金额之间的关系。 杠杆比例的计算公式 杠杆比例 实际交…

SoC设计更重要的是IP管理

对于大多数片上系统&#xff08;SoC&#xff09;设计来说&#xff0c;最关键的任务不是RTL编码&#xff0c;甚至不是创建芯片架构。今天&#xff0c;SoC的设计主要使用来自多个供应商的各种IP块。这使得管理硅IP成为SoC设计过程中的主要任务。 一般来说&#xff0c;新编写的RTL…

【挑战100天首通《谷粒商城》】-【第一天】【10 番外篇】 解决docker 仓库无法访问 + MobaXterm连接VirtualBox虚拟机

文章目录 课程介绍 1、解决docker 仓库无法访问 2、 MobaXterm连接VirtualBox虚拟机 Stage 1&#xff1a;下载MobaXterm选择适合你的版本 Stage 2&#xff1a;vagrant ssh 连接&#xff0c;开启ssh访问 Stage 2-1&#xff1a;su获取root账号权限,输入密码&#xff08;默认vagra…

微软修复Wi-Fi驱动高危漏洞 影响Windows所有版本 可通过局域网发起攻击

微软修复 WiFi 驱动程序中的高危安全漏洞&#xff0c;该漏洞影响 Windows 所有版本&#xff0c;可以通过公共 WiFi 等发起攻击。如果攻击者能够接入到目标设备所处的网络中&#xff0c;则可以悄无声息完成攻击&#xff0c;不需要用户进行任何交互。 在本月例行安全更新中微软修…