我对群集有很大的问题。由于未知原因,服务器会一直断开连接(日志中没有任何内容)并导致崩溃。 我想我可能有群集设置错误。Rethinkdb,错误的群集设置或其他?
首先,这是第一次,我的理解分片,这是伟大的功能,但什么是:
“每个碎片ñ副本”?
这是什么意思?
第二件事。如何使用“n”个服务器配置群集?我有6个服务器,因为分片(我有几个文档多于10mil记录),但我不确定是否正确配置了我的集群。
在我写的每一个服务器:
for example (srv1.conf)
join=srv2:port
join=srv3:port
join=srv4:port
join=srv5:port
join=srv6:port
是增加服务器集群这个正确的方式?
文档中没有任何内容,如果您可以发布一些“推荐”的集群配置,那将是非常好的。
第三件事是关于故障转移。在我的6个集群服务器中,所有表都有三个副本的6个
分片。一旦我吼叫,例如服务器1的应用程序崩溃,一些疯狂的写入群集。如果某些其他服务器出现故障时没有冗余,什么是集群点?
我真的希望有人能帮助我,因为当我只有一台服务器时,我的应用程序一直在工作。现在每当有些服务器断开连接时,所有事件都会崩溃。我正在使用nodejs rethinkdbdash。
UPDATE
我知道什么是分片,我有例如一个表2密耳的记录和他们6个的服务器之间分配(对我来说,这是因为读取速度很重要)。我不明白什么是“副本”。每个表都是这样配置的,每个分片有6个分片和3个副本。从你所说的这意味着如果某个服务器出现故障表可供读取,但它不是(像设置read_mode =过时和应用程序崩溃)。我没有办法改变正在读取的应用程序的每一部分,并说read_mode =过期。这只是糟糕的编程。
日志中没有任何东西。在dmesg的每个服务器我有这样的:
TCP: TCP: Possible SYN flooding on port 28015. Sending cookies. Check SNMP counters.
你可以看看我的更新。 – pregmatch
我已经解释了我的文章中有哪些副本,因为它们只是一个分片的副本。你描述的内容听起来像是驱动程序连接的问题,而不是集群通信(即它不是数据库的错误,这是你的应用程序/驱动程序的错误)。你使用什么数据库驱动程序?您是否使用可能被分组到单个查询中的查询发送服务器垃圾邮件?您是否试图一次运行大量查询(超过1000个)?如果是这样,您的驱动程序可能会为每个连接创建更多连接,并导致连接问题。 – 1lann
服务器正在脱机,然后表正在重新配置。我有6台服务器,每张桌上有6个碎片,每个碎片有3个副本。 – pregmatch