假设在下图中中间消息队列失败.发件人仍然可以使用其他邮件队列发送邮件.
但是如果消息队列在收到消息后死亡会发生什么.发件人如何知道邮件是否已发送给接收者,以决定是否重新发送不同的邮件队列?
类似的情况如果接收器在消息队列向其发送消息后死亡会发生什么?发件人如何知道接收方是否已满足其预期请求?

distributed fault-tolerance message-queue distributed-system
我有一个关于 RESTful API 的问题 - 为什么我们关心分布式系统中的幂等性。你能告诉我吗
我以为我知道其中的区别,但现在我有点困惑,我不再确定了。所以我想我可以问你。分布式网络可以是集中式的,也可以是去中心化的吗?或者说分布式网络就一定意味着没有中心节点吗?我认为分布式网络也是去中心化的,但经过研究,我现在对此表示怀疑。
我希望有人能帮助我谢谢!
architecture distributed-computing distributed-system centralized
我是一个MPI初学者,如果我用c++编写这样的代码,系统将如何决定程序将有多少个等级?这不像我们在面向对象语言中遵循的逻辑,当你定义一个数组时,你精确地知道它的大小。他们在MPI中使用什么机制来让系统决定多少等级和整体大小?是否灵活?由机械功率决定?还是只是调用时自动生成?
int main(int argc, char *argv[]){
MPI_Init(NULL, NULL);
int size, rank;
MPI_Comm_size(MPI_COMM_WORLD, &size);
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
if (rank == 4)
master();
else
slave(rank);
MPI_Finalize();
return 0;}
Run Code Online (Sandbox Code Playgroud) 我们需要一个轻量级的基于客户端的消息传递解决方案。我们之前用过AMQP,RabbitMQ,但是在C++中我们有问题。
我们想选择 ZeroMQ with malamuteserver 还是 MQTT ?我们的物联网几乎每 5 分钟就会发布一次数据 (45 kb)。
我们需要 100% 地传递此消息,并且不想丢失任何消息。
我们尝试了 MQTT QoS 级别 2,但是当服务器断开连接或主服务器客户端出现问题时,我们会丢失已发布的消息。
我们需要的正是 RabbitMQ 任务/工作者模型。如果发生任何事情,消息应该在服务器中排队,直到消费者连接。
欢迎任何建议、方向和示例。
PS:这将是生产,所以我们想选择问题较少的方式:)
所以我刚刚读到了有关 redlock 的内容。我的理解是它需要3台独立的机器才能工作。所谓独立,意味着所有机器都是主机,它们之间没有复制,这意味着它们服务于不同类型的数据。那么为什么我需要锁定三个独立的 Redis 实例(作为主实例)中存在的密钥呢?我需要使用 redlock 的用例有哪些?
考虑一个具有 3 个节点的分布式系统 - n1、n2、n3。节点之间有一个共享数据x。Paxos 正在节点上运行。一开始,x 等于 4。
客户端向n1发送更新请求,将x的值修改为5。n1和n2通过运行Paxos就新值达成共识,但n3出现了一些链路故障,因此n3没有最新的x值。
我们知道Paxos提供强一致性。另一方面,如果客户端向 n1 发送一个读请求,同时向 n3 发送另一个读请求,则返回值不相同(其中一个是 5,另一个是 4)。因此,运行Paxos后,系统并不是强一致的。
我的问题是:如何解决这个矛盾?我是不是误会了什么?
concurrency distributed-computing distributed-system consensus paxos
我是 ES7 的新手,正在尝试了解乐观并发控制。
我想我明白,当我获取请求一个文档并将其_seq_no和_primary_term值在稍后的写入请求中发送到同一文档时,如果值不同,则写入将被完全忽略。
但是,在我不发送 和 _seq_no值的默认情况下,文档会发生什么情况_primary_term?_seq_no即使它具有较旧的_primary_term值(因此使索引不一致),写入也会继续进行,还是仅在值较新时才被处理?
如果是前者,文档最终会保持一致吗?
我试图弄清楚我是否需要发送这些值以获得最终的一致性,或者我是否可以免费获得它而不发送这些值。
multithreading distributed-system eventual-consistency optimistic-concurrency elasticsearch
像Google File System和Hadoop这样的分布式文件系统不支持随机I/O.
(它不能修改之前写过的文件.只能编写和附加.)
他们为什么设计这样的文件系统?
设计的重要优势是什么?
PS我知道Hadoop将支持修改写入的数据.
但是他们说,它的表现会非常不好.为什么?
我有一个问题是要求绘制一个矢量时钟时间线图来说明在事件关系之前发生的部分顺序.
这是矢量时钟:
V(a) = (4,4,2)
V(b) = (4,2,2)
V(c) = (2,2,3)
V(d) = (4,3,2)
V(e) = (4,4,4)
V(f) = (3,2,2)
Run Code Online (Sandbox Code Playgroud)
我不确定如何确定每个事件属于哪个进程.我使用的所有示例都使用矢量时钟,其值从0开始,例如V(a)=(1,0,0),因此我假设事件a是第一个发生的事件或者它与其他进程并发但我不知道该怎么做这个特别的问题.
有人可以帮忙吗?
谢谢
synchronization clock distributed-computing distributed-system
c++ ×2
architecture ×1
centralized ×1
clock ×1
concurrency ×1
consensus ×1
distributed ×1
file-io ×1
filesystems ×1
gfs ×1
hadoop ×1
locking ×1
mpi ×1
mqtt ×1
paxos ×1
rabbitmq ×1
redis ×1
rest ×1
zeromq ×1