标签: distributed-system

"分布式单元测试"的框架或工具?

是否有任何工具或框架能够更容易地测试用Java编写的分布式软件?我的被​​测系统是一个点对点软件,我想用PNUnit之类的东西进行测试,但用Java代替.Net.

被测系统是我正在开发的用于构建P2P应用程序的框架.它使用JXTA作为较低的子系统,试图隐藏它的一些复杂性.它目前是一个学术项目,所以我现在正在追求简约.

在我的测试中,我想证明一个对等体(在它自己的进程中运行,可能有多个线程)可以发现另一个(在另一个进程或甚至另一台机器上运行)并且它们可以交换一些消息.我不使用模拟器或存根,因为我需要看到双方同时工作.我意识到需要某种协调机制,PNUnit似乎能够做到这一点.

我已经碰到了像Pisces这样的一些计划,它们"旨在提供扩展JUnit的分布式测试环境,让开发人员/测试人员能够运行远程JUnit并创建由多个并行运行的远程JUnit测试组成的复杂测试套件或连续",但这个项目和我发现的其他一些似乎已经很久了.

java unit-testing distributed-system

10
推荐指数
1
解决办法
2963
查看次数

10
推荐指数
1
解决办法
3600
查看次数

分布式系统中的顺序一致性

我正在学习分布式系统中的顺序一致性,但是无法理解所解释的术语。如果有人可以就以下(a)和(c)为何顺序一致而(b)不一致的外行人的术语有所了解,我将不胜感激。谢谢。在此处输入图片说明

consistency distributed-system sequential

10
推荐指数
1
解决办法
3788
查看次数

PHP会话难以在分布式系统中扩展吗?

在工作中我们几乎用Java和perl做所有事情,但我想用PHP和会话构建一个功能.一些人认为尝试在我们的系统上进行PHP会话是一个坏主意,因为它会分发给许多服务器.具体问题是什么?

php session distributed-system

9
推荐指数
2
解决办法
5263
查看次数

我可以使用什么库来进行简单,轻量级的消息传递?

我将启动一个需要在分布式节点之间进行通信的项目(该项目使用C++).我需要一个轻量级的消息传递库来传递节点之间非常简单的消息(基本上只是文本字符串).该库必须具有以下特征:

  1. 无需外部设置.我需要能够在我的代码中启动并运行所有内容 - 我不想要求用户安装任何软件包或编辑任何配置文件(除了要连接的IP地址和端口列表).

  2. 库使用的基础协议必须是TCP(或者如果它是UDP,则库必须保证最终接收消息).

  3. 该库必须能够发送和接收任意大的字符串(最多3GB +).

该库不需要支持任何安全机制,容错或加密 - 我只需要它快速,简单和易于使用.我考虑过MPI,但总结说在我的项目用户的机器上需要设置太多.

你会为这样一个项目推荐什么样的图书馆?我会自己动手,但由于时间限制,我认为这不可行.

c++ message-passing distributed-system

9
推荐指数
1
解决办法
6233
查看次数

ZooKeeper和任何分布式Key-Value商店之间有什么区别?

我是zookeeper和分布式系统的新手,我自己也在学习它.

根据我现在的理解,似乎ZooKeeper只是一个键值存储,其键是路径,值是字符串,这与Redis没什么不同.(显然我们也可以使用斜线分隔的路径作为redis中的键.)

所以我的问题是,ZooKeeper和其他分布式KV商店之间的本质区别是什么?为什么ZooKeeper使用所谓的"路径"作为键,而不是简单的字符串?

distributed distributed-system key-value-store apache-zookeeper

9
推荐指数
2
解决办法
4090
查看次数

微服务 - 事件存储技术(在事件溯源解决方案中)是否在所有微服务之间共享?

就我目前的一点点了解,“微服务”的核心概念之一就是它依赖于自己的数据库,独立于其他微服务。

深入探讨如何在微服务系统中处理分布式事务,最好的策略似乎是事件溯源模式,其核心是事件存储。

事件存储是否在不同的微服务之间共享?或者每个微服务都有多个独立的事件存储数据库和一个公共事件代理?

如果第一个选项是解决方案,使用 CQRS 我现在可以假设每个微服务的数据库都用作查询端,而共享事件存储在命令端。这是一个错误的假设吗?

既然我们在这个主题中:如果使用乐观锁定在 Stream 中进行并发写入,我必须重试多少次?

非常感谢您给我的每一条建议!

distributed-computing distributed-system event-sourcing microservices

9
推荐指数
1
解决办法
740
查看次数

严格序列化和外部一致性的区别

我关注这个很棒的博客。在这篇博客中,作者对所有类型的隔离和一致性以及它们之间的关系进行了完整的描绘。 在此处输入图片说明

但是基于谷歌的博客,还有另一种类型的一致性External Consistency,它是由谷歌的 Spanner 数据库提供的。据我了解:

External consistency = Strongly Consistency + Strict Serializable
Run Code Online (Sandbox Code Playgroud)

经过一番研究,外部一致性的定义可能是:

对于任意两个事务 1 和 2(即使在地球的两侧):如果 2 在 1 完成提交后开始提交,则 2 的时间戳大于 1 的时间戳。

我还没有看到之间的差异External consistencyStrict Serializability。请给我一个它满足Strict Serializability但不满足的例子External Consistency

谢谢

database distributed-system google-cloud-spanner

9
推荐指数
2
解决办法
1149
查看次数

您将如何在分布式系统中编写强读后写一致性?

最近,S3宣布了强读写一致性。我很好奇如何编程。它不违反CAP定理吗?

在我看来,最简单的方法是等待复制发生然后返回,但这会导致性能下降。

AWS 表示没有性能差异。这是如何实现的?

另一个想法是亚马逊有一个巨大的索引表,可以跟踪所有 S3 对象及其存储位置(我相信是三重复制)。它需要在每次 PUT/DELTE 时更新此索引。这在技术上可行吗?

distributed-system amazon-s3 amazon-web-services cap-theorem

9
推荐指数
1
解决办法
243
查看次数

如何使我的Java Swing应用程序成为客户端 - 服务器应用程序?

我制作了一个Java Swing应用程序.现在我想把它变成一个Client-Server应用程序.当服务器上的数据发生变化时,应通知所有客户端,因此我不会寻找Web服务.Client-Server应用程序将在单个LAN上运行,它是一个业务应用程序.服务器将包含一个数据库JavaDB.

什么技术和库最容易入手?我应该使用套接字从头开始实现它,还是应该使用Java RMI,或者JMS?或者还有其他更容易入手的替代方案吗?

我应该使用任何服务器库吗?Jetty是替代品吗?

java networking swing client-server distributed-system

8
推荐指数
1
解决办法
9380
查看次数