Балансировка нагрузки MySQL ndbcluster
Я успешно настроил ndbcluster версии 7.1.26. Он содержит 2 узла данных [NDBD], 2 узла mysql [MYSQLD] и один узел управления [MGMD]. Репликация работает успешно. Мое веб-приложение развернуто в JBoss-5.0.1 и использует JNDI для ресурсов соединения, которые указаны в файле ds.xml для конкретного приложения в формах URL с балансировкой нагрузки, например, jbdc: mysql: loadbalance: host1: port1, host2: port2 / databaseName.
host1: ссылается на первый узел mysqld, а port1 ссылается на порт, на котором он работает. host2: ссылается на второй узел mysqld, а port2 ссылается на порт, на котором он работает.
Когда оба узла [MySQLD] запущены и работают, все работает нормально, и кластер хорошо реагирует, реплицирует данные, и операции извлечения данных также работают должным образом.
Но возникают проблемы, когда любой из узлов [MySQLD] выходит из строя. Данные вставляются / обновляются / реплицируются, но приложение не может извлечь данные из кластера, и веб-страница продолжает работать, что означает занятость извлечения данных. Как только узел, который был недоступен, поднимается, он отвечает должным образом, и приложение идет вперед и показывает данные, полученные из кластера.
При запуске JBoss 5.0.1 он обнаружил исключение NullPointerException в классе LoadBalancingConnectionProxy.invoke (LoadBalancingConnectionProxy.java:439). Скажите, играет ли указанное выше исключение какую-либо роль в вышеописанных вопросах?
Если кто-то сталкивался с проблемами, как указано выше, и если есть какое-либо решение по этим вопросам, пожалуйста, дайте мне знать.
Спасибо и всего наилучшего.
2 ответа
Я решил проблему, так как это была ошибка в версии разъема J. В качестве проекта, над которым я работаю, уже использовался как глючный jar mysql-connector-java-5.0.8.jar, так и версия jar, в которой проблема уже решена, т.е. mysql-connector-java-5.1.13-bin.jar, После всех поисков, когда я удалил jar mysql-connector-java-5.0.8.jar, мои проблемы были решены. Все, что было проблематично, это то, что ConnectorJ/Driver получал ссылки из глючного фляги. Идентификатор и URL ошибки, относящиеся к этой проблеме: http://bugs.mysql.com/bug.php?id=31053.
Спасибо за соображения.
Используете ли вы разные идентификаторы пользователей и пароли для каждого из хостов (host1, host2), указанных в теге? (Либо напрямую, либо с помощью тега)?