标签: high-availability

故障服务的挑战和最佳实践

有没有人知道运行Windows服务的任何已建立的最佳实践(在我的情况下,在.NET中开发),以便它们(自动)正确地故障转移到另一台服务器,以实现高可用性?

我可以看到这样做的主要方式是在需要时启动辅助服务器(在这种情况下需要监视其他服务器的东西),或者让两个服务一起运行(在这种情况下,他们需要同步他们的工作所以他们不会尝试做同样的事情).

是否存在针对此类问题的模式或模型?我知道确切的情况会产生很大的不同,但这似乎是一个相当普遍的问题.

谢谢

约翰

design-patterns windows-services high-availability

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

Linux HA /集群:Pacemaker,Heartbeat,Corosync,wackamole有什么区别?

你能帮我理解Linux HA吗?

  • Pacemaker,Heartbeat,Corosync似乎是整个HA堆栈的一部分,但它们如何组合在一起?
  • wackamole与Pacemaker/Heartbeat/Corosync有何不同?我已经看到wackamole比Heartbeat更好的意见,因为它是基于同伴的.这有效吗?
  • 最后一次发布的wackamole是在2.5年前.它仍在维持或活跃吗?
  • 对于Web /应用程序/数据库服务器的HA设置,您会建议什么?

linux high-availability reliability cluster-computing heartbeat

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

HBase Cluster-无法通过phoenix客户端连接到hbase

我正在尝试通过Phoenix连接HBase集群.首先,我将Phoenix客户端和查询服务器jar文件复制到HMaster和HRegion lib文件夹,然后重新启动HBase服务.

服务器 - 通过/bin/queryserver.py启动Phoenix服务器.它运行正常.

客户 - AvaticaClientRuntimeException: Remote driver error: RuntimeException: java.sql.SQLException: No suitable driver found for "http://hacluster:8764".

记录详情

高可用性集群的Hbase-site.xml文件配置

<property>
  <name>hbase.master</name>
  <value>activenamenode:60000</value> 
</property> 
<property> 
  <name>hbase.rootdir</name> 
  <value>hdfs://hacluster/HBase</value>
</property> 
<property> 
  <name>hbase.cluster.distributed</name> 
  <value>true</value> 
</property> 
<property> 
  <name>hbase.zookeeper.quorum</name> 
  <value>zk1,zk2,zk3</value> 
</property> 
<property> <name>hbase.rpc.timeout</name> 
  <value>60000</value>
<property>
Run Code Online (Sandbox Code Playgroud)

它在伪节点集群上工作.但在启用HA的Hadoop集群中失败了.

在HA Cluster中,我为文件中的hbase.rootdir属性设置了活动的namenode url而不是HA nameservice hbase-site.xml.

hbase high-availability phoenix

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

Kafka:高可用最少需要多少个broker?

假设我想在小型部署的生产环境中拥有高度可用的 Kafka。我必须使用以下配置

min.insync.replicas=2 // Don't want to lose messages in case of 1 broker crash    
default.replication.factor=3 // Will let producer write in case of 1 replica disappear with broker crash
Run Code Online (Sandbox Code Playgroud)

如果 1 个 broker 崩溃并且 1 个副本消失,Kafka 会开始制作新副本吗?

在任何情况下,我们是否必须至少有default.replication.factor数量的经纪人才能继续工作?

high-availability apache-kafka kafka-cluster

7
推荐指数
2
解决办法
5391
查看次数

Redis 可用性和 CAP 定理

在CAP定理中,Redis被指定为缺乏可用性(具有分区容错性和一致性)的数据库。

但是在很多地方,Redis 被认为是一种高可用的键值存储。

CAP 定理和 DBMS

什么是对的?如果您能提供深入的答案,我将不胜感激。

high-availability consistency nosql redis key-value-store

7
推荐指数
2
解决办法
4192
查看次数

为什么会出现错误 1045 (28000):ProxySQL 服务器中的访问被拒绝?

我在 MySQL master 上设置了 proxysql 以进行读写分离。MySQL主从,proxysql服务器正在运行,但是,我Access denied在proxysql终端中收到错误。

[devops@DRMBUST05 ~]$ mysql -uproxysql -p**** -h 127.0.0.1 -P 6033
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.5.30 (ProxySQL)

Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of …
Run Code Online (Sandbox Code Playgroud)

mysql high-availability proxysql

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

Java HA框架

我写这应该是多余的小代理应用程序,如初级代理将一台服务器上运行,且冗余的一个将在单独的服务器上运行.是否有一个简单的高可用性框架,我可以用它来实现这种冗余?例如,此HA框架将在实例之间发送ping,并在第一个实例出现故障时在另一个实例上引发某种异常或通知.

java high-availability

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

使用memcached /一致性散列处理过时的数据

假设我在开头有两个memcached节点(节点A,B),当我添加一个新节点C时,一部分键被重新映射,并且由于一致的散列只有其中一些.

假设最初在服务器A处使用键" foo " 的值现在正被映射到服务器C.

当我最终删除节点C时,密钥应该再次映射到节点A,但此时节点A只包含过时数据.

那么,刷新数据是解决这个问题的唯一方法吗?

memcached high-availability spymemcached consistent-hashing

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

Erlang/OTP持续部署简介

注意:这是我之前关于类似主题的问题的进化延续.

我一直在寻找有关部署和更新Erlang/OTP版本(一组应用程序)的"最佳实践",但是我找不到任何直接的解决方案描述,但只能找到一些"相关信息":

http://blog.equanimity.nl/blog/2013/06/04/continuous-integration-for-erlang-with-travis-ci/

https://www.youtube.com/watch?v=G0eBDWigORY

https://www.youtube.com/watch?v=0ZGHzI9F5YE

我所说的"直接解决方案"是对以下问题的回答:

鉴于生产Erlang/OTP集群的Erlang/OTP版本在几个Erlang节点上运行,这些节点充当高可用性(24/7)REST API,如何定期将新代码推送到该生产集群?有没有最好的做法来做那些像git push heroku master Heroku一样简单的做法?如果没有,在生产中连续重新部署和Erlang/OTP软件的最简单方法是什么?

我已经阅读了"Erlang/OTP in Action"一书来了解如何处理Erlang/OTP应用程序和发行版,在我看来,简单的软件升级并不那么容易.使用reltool时必须生成存档,将该存档移动到生产机器(scp?),在那里解压缩,运行Erlang shell并将新模块加载到Erlang VM中.

另外,"Learn You Some Erlang"一书中指出了以下内容:

"...如果你可以避免整个过程(从现在开始称为relup)并通过重新启动VM并启动新应用程序来进行简单的滚动升级,我建议你这样做."

"有人说爱立信的部门使用relups会花费尽可能多的时间测试它们,就像测试应用程序本身一样."

此外,这是另一个建议,以避免生产中的Erlang版本的热交换.

如果这是真的,那么我没有看到'Erlang热代码升级'的任何用处,因为我必须在每次升级时重启VM.这让我不知道在生产中定期部署Erlang/OTP新代码的强大且经过测试的方法.

PS关于我的软件要求的一些注释.

  • 我正在编写一组没有任何会话的API入口点,因此在软件更新期间无需维护会话.
  • 没有必要分发Erlang/OTP版本,我正在使用内部定制产品.

erlang continuous-integration yaws high-availability erlang-otp

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

无需停机即可在 Docker Compose 堆栈中部署新映像

我们有一个多容器应用程序,它使用微服务架构,在 Docker Compose 中运行。

例如,当我对 Web 应用程序进行代码更改时,我需要使用新代码重建图像,然后在我的撰写堆栈中再次运行它,而无需任何停机时间。

这是我们正在使用的当前事件序列:

  1. 更改应用程序代码
  2. 重建镜像
  3. 推送图像(到 docker hub)
  4. docker-compose down
  5. docker-compose up

运行后docker-compose down,所有应用程序都关闭。然后docker-compose up将整个堆栈带回来。

有没有一种方法可以在 Docker Compose 中重新部署单个镜像而不会出现任何停机时间和整个应用程序堆栈?

high-availability docker docker-compose

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