如果我们在一个opscenter集群中有8个节点(主节点和辅助节点)和2个dc。我们有将近30个节点连接到这个opscenter,通过datastax代理进行监控。我的问题是,所有30个节点将进行几乎相等的连接和负载共享(将度量数据写入opscenter集群)?或者将更高的连接到主opscenter群集,而将更低的连接到备用群集?这方面的任何参考文件。提前谢谢。
zu0ti5jz1#
cluster\u name.conf文件的storage\u cassandra部分,特别是seed\u hosts、local\u dc\u pref和used\u hosts\u per\u remote\u dc,控制opscenterd如何连接到存储群集。就opscenterd进程本身而言,记录的行为是正确的。然而,代理的行为是不同的。opscenterd将storage\u cassandra seed\u hosts的值传递给相关集群的代理,这是每个代理将用于初始接触点的值,除非被代理的local address.yaml中的hosts设置覆盖。本地\u dc \u pref和已用\u hosts \u per \u remote \u dc设置不会传递给代理,对代理的行为没有影响。代理使用java驱动程序的defaultloadbalancingpolicy,即具有令牌感知的dcawareroundrobinpolicy。本地dc没有显式地传递给驱动程序,因此它会将本地dc视为它成功连接到的第一个主机的dc。这意味着每个代理将连接到存储群集的一个dc或另一个dc。热释光;dr:代理将只连接到代理能够联系的第一个活动节点的本地dc。不可能让一个代理连接到多个dcs。代理尝试连接到哪个节点是由cluster\u name.conf中配置的存储\u cassandra seed\u主机决定的,如果指定,则由代理的local address.yaml中配置的主机决定的。因此,如果希望某些代理连接到存储群集的一个dc,而其他代理连接到存储群集的另一个dc,则需要覆盖代理的address.yaml中的主机,并确保指定的第一个主机属于您希望该代理连接到的dc。请注意,如果不使用单独的存储群集,则代理仅连接到它正在监视的本地节点。
1条答案
按热度按时间zu0ti5jz1#
cluster\u name.conf文件的storage\u cassandra部分,特别是seed\u hosts、local\u dc\u pref和used\u hosts\u per\u remote\u dc,控制opscenterd如何连接到存储群集。就opscenterd进程本身而言,记录的行为是正确的。然而,代理的行为是不同的。
opscenterd将storage\u cassandra seed\u hosts的值传递给相关集群的代理,这是每个代理将用于初始接触点的值,除非被代理的local address.yaml中的hosts设置覆盖。本地\u dc \u pref和已用\u hosts \u per \u remote \u dc设置不会传递给代理,对代理的行为没有影响。
代理使用java驱动程序的defaultloadbalancingpolicy,即具有令牌感知的dcawareroundrobinpolicy。本地dc没有显式地传递给驱动程序,因此它会将本地dc视为它成功连接到的第一个主机的dc。这意味着每个代理将连接到存储群集的一个dc或另一个dc。
热释光;dr:代理将只连接到代理能够联系的第一个活动节点的本地dc。不可能让一个代理连接到多个dcs。代理尝试连接到哪个节点是由cluster\u name.conf中配置的存储\u cassandra seed\u主机决定的,如果指定,则由代理的local address.yaml中配置的主机决定的。因此,如果希望某些代理连接到存储群集的一个dc,而其他代理连接到存储群集的另一个dc,则需要覆盖代理的address.yaml中的主机,并确保指定的第一个主机属于您希望该代理连接到的dc。
请注意,如果不使用单独的存储群集,则代理仅连接到它正在监视的本地节点。