有没有人知道运行Windows服务的任何已建立的最佳实践(在我的情况下,在.NET中开发),以便它们(自动)正确地故障转移到另一台服务器,以实现高可用性?
我可以看到这样做的主要方式是在需要时启动辅助服务器(在这种情况下需要监视其他服务器的东西),或者让两个服务一起运行(在这种情况下,他们需要同步他们的工作所以他们不会尝试做同样的事情).
是否存在针对此类问题的模式或模型?我知道确切的情况会产生很大的不同,但这似乎是一个相当普遍的问题.
谢谢
约翰
你能帮我理解Linux HA吗?
linux high-availability reliability cluster-computing heartbeat
我正在尝试通过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.
假设我想在小型部署的生产环境中拥有高度可用的 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数量的经纪人才能继续工作?
我在 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) 我写这应该是多余的小代理应用程序,如初级代理将一台服务器上运行,且冗余的一个将在单独的服务器上运行.是否有一个简单的高可用性框架,我可以用它来实现这种冗余?例如,此HA框架将在实例之间发送ping,并在第一个实例出现故障时在另一个实例上引发某种异常或通知.
假设我在开头有两个memcached节点(节点A,B),当我添加一个新节点C时,一部分键被重新映射,并且由于一致的散列只有其中一些.
假设最初在服务器A处使用键" foo " 的值现在正被映射到服务器C.
当我最终删除节点C时,密钥应该再次映射到节点A,但此时节点A只包含过时数据.
那么,刷新数据是解决这个问题的唯一方法吗?
我一直在寻找有关部署和更新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关于我的软件要求的一些注释.
erlang continuous-integration yaws high-availability erlang-otp
我们有一个多容器应用程序,它使用微服务架构,在 Docker Compose 中运行。
例如,当我对 Web 应用程序进行代码更改时,我需要使用新代码重建图像,然后在我的撰写堆栈中再次运行它,而无需任何停机时间。
这是我们正在使用的当前事件序列:
docker-compose down docker-compose up运行后docker-compose down,所有应用程序都关闭。然后docker-compose up将整个堆栈带回来。
有没有一种方法可以在 Docker Compose 中重新部署单个镜像而不会出现任何停机时间和整个应用程序堆栈?
apache-kafka ×1
consistency ×1
docker ×1
erlang ×1
erlang-otp ×1
hbase ×1
heartbeat ×1
java ×1
linux ×1
memcached ×1
mysql ×1
nosql ×1
phoenix ×1
proxysql ×1
redis ×1
reliability ×1
spymemcached ×1
yaws ×1