distributed-system相关内容

跨多个微服务的2PC分布式事务?

我阅读了一些关于2阶段提交/XA分布式事务以及JTA如何支持它的信息。似乎有很多资源管理器-RM(例如,RDBMS或JMS),以及一个管理跨多个RM的全局事务的TransactionManager(TM)实例。 我知道使用Saga模式更好,但是想想还是很有趣的: Do 2PC/XA分布式事务提供了仅从一个应用程序和一个TM使用多个RM进行事务的可能性? 如果没有-如何在多个微服务之间 ..

NoSQL 和最终一致性——现实世界的例子

我正在寻找 NoSQL 应用程序的良好示例,这些应用程序描述了如何在缺乏事务性的情况下工作,正如我们在关系数据库中所知道的那样.我对编写密集型代码最感兴趣,因为对于大多数只读代码来说,这是一项更容易的任务.我已经阅读了很多关于 NoSQL 的东西,关于 CAP 定理,最终一致性等.然而,这些东西往往专注于数据库架构本身,而不是与它一起使用的设计模式.我确实理解在分布式应用程序中实现完全事务性是不可 ..
发布时间:2022-01-13 13:31:22 其他开发

为什么 CAP 定理中的 RDBMS 分区不能容忍,为什么它可用?

关于 RDBMS 在 CAP 定理中是 CA 的两点我不明白: 1) 它说 RDBMS 不是 Partition Tolerant 但是RDBMS 比其他技术(如 MongoDB 或 Cassandra)的 Partition Tolerant 少吗?是否存在我们放弃 CA 以使其成为 AP 或 CP 的 RDBMS 设置? 2) CAP 的可用性如何?是通过主从设置吗?就像maste ..

运行 Hadoop MapReduce 作业时,如何获取文件名/文件内容作为 MAP 的键/值输入?

我正在创建一个程序来分析 PDF、DOC 和 DOCX 文件.这些文件存储在 HDFS 中. 当我开始我的 MapReduce 作业时,我希望映射函数将文件名作为键,将二进制内容作为值.然后我想创建一个流阅读器,我可以将它传递给 PDF 解析器库.我怎样才能实现映射阶段的键/值对是文件名/文件内容? 我使用的是 Hadoop 0.20.2 这是启动作业的旧代码: public ..
发布时间:2021-12-15 19:22:50 Java开发

如何使用 Message Broker 和数据库设计分布式应用程序?

我想实现一个分布式销售点系统,有点像 销售点应用架构建议. 这是一个具有以下特点的分布式系统: 客户端是关键任务,即使网络连接或服务器出现故障,它们也应该可以工作,但只能持续几天左右. 客户端必须易于安装. 每个客户端都有自己的本地嵌入式数据库. 客户端和服务器之间的通信使用消息队列. 服务器用于备份、记账、统计和向客户分发价格. 服务器位于互联网上. 我正在以 Jav ..

消息总线和消息队列理解

我想知道我对消息总线和消息队列工作的理解是否正确. 首先,我需要明确命名,服务总线与消息总线可以互换使用吗?这是一个发布者 - 订阅者类型的系统,其中添加了消息,让我们说任意数量的发布者可以从其中读取任意数量的订阅者的消息集合,到目前为止我是对的吗? P1 ---/``````S1\________ 服务总线中间件------+------ S2/消息收集 \______S3P2 --- ..

“通知和检查"的名称发布订阅架构?

基本的发布订阅架构问题.在高层次上,在设计 pubsub 时,我有时会面临两种架构之间的选择: 发布突变或“新状态". 某些数据库状态发生了变化,发布者通过 pubsub 通知该更改.但是它们在消息中包含了足够的信息,因此订阅者不需要在数据库上进行查找.想象一下,订阅者有一个数据库缓存.它可以接收突变或新状态,并在不进行查找的情况下更新其缓存. 我的问题是,这两种类型的架构有通用 ..

如何设计一个能够以动态方式高效管理配置的系统?

我正在设计一个系统,我需要在其中以动态方式跨应用服务器管理配置(配置文件).我正在使用 Consul 键值存储来管理配置. 为了管理配置,我在 consul kv 存储中创建了以下节点. {"remoteConfig":"abc-123.tgz", "...."} 这里 remoteConfig 包含所有应用服务器将使用的配置文件(至少这是我得到的设计). 以下是我想要做的: ..

主备分布式系统中共识协议的理论结果

我正在学习分布式系统中的共识协议.这样的分布式系统做数据库的主备. 我了解到“每个共识协议都可以永远循环".从基于paxos的复制键值存储的leader选举 “每个共识协议都可以永远循环"的信息来源在哪里? 状态更新: 问题已回答.rystsov 和 另一个帖子. 能否分享更多的理论成果和相应的信息来源? 解决方案 “每个共识协议都可以永远循环"声明被称为 FLP ..

ZooKeeper 和任何分布式键值存储之间有什么区别?

