我一直在探索MySQL JDBC驱动程序,并了解它能够使用此URL进行负载平衡(“jdbc:mysql:loadbalance://”)。
我查看了文档,似乎只有随机和最佳响应时间方法用于负载平衡(链接:http://dev.mysql.com/doc/refman/5.0/es/connector-j-reference-configuration-properties.html语法是loadBalanceStrategy)。
问题
引自https://dev.mysql.com/doc/refman/5.1/en/mysql-cluster-basics.html - “可以修改使用MySQL Cluster作为数据源的MySQL客户端,以利用连接多个MySQL服务器的能力来实现负载平衡和故障转移。例如,使用Connector / J 5.0.6及更高版本的Java客户端可以使用jdbc :mysql:loadbalance:// URL(在Connector / J 5.1.7中进行了改进)以透明地实现负载平衡;有关将Connector / J与MySQL Cluster一起使用的更多信息,请参阅将Connector / J与MySQL Cluster一起使用。“
- 醇>
引自https://dba.stackexchange.com/questions/11789/load-balanced-mysql-cluster-without-load-balancer - “生产服务器上的复制延迟可能会达到一秒钟 - 我已经在远程主机托管和数据中心测试了这一点,99%的时间它是0但是有时mysql显示1s。在大量流量上我遇到很多冲突,因为客户端应用程序发出两个请求导致两个查询,插入和选择。在某些情况下,行还没有,所以我们使用了userID的哈希它解决了问题“
回应Howard的回复,这些是我在发布此问题之前所做的一些事情 - 我尝试使用roundRobinLoadBalance作为JDBC连接字符串(URL)的一部分,但发生了一个错误,指出它不受支持。在互联网上搜索也表明其他人也在尝试使用roundRobinLoadBalance时遇到问题。因此,我试图看看是否有另一种方法可以做到。
答案 0 :(得分:1)
Q1)有没有办法将roundrobin配置为负载均衡策略?
Round-roubin的 负载平衡算法为每台服务器提供相同的负载。当所有服务器的性能相同时,使用它是有意义的。
另一方面,加权循环 允许每台服务器进行负载均衡配置。当您拥有不同性能的服务器时,这是有道理的。
例如对于Glassfish,请阅读:Weighted Round Robin
Q2)为MySQL ndb集群实现负载均衡(我对任何负载均衡策略开放)是个好主意(Multimaster 同步复制)?顺便说一句,我只有2台机器 充当主人并且两者都能够接收写入和读取。 虽然MySQL提到了JDBC驱动程序与ndb集群的使用 (请参阅下面的引文1),我想知道是否使用负载平衡 多主机ndb集群实际上会恶化性能(参考 引用2)?
如果两台服务器的性能相同,则无需配置负载均衡。它会平均分配每个节点的负载。
在循环中,负载平衡将平等地利用每个服务器。
如果一台服务器比另一台服务器更快,功能更强大,您可能希望使用加权循环法在更快的服务器上配置更多负载。
<强>参考强>:
http://docs.oracle.com/cd/E26576_01/doc.312/e24934/http-load-balancing.htm http://msdn.microsoft.com/en-us/library/ff648960.aspx