HA Datasource

일반적으로 HA Datasource를 구성할때는 datasource의 url에 Master-Slave의 주소를 모두 적어주는 방식을 많이 사용한다.
대표적인 예로 아래와 같다.

Configuring Server Failover

jdbc:mysql://[primary host][:port],[secondary host 1][:port][,[secondary host 2][:port]]...[/[database]][?propertyName1=propertyValue1[&propertyName2=propertyValue2]...]

위와 동일한 방법으로 아래와 같이 사용가능

jdbc:mysql://myhost1:1111,myhost2:2222/db
jdbc:mysql://address=(host=myhost1)(port=1111)(key1=value1),address=(host=myhost2)(port=2222)(key2=value2)/db
jdbc:mysql://(host=myhost1,port=1111,key1=value1),(host=myhost2,port=2222,key2=value2)/db
jdbc:mysql://myhost1:1111,(host=myhost2,port=2222,key2=value2)/db
mysqlx://(address=host1:1111,priority=1,key1=value1),(address=host2:2222,priority=2,key2=value2)/db

Configuring Server Load Balancing

jdbc:mysql:loadbalance://[host1][:port],[host2][:port][,[host3][:port]]...[/[database]] [?propertyName1=propertyValue1[&propertyName2=propertyValue2]...]

Oracle DB의 경우 RAC로 구성하면 매우 편리하게 사용할 수 있다. 일반적으로 Failover, Load Balancing등 모든것을 RAC가 관리하기 때문에 사용자나 WAS에서 설정해야할 부분이 거의 없다.

jdbc:oracle:thin:@(DESCRIPTION= 
    (LOAD_BALANCE=on)
    (ADDRESS=(PROTOCOL=TCP)(HOST=host1)(PORT=1521))
    (ADDRESS=(PROTOCOL=TCP)(HOST=host2)(PORT=1521))
    (CONNECT_DATA=(SERVICE_NAME=service_name))
)

JBoss의 Datasource경우
connection-urlurl-delimiter설정을 통해 여러개로 입력하고 url-selector-strategy-class-name를 통해 선택하게 하는 방법을 사용할 수 있다.

해당 내용은 연구가 필요함

로그인하면 댓글을 남길 수 있습니다.
  • ha_datasource.txt
  • 마지막으로 수정됨: 2019/06/14 17:10
  • 저자 koov