programing

SpringBoot 앱에서 Ubuntu 16.04의 MariaDB Galera 클러스터에 액세스

codeshow 2023. 9. 9. 10:21
반응형

SpringBoot 앱에서 Ubuntu 16.04의 MariaDB Galera 클러스터에 액세스

우분투 16.04에 마리아DB 갈레라 클러스터를 2개의 노드에 설치했습니다.

node1의 정보는 다음과 같습니다.

root@localhost:~# sudo more /etc/mysql/conf.d/galera.cnf
[mysqld]
binlog_format=ROW
default-storage-engine=innodb
innodb_autoinc_lock_mode=2
bind-address=0.0.0.0
# Galera Provider Configuration
wsrep_on=ON
wsrep_provider=/usr/lib/galera/libgalera_smm.so
# Galera Cluster Configuration
wsrep_cluster_name="galera_cluster"
wsrep_cluster_address="gcomm://192.168.143.81,192.168.148.75"

# Galera Synchronization Configuration
wsrep_sst_method=rsync

# Galera Node Configuration
wsrep_node_address="192.168.143.81"
wsrep_node_name="Node1"

다음은 node2의 정보입니다.

mysqld]
binlog_format=ROW
default-storage-engine=innodb
innodb_autoinc_lock_mode=2
bind-address=0.0.0.0
# Galera Provider Configuration
wsrep_on=ON
wsrep_provider=/usr/lib/galera/libgalera_smm.so
# Galera Cluster Configuration
wsrep_cluster_name="galera_cluster"
wsrep_cluster_address="gcomm://192.168.143.81,192.168.148.75"

# Galera Synchronization Configuration
wsrep_sst_method=rsync

# Galera Node Configuration
wsrep_node_address="192.168.148.75"
wsrep_node_name="Node2”

저는 자바 앱에서 DB에 접속하고 있습니다. 이 속성들은 다음과 같습니다.

spring.datasource.url=jdbc:mysql://192.168.143.81:3306/can_peris_db
spring.datasource.username=peris
spring.datasource.password=3nRam0nD3L3s0l1v3s
spring.jpa.show-sql=false
spring.jpa.properties.hibernate.format_sql=true
hibernate.dialect=org.hibernate.dialect.MySQLDialect

모든 것이 정상적으로 작동하고 있으며 두 DB 모두에 데이터가 복제됩니다.그러나 서버를 종료했을 때 192.168.143.81 오류가 발생했습니다.java.net.NoRouteToHostException: No route to host (Host unreachable)

사용 가능한 호스트에 자동으로 연결할 수 있는 방법이 있습니까?

부동 IP를 설정하고 Keepalive를 설치해야 합니다.

몇 가지 선택 사항이 있습니다.MariaDB JDBC 커넥터 설명서를 살펴봅니다.

예를 들어 페일오버 체계만 사용하려면 다음과 같은 방법으로 jdbc URL을 설정해야 합니다.

jdbc:mariadb:sequential://mainHost,failoverHost/your_database?autoReconnect=true

"순차" 모드는 애플리케이션이 항상 첫 번째 호스트에 연결하고 첫 번째 노드를 사용할 수 없는 경우에만 페일오버 노드로 전환을 시도한다는 것을 의미합니다.

도움이 되길 바랍니다.

언급URL : https://stackoverflow.com/questions/51605405/accessing-to-a-mariadb-galera-cluster-on-ubuntu-16-04-from-springboot-app

반응형