我是zookeeper和分布式系统的新手,我自己也在学习. 据我目前的理解,ZooKeeper 似乎只是一个键值存储,其键是路径,值是字符串,这与 Redis 没有什么不同.(显然我们也可以使用斜线分隔的路径作为 redis 中的键.) 所以我的问题是,ZooKeeper 和其他分布式 KV 存储之间的本质区别是什么?为什么 ZooKeeper 使用所谓的“路径"作为键,而不是简单的字 ..

Java:正确关闭多线程服务器的套接字

我正在尝试创建一个多线程服务器,多个客户端可以连接到该服务器并为其提供服务.但是,我不确定在需要时如何适当释放资源. 我的服务器运行一个输入线程(等待用户输入)和一个强制线程(处理连接和用户).我在服务器类中打开一个ServerSocket并将其传递给我的处理线程.看起来像这样: 公共类ClientConnector实现Runnable {私有ServerSocket serverSock ..
发布时间:2021-05-01 18:30:55 Java开发

如何创建适合发送和使用的ZeroMQ套接字?

在以下情况下,您能否建议ZeroMQ套接字体系结构: 1)服务器正在端口侦听 2)有多个客户端同时连接服务器 3)服务器接受来自客户端的所有连接,并为每个客户端提供双向队列,这意味着双方(客户端N或服务器)都可以发送或使用消息,即,双方可以是通信的发起人,而另一方应具有用于处理消息的回调. 我们是否应该在每个接受的连接上创建其他ZeroMQ套接字以推送来自服务器的消息?您能 ..

为什么采用下两个命令来填补paxos事件之间的空白是合法的?

Paxos算法中有一个要点( http://research.microsoft.com/zh-cn/um/people/lamport/pubs/paxos-simple.pdf ).关于如何处理差距,本文描述了以下两种方法: 领导者以及学习领导者知道的所有命令的任何其他服务器,现在可以执行命令1–135.但是,它无法执行它也知道的命令138-140,因为尚未选择命令136和137.领导者 ..
发布时间:2021-04-22 19:35:50 其他开发

“通知和检查"的名称pubsub体系结构?

基本pubsub体系结构问题.从较高的角度来看,在设计pubsub时,有时会在两种体系结构之间做出选择: 发布突变或“新状态". 某些数据库状态发生了变化,发布者通过pubsub通知了该更改.但是它们在消息中包含足够的信息,因此订户不需要在DB上进行查找.假设订户具有数据库的缓存.它可以接收突变或新状态,并在不进行查找的情况下更新其缓存. 通知并检查发布者仅通知“有新变化",这提 ..

什么是分布式队列?

我的理解:-分布式目标是客户端的单个逻辑(非物理)目标,客户端内部包含一组物理目标(队列或主题)。 它在高可用性(HA)和负载平衡(LB)方面有助于可扩展的应用程序。 因此,当我执行 distributedQueue.put(someObject)时,分布式队列会将对象放在phyicalQueue之一上并且还维护一些元数据来记录哪个 对象位于哪个队列上 现在当我执行 distrib ..
发布时间:2020-10-22 19:14:45 其他开发

如何对故障检测器进行分类?

我了解异步系统中的故障检测器基本上被分类为(最终)完美/(最终)强以及如何定义这些类,但是我很难理解其背后的直觉。 假设我有一个故障检测器的具体实现,该检测器定期侦听每个进程的心跳消息。如果某个进程一段时间未发送其心跳消息,则该进程将被添加到可疑列表中,直到从该进程收到消息为止。 现在,我怎么知道此FD的实现是哪个类?是否需要正式证明FD的完整性/准确性属性?如果可以实施完美的FD,为 ..

主备份分布式系统中共识协议的理论结果

我正在收集分布式系统中的共识协议知识。 这样的分布式系统在数据库上执行主备份。 我了解到“每个共识协议都可以永远循环。”从 领导者选举基于paxos的复制键值存储 “每个共识协议都可以永远循环”的信息源在哪里? 状态更新:回答。 rystsov和另一篇文章。 是否可以共享更多的理论结果和相应的信息来源? 解决方案 “每个共识协议都可以永远循环”语句被称为FLP不 ..

如何监控ZeroMQ服务器是否存在?

我想在发送ZeroMQ请求之前检查服务器的存在(状态),但是我不知道该怎么做。 解决方案 Q :我想在发送ZeroMQ请求之前检查服务器的存在(状态) 解决方案是设置和使用 zmq_socket_monitor() //从监视器套接字读取一个事件;返回值和地址 //通过引用(如果不为null)和事件编号(按值)。如果出现错误,则返回-1 //。 静态int ..
发布时间:2020-10-22 19:12:35 C/C++开发

垂直和水平分布是什么?

垂直分发: 分布式处理等效于组织客户端-服务器 应用作为多层体系结构 。将逻辑上的不同组件放置在不同的机器上。 水平分布: 个客户端的分布和服务器-在现代 体系结构中更为常见。 客户端或服务器可能是物理上在逻辑上分为 个等效部分,但每个部分都在 个完整数据集中自己的份额上工作,从而平衡了负载。 li> 我试图理解垂直线之间的区别和水平? “ 逻辑上”和“ 物理上”是什么意思 ..
发布时间:2020-10-22 19:11:32 其他开发