P1和P2是集群中的进程或节点.f1和f2是他们的旗帜.假设强大的内存模型,并且两个进程可以在任何时刻重新启动,并且重新启动进程会清除它的标志,这是我提出的算法,但是还没有打破,但这让我感到困扰,因为它没有在理论上得到证实和与彼得森相比看起来太简单了.
P1 start:
set f1
if f2 set then clear f1, wait some, goto start
else enter critical section
do whatever
clear f1
P2 start:
set f2
if f1 set then clear f2, wait some, goto start
else enter critical section
do whatever
clear f2
Run Code Online (Sandbox Code Playgroud)
任何人都可以看到流量吗?除了可能是其中一个进程可能通过快速重新进入该部分而使另一个进程挨饿?
我正在使用 Ubuntu 9,并使用以下命令启动两个节点:
erl -name node1 -setcookie demo
和
erl -name node2 -setcookie demo
然而,当我运行“nodes()”时,节点彼此看不到,它返回一个空列表。有谁知道为什么?
我正在运行一个小型系统,它依赖于Hazelcast在多播模式下进行群集,分布式计算和消息传递(下载中提供标准配置).我有许多服务器模块作为"核心"Hazelcast实例运行,Java Swing应用程序作为Hazelcast"Native Client"实现.这一切都很好,我现在想要在生产中调试系统,因此需要运行两个独立的集群(dev + prod),这就是我遇到问题的地方.
根据文档,你需要的是为两个集群使用单独的组名+密码,我得到的印象是两个集群应该自动排序!?这似乎适用于服务器模块,但是当我尝试将"客户端"实例连接到prod环境时,我可以从prod中的一个服务器模块的日志中看到客户端似乎成功连接:
INFO: [prod] received auth from Connection [/192.168.0.2:55863 -> null] live=true,
client=true, type=JAVA_CLIENT, this group name:prod, auth group name:prod,
successfully authenticated
Run Code Online (Sandbox Code Playgroud)
但是,客户永远不会成为prod的成员.相反,我发现客户端已成为开发环境的成员,即使对生产进行了身份验证!
对于我来说,两个星团的无声混合显然是一个巨大的问题.有没有人知道我做错了什么或者我是否可以做任何配置更改来解决问题?
我使用以下代码来利用群集npm为我的节点应用程序.
form = require("connect-form");
express = require("express");
app = express.createServer(form({ keepExtensions: true }));
cluster = require("cluster");
// App configuration
// ....
// Run on cluster
cluster( app )
.use(cluster.logger('logs'))
.use(cluster.stats())
.use(cluster.pidfiles('pids'))
.use(cluster.cli())
.listen(port);
Run Code Online (Sandbox Code Playgroud)
这在节点0.4.4上工作正常,但我最终在节点0.6.5上出现以下错误
luc @ localhost:〜/ server $ node app.js
node.js:201
throw e; // process.nextTick error, or 'error' event on first tick
^
TypeError: Property 'cluster' of object #<Object> is not a function
at Object.<anonymous> (/home/luc/server/app.js:15:1)
at Module._compile (module.js:432:26)
at Object..js (module.js:450:10)
at Module.load (module.js:351:31)
at Function._load (module.js:310:12)
at …Run Code Online (Sandbox Code Playgroud) 我正在使用基于PBS的集群,并在一组节点上运行IPython并行,每个节点有24或32个内核,内存范围从24G到72G; 这种异质性是由于我们的集群有历史.另外,我发送给IPython集群的作业有不同的资源要求(核心和内存).我正在寻找一种方法来向ipython集群提交工作,这些工作了解他们的资源需求以及可用引擎的资源需求.我想有一种方法可以使用IPython功能优雅地处理这种情况,但我还没有找到它.有关如何进行的任何建议?
我已经配置了HttpServer2.2实现load balancing和Clustering我的java应用程序.
但Load Balancing工作正常,Clustering(session replication)不起作用.
我worker.properties的HttpServer意志是,
workers.java_home=C:/Program Files/Java/jdk1.6.0_25
#worker.list=worker1,worker2
worker.list=balancer
worker.worker1.port=8009
worker.worker1.host=localhost
worker.worker1.type=ajp13
worker.worker1.lbfactor=1
worker.worker2.port=8019
worker.worker2.host=192.168.100.84
worker.worker2.type=ajp13
worker.worker2.lbfactor=1
worker.balancer.type=lb
worker.balancer.balance_workers=worker1,worker2
worker.balancer.method=B
# Specifies whether requests with SESSION ID's
# should be routed back to the same #Tomcat worker.
worker.balancer.sticky_session =True
Run Code Online (Sandbox Code Playgroud)
而且httpd.conf意志是,
<IfModule jk_module>
JkWorkersFile conf/workers.properties
JkLogFile logs/mod_jk.log
JkLogLevel info
JkMount /CustomerChat_V1.02.00 balancer
JkMount /CustomerChat_V1.02.00/* balance
</IfModule>
Run Code Online (Sandbox Code Playgroud)
在我server.xml的Tomcat one,
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" …Run Code Online (Sandbox Code Playgroud) java tomcat session-replication load-balancing cluster-computing
我在相同的数据中心有2个新的Ubuntu Linode,除了不同的节点名称之外,它们具有相同的ES配置.群集名称相同.他们每个人都可以互相卷曲ElasticSearch服务器并且还没有防火墙,但多播不起作用,我无法弄清楚原因.它们都将自己选为主节点,并且没有记录其他节点或集群的任何内容.
是否有任何理由为什么多播不能在这样的环境中工作?
什么是对redis-cluster进行基准测试的正确方法(最近在3.0 RC中发布).AFAIK,redis-benchmark实用程序仅访问群集的一个节点.
编辑:(详细信息)我没有任何群集的单个redis实例提供了~90 k设置/获取操作的吞吐量,但群集设置失败了很长时间.
设置1:8核心机器运行3个主站+ 3个从站的集群(全部在同一台机器上)我还在同一台机器上运行3个基准测试实用程序.每个主节点的吞吐量降至25 k.
这让我觉得我可能会为我的机器上的核心数量运行太多的进程.
设置2:我更新设置以拥有3个主设备和0个从设备.有趣的是,这也无济于事,每台机器的吞吐量仍为25 k
我正在运行的基准测试命令是:redis-benchmark-7000 -n 10000000 -t set,get
在这方面的任何帮助将不胜感激.
我有一个带Compose.io的Elasticsearch集群,但我无法与Elastica Client连接.这是我的配置:
$elasticaClient = new \Elastica\Client(array(
'servers' => array(
array('host' => 'https://myusername:mypass@aws-us-east-1-portal2.dblayer.com', 'port' => 10050),
array('host' => 'https://myusername:mypass@aws-us-east-1-portal3.dblayer.com', 'port' => 10062)
)
));
$elasticaIndex = $elasticaClient->getIndex('test');
Run Code Online (Sandbox Code Playgroud)
我收到了这个错误:
无法解析主机500内部服务器错误
如何正确连接数据库?
我必须创建并配置两个节点的WSO2 EI集群。特别是,我必须将ESB配置文件和MB配置文件聚类。
我对此有一些架构上的疑问:
聚类ESB配置文件的疑问:
我的假设基于此文档:https : //docs.wso2.com/display/EI640/Clustering+the+ESB+Profile
我发现此部分:
请注意,某些生产环境不支持多播。但是,如果您的环境支持多播,则将其用作成员身份方案没有任何问题
不支持多播的原因可能是什么?(所以我可以告知它可能存在的问题)。在表格中(在上一个链接内),在我看来,可能的问题可能与以下几点有关:
从系统\网络工程师处获取此信息是否足以决定是否继续使用多播选项?
使用多播而不是WKA,我需要执行与“安装注册表”和“创建\连接到数据库”有关的第一个部署方案(基于WKA的方案)中列出的相同配置步骤(如第一个文档链接所示) )?
在向群集添加新节点时,使用多播而不是WKA是否可以使我不停止服务?
群集MB配置文件:
据我了解,MB配置文件群集只能使用WKA作为成员身份方案。使用WKA是否意味着在向群集添加新节点时必须停止服务?
那么最后我们是否可以考虑ESB群集和MB群集两个不同的群集?ESB群集(如果使用多播配置)是否需要在添加新节点而停止MB群集以添加新节点时停止该服务?
wso2 cluster-computing wso2esb wso2-message-broker wso2-enterprise-integrator