标签: distributed

小规模分布式C++应用程序的最佳方法

我正在分发一个独立的应用程序.应用程序的每个实例都必须能够发送和接收查询.

要求:

  1. 语言 - C++
  2. 规模 - 小.一次可能是5个实例
  3. 平台独立
  4. 传输的数据量预计会很高(最坏情况下的原始图像)

我不想使用RPC,因为它需要运行注册表服务.我认为CORBA和SOAP太过于开销.我有点决定使用自定义协议,但只想知道是否有更好的东西.

谢谢.

c++ soa rpc soap distributed

5
推荐指数
2
解决办法
1385
查看次数

是否有任何通用算法可实现分布式系统的最终一致性?

是否有任何算法通常用于实现分布式系统中的最终一致性?

有一些算法是为分布式系统中的ACID事务开发的,特别是Paxos,但是有一个类似的理论体系是为BASE场景开发的,具有较弱的一致性保证吗?

编辑:这似乎是一个刚刚开始发展的学术研究领域.Mcdowella的回答表明,该领域至少有一些工作.

algorithm distributed consistency eventual-consistency

5
推荐指数
1
解决办法
1501
查看次数

SQS /任务队列作业重试计数策略?

我正在使用Amazon SQS实现一个任务队列(但我想这个问题适用于任何任务队列),其中工作人员需要采取不同的操作,具体取决于已经重新尝试作业的次数(将其移至一个不同的队列,增加可见性超时,发送警报..等等)

什么是跟踪失败的工作计数的最佳方法?我想避免为工作保留一个集中式数据库:重试计数记录.我应该在监控过程中查看在队列中花费的时间吗?国际海事组织最好是丑陋或不干净,迭代工作直到找到古老的工作.

谢谢!安德拉斯

distributed amazon-sqs task-queue amazon-web-services

5
推荐指数
3
解决办法
5175
查看次数

哪种客户端 - 服务器通信方法?

基本上我需要双向客户端 - 服务器通信(Java),其中客户端调用服务器上的方法,但如果服务器中发生某些事件,还需要获得"回调".这些方法本身具有相当复杂的输入和输出参数,并且稍后将认证包括在系统中会很好.哪种方法符合我的要求?我已经使用RMI构建了一个原型,但我读到当c/s在不同的网络中时,存在许多问题,尤其是"回调".另外,我想避免JAX相关技术,因为我的参数中的复杂数据结构.

java distributed client-server communication

5
推荐指数
1
解决办法
371
查看次数

分布式基础架构中的OSGi

我们正在开发基于OSGi的基础设施来处理基于流的数据流.具体的处理任务由各个OSGi组件执行.我们现在需要在不同的机器上分发这些组件的可能性,这意味着我们需要OSGi组件/容器之间的某种通信机制.

在我的研究中,我遇到了不同的潜在解决方案:R-OSGi,用于分布式OSGi的Apache CXF,Eclipse通信框架.

ECF似乎特别有趣,因为它支持不同的传输格式,并为服务发现等内容提供支持.

我的核心问题:

  • 在Felix中设置ECF基础设施是否有详细的教程/演练?(根据我的研究,我发现最近添加了Felix支持)
  • 除了上面列出的三个我可能错过的解决方案之外还有其他方案吗?
  • 是否有理由采用Apache CXF而不是ECF?

distributed osgi dosgi

5
推荐指数
1
解决办法
457
查看次数

Matlab中的并行处理

我创建了两个函数:生成数据和处理数据.数据处理非常耗时,因此我想在并行线程中处理它们.但是我遇到了一些问题.首先,这是我的计划:

result = zeros(1, 10);

matlabpool open local 2
spmd
    for a = 1:5
        data = generate_data();
        display(sprintf('Received data on CPU%d: %d', labindex, data));
        result(end + 1) = process_data(data);
    end
    display(sprintf('All done on CPU%d', labindex));
end
matlabpool close
Run Code Online (Sandbox Code Playgroud)

并记录它返回的内容:

