标签: high-availability

是否有可能在PostgreSQL中自动释放锁定?

我正在测试配置为JDBC Master/Slave的ActiveMQ系统的容错能力.在这个设置中有一个postgres数据库和两个代理 - 一个是主代理,另一个是从代理.这种机制的工作方式是master在db中的表上取出一个独占锁.从站也尝试执行此操作并等待锁定变为可用.如果主设备死机,则应释放锁定,从设备将接管.但是,如果主服务器与数据库失去网络连接,则永远不会释放锁定,从而导致死锁情况.这里似乎需要一种方法来告诉Postgres如果在指定的时间内没有续订,就会自动释放锁.POSA 3设计模式书将其称为租赁模式.是否有可能让Postgres这样做?如果没有,其他数据库供应商是否支持它?

database postgresql locking high-availability

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

使用 Redis 与 Sentinel 和 redis-py 时如何故障转移到新的主节点?

订阅Sentinel故障转移,Channel的名称是什么,如何在订阅的函数中检测到需要刷新master?

我有一个使用 Redis Sentinel 实现高可用性和故障转移的多节点 Redis 设置。

我需要为 Redis 设置一个 Pub/Sub 来检测 Redis Master 何时发生故障并且系统何时选举了新的 Master。

_sentinel = redis.sentinel.Sentinel([(app.config["REDIS_HOSTNAME"],app.config["REDIS_SENTINEL_PORT"])])
_master = _sentinel.master_for(app.config["REDIS_SERVICE_NAME"])

def _sentinel_message_handler(message):
    #TODO how do I detect that there is a new Redis Master?

_pubsub = _master.pubsub()
_pubsub.subscribe(**{app.config["TODO"]:_sentinel_message_handler})
Run Code Online (Sandbox Code Playgroud)

python failover high-availability redis redis-py

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

从磁盘上的文件读取哈希

这是我保存到文件中以供以后读取的哈希。

my_hash = {-1 => 20, -2 => 30, -3 => 40}
File.open("my_file.txt", "w") { |f| f.write my_hash }
#how it looks opening the text file
{-1 => 20, -2 => 30, -3 => 40}
Run Code Online (Sandbox Code Playgroud)

当我阅读它时,是我的问题所在。(以下代码与顶部分开)

my_hash = File.foreach("my_file.txt") { |f| print f }
p my_hash
#=> {-1 => 20, -2 => 30, -3 => 40}nil
Run Code Online (Sandbox Code Playgroud)

nil弄乱了我其余的代码..不确定如何摆脱如果。为了清楚起见,其余代码...

back_up_hash = {-1 => 20}
if my_hash.nil?
  my_hash = back_up_hash
end
Run Code Online (Sandbox Code Playgroud)

那一点nil总是使my_hash等于back_up_hash。我需要.nil?以防万一该文件没有哈希,否则问题将被进一步推低。

我还尝试读取(抓取?..这是一个小文件)这样的文件。

my_hash = File.read("my_file.txt") { …
Run Code Online (Sandbox Code Playgroud)

ruby high-availability

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

我们如何在prometheus数据存储中获得高可用性?

我是prometheus的新手,所以我不确定高可用性是否是Prometheus数据存储tsdb的一部分.我没有考虑让两个prometheus服务器实例从同一个导出器中抓取数据,因为它很可能有两个不同步的tsdb数据存储.

high-availability prometheus

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

Cassandra 中的高可用性

1) 我有5 个节点集群 (172.30.56.60, 172.30.56.61, 172.30.56.62, 172.30.56.63, 172.30.56.129)

2)我创建了一个密钥空间,复制因子为 3
写入一致性为 3,我在表中插入了一行,分区为“1”,如下所示,

INSERT INTO user (user_id, user_name, user_phone) VALUES(1,'ram', 9003934069);

3) 我使用 nodetool getendpoints 实用程序验证了数据的位置,并观察到数据被复制到三个节点 60、129 和 62。

./nodetool getendpoints keyspacetest user 1
172.30.56.60
172.30.36.129
172.30.56.62
Run Code Online (Sandbox Code Playgroud)

4) 现在如果我关闭节点 60,Cassandra 需要将现有数据传输到'1,'ram', 9003934069'剩余节点(到 61 或 63)以将 RF 保持为“3”?

但是 Cassandra 没有这样做,所以这是否意味着如果节点 60、129 和 62 关闭,我将无法读取/写入表 'user' 中分区 '1' 下的任何数据?

问题1:所以即使我有5个节点的集群,如果它所在的数据/分区出现故障,集群就没有用了吗?

问题 2:如果两个节点关闭(例如:60 和 129 关闭)仍然 61,62 和 63 启动并运行,但我无法在写入一致性 = 3 的分区“1”中写入任何数据,为什么会这样?因为我能够以写入一致性 = 1 写入数据,所以这再次说明分区的数据仅在集群中的预定义节点中可用,无法重新分区?

如果我的问题的任何部分不清楚,请告诉我,我想澄清一下。

java high-availability cassandra cassandra-3.0

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

kafka bootstrap.servers作为具有多个IP的DNS A记录

我有一个由5个经纪人组成的Kafka集群,并且我正在使用Consul Service Discovery将其IP放入dns记录中。

kafka.service.domain.cc A 1.1.1.1 2.2.2.2 ... 5.5.5.5
Run Code Online (Sandbox Code Playgroud)

是否建议仅使用一个域名:kafka.bootstrap.servers = kafka.service.domain.cc:30000

还是拥有多个域名(至少2个)更好,每个域名都解析为一个经纪人

kafka1.service.domain.cc A 1.1.1.1
kafka2.service.domain.cc A 2.2.2.2
Run Code Online (Sandbox Code Playgroud)

然后在kafka中使用它们

kafka.bootstrap.servers = kafka1.service.domain.cc:30000,kafka2.service.domain.cc:30000
Run Code Online (Sandbox Code Playgroud)

我对第一种方法的担心是,域名将仅被随机代理解析一次,如果该代理关闭,则不会进行新的DNS解析。

high-availability resolve flume apache-kafka spark-streaming

1
推荐指数
2
解决办法
1794
查看次数

当副本集中的三个主节点中有两个离线时,Kubernetes 集群会发生什么情况?

我试图找出 kubernetes 主副本集中允许整个集群正常运行的 kubernetes 主节点的最小数量。他们的官方文档提到您需要三个主节点中的一个。

当您失去 3 个主节点中的 1 个时会发生什么?您可以在丢失副本集中的两个主节点的情况下让集群正常运行吗?

high-availability kubernetes

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

ELB是否会提高AWS架构的可用性?

我正在通过一次AWS认证的实践考试。问题之一如下:

 The web tier for an a pplication is running on 6 EC2 instances spread
 across 2 AZs behind a classic ELB.  The data tier is a MySQL database
 running on an EC2 instance.  What changes will increase the
 availability of the application? (select TWO)

 A: Turn on CloudTrail in the AWs account
 B: Migrate the MySQL database to a Multi-AZ RDS MySQL database instance
 C: Turn on cross-zone load balancing on the ELB
 D: Launch the web tier EC2 …
Run Code Online (Sandbox Code Playgroud)

high-availability amazon-web-services

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

使用以代码为中心的 Helm Charts 在 Kubernetes 高可用性集群(使用 ldap 作为用户联合)上的 Keycloak

我们想在 Kubernetes 上建立一个高可用的 Keycloak 集群(使用 ldap 作为用户联盟)。我们决定使用codecentrics helm charts,因为我们正在尝试将它们用于单个 Keycloak 实例设置并且效果很好。对于集群,我们在尝试正确设置所有内容时遇到了一些问题,但没有在广泛的互联网上找到最佳资源。因此,我决定写一个简短的总结,我们的主要问题在哪里以及我们如何解决这些问题。

本网站(除其他外)上描述的我们问题的解决方案,但描述的内容非常简短,感觉部分不完整。

我们在以下方面遇到的问题:

  1. 选择正确的 jgroups.discoveryProtocol
  2. 添加正确的 discoveryProperties
  3. 需要自己覆盖的部分 values.yaml

额外问题(我们已经面临单实例设置):

  1. 设置信任库以通过 ladps 作为用户联盟连接 ldap
  2. 为keycloak添加自定义主题

如果由于代码中心更新他们的掌舵图而发生变化,我将尝试更新它。

感谢 codecentrics 顺便提供了 helm charts!

high-availability kubernetes keycloak kubernetes-helm

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

如何使用SpringAMQP在RabbitMQ中设置策略?

我正在开发具有1个磁盘和2个ram节点的集群环境。任何人都可以解释如何使用Spring AMQP注释配置策略以在RabbitMQ代理中创建镜像队列。

提前致谢。

high-availability rabbitmq spring-amqp

0
推荐指数
1
解决办法
2275
查看次数

C#性能问题

quandry是 - 以下两种方法中的哪一种执行最佳
目标 - 获得类型为Wrapper(下面定义)
标准的对象- 速度超过存储
号.记录 - 约1000-约2000,最大约6K
选择 - 动态创建对象或从字典
执行查找执行速度 - 每秒调用x次

注意 - 我需要首先提供工作代码,然后进行优化,因此如果任何理论家可以提供场景信息背后的一瞥,那么在我进行实际性能测试之前可能会有所帮助.

定义 -

class Wrapper  
{  
   public readonly DataRow Row;  
   public Wrapper(DataRow dr)  
   {  
      Row = dr;  
   }  
   public string ID { get { return Row["id"].ToString(); } }  
   public string ID2 { get { return Row["id2"].ToString(); } }  
   public string ID3 { get { return Row["id3"].ToString(); } }  
   public double Dbl1 { get { return (double)Row["dbl1"]; } }  
   // ... total …
Run Code Online (Sandbox Code Playgroud)

.net c# optimization performance high-availability

-8
推荐指数
2
解决办法
324
查看次数