Starting matlabpool using the 'local' profile ... connected to 2 workers.
Lab 1: 
  Received data on CPU1: 100
Lab 2: 
  Received data on CPU2: 100
Lab 1: 
  Received data on CPU1: 101
  Received data on CPU1: 102
  Received data on CPU1: …
Run Code Online (Sandbox Code Playgroud)

parallel-processing matlab distributed

5
推荐指数
1
解决办法
412
查看次数

如何根据我的mapper输出大小动态设置reducer的数量?

我知道通过将mapred.min.split.size设置为dfs.block.size,可以根据我的dfs分割大小设置mapper的数量.

类似如何根据我的mapper输出大小设置减速器的数量?

PS:我知道以下选项可以用来操纵减速机的数量.mapred.tasktracker.reduce.tasks.maximum mapred.reduce.tasks

distributed hadoop mapreduce

5
推荐指数
1
解决办法
1832
查看次数

纱线AppMaster请求容器无法正常工作

我正在运行一个带有8个vCores和8Gb总内存的本地Yarn Cluster.

工作流程如下:

  1. YarnClient提交一个应用程序请求,用于在容器中启动AppMaster.

  2. AppMaster启动,创建amRMClient和nmClient,将自己注册到RM,然后通过amRMClient.addContainerRequest为工作线程创建4个容器请求

即使有足够的资源,也没有分配容器(永远不会调用回调函数onContainersAllocated).我尝试检查nodemanager和resourcemanager的日志,但我没有看到任何与容器请求相关的行.我密切关注apache文档,无法理解我做错了什么.

这里是AppMaster代码的参考:

@Override
public void run() {
    Map<String, String> envs = System.getenv();

    String containerIdString = envs.get(ApplicationConstants.Environment.CONTAINER_ID.toString());
    if (containerIdString == null) {
        // container id should always be set in the env by the framework
        throw new IllegalArgumentException("ContainerId not set in the environment");
    }
    ContainerId containerId = ConverterUtils.toContainerId(containerIdString);
    ApplicationAttemptId appAttemptID = containerId.getApplicationAttemptId();

    LOG.info("Starting AppMaster Client...");

    YarnAMRMCallbackHandler amHandler = new YarnAMRMCallbackHandler(allocatedYarnContainers);

    // TODO: get heart-beet interval from config instead of 100 default value
    amClient = AMRMClientAsync.createAMRMClientAsync(1000, this); …
Run Code Online (Sandbox Code Playgroud)

java distributed hadoop hadoop-yarn

5
推荐指数
1
解决办法
933
查看次数

Docker Swarm发现仍然相关吗?

我正在学习docker swarm,并对群发现选项感到困惑,我看到互联网上的很多教程都使用这个选项来创建带有docker-machine的容器,但是当我输入docker swarm doc上的文档时,它说:

您正在查看旧版独立Swarm的文档.这些主题描述了独立的Docker Swarm.在Docker 1.12及更高版本中,Swarm模式与Docker Engine集成在一起.大多数用户应该使用集成的Swarm模式.

那么,发现选项的用例是什么?所有教程都使用docker-machine创建一个swarm,我总是需要它,或者只是在我的集群中的机器上安装docker,将它们加入swarm并使用normal?

我看到了一些像Docker Swarm和的名字Docker Swarm Mode,是否有任何不同或只是不同的方式来调用相同的功能?

distributed cluster-computing docker docker-swarm docker-swarm-mode

5
推荐指数
1
解决办法
299
查看次数

并行映射和并行for循环之间的区别

当我阅读Julia的多核并行计算文档时,我注意到同时存在并行映射pmap和for-loop @distributed for

从文档中可以看出,“ Julia pmap是为每个函数调用都需要大量工作的情况而设计的。相比之下,Julia @distributed for可以处理每次迭代很小的情况”。

pmap和 之间有什么区别@distributed for?为什么@distributed for要花大量时间进行缓慢工作?

谢谢

parallel-processing distributed pmap julia

5
推荐指数
2
解决办法
179
查看次数