테스트 컨테이너, mariadb, 샤딩 구 및 플라이웨이
테스트 컨테이너, mariadb, 샤딩스피어 및 플라이웨이를 사용한 설정에서 통합 테스트를 설정하는 방법에 영감을 줄 수 있는 몇 가지 정말 좋은 예를 찾고 있습니다.
3개의 샤드가 필요하기 때문에 다음과 같이 각 샤드에 하나씩, 3개의 다른 데이터 소스를 초기화해야 할 것 같습니다.
spring:
config:
activate:
on-profile: test
shardingsphere:
datasource:
names: test-api-1, test-api-2, test-api-3,
test-api-1:
type: org.apache.commons.dbcp2.BasicDataSource
driver-class-name: org.testcontainers.jdbc.ContainerDatabaseDriver
url: jdbc:tc:mariadb:10.6.7:///
validationQuery: /* ping */ select 1
name: testapi01
username: root
password: root1234
test-api-2:
type: org.apache.commons.dbcp2.BasicDataSource
driver-class-name: org.testcontainers.jdbc.ContainerDatabaseDriver
url: jdbc:tc:mariadb:10.6.7:///
validationQuery: /* ping */ select 1
name: testapi02
username: root
password: root1234
test-api-3:
type: org.apache.commons.dbcp2.BasicDataSource
driver-class-name: org.testcontainers.jdbc.ContainerDatabaseDriver
url: jdbc:tc:mariadb:10.6.7:///
validationQuery: /* ping */ select 1
name: testapi03
username: root
password: root1234
제가 이해할 수 없는 것은 플라이웨이를 제대로 구성하는 방법입니다.결론적으로, 저는 저를 올바른 방향으로 인도할 수 있는 몇 가지 좋은 실제 사례를 찾고 있습니다.또한 위의 가정이 틀리면 언제든지 저를 수정해주세요.
지금까지 단일 데이터 소스를 기반으로 통합 테스트를 실행해 왔습니다. 데이터베이스 마이그레이션과 같은 운영 환경에서 테스트를 수행하는 것이 주요 초점이었습니다.하지만 하드 선택을 변경하는 실험을 할 때는 여러 개의 하드도 테스트해야 합니다.
사실, 두 가지 방법이 있습니다.
먼저 flyway와 함께 shardingsphere-jdbc를 사용하는 경우 별도로 구성할 수 있습니다.즉, 여기서는 3개의 DB를 샤딩에 사용하고 이 3개의 DB와 모든 샤딩 실제 테이블을 플라이웨이에 알려주어야 합니다.샤딩구-jdbc가 플라이웨이의 변경 사항을 인식할 수 없기 때문에 이 방법으로 드리프트 문제가 발생합니다.
둘째, 샤딩구 프록시를 사용하여 마이그레이션을 위한 샤딩 및 플라이웨이를 수행합니다.샤딩구-proxy는 샤딩구-jdbc와 동일한 기능을 공유하고 다음과 같이 작동하기 때문입니다.database server
따라서 ShardingSphere-Proxy [1]를 사용하여 많은 논리 분할 테이블이 있는 논리 분할 데이터베이스를 생성할 수 있습니다.그런 다음 이 논리 DB와 샤딩 테이블, 사용자 이름 및 암호로 이동 경로를 알려줍니다.
flyway.user=shardingsphere-proxy-username # Defined in a server.yaml file.
flyway.password=shardingsphere-proxy-databasePassword # Defined in a server.yaml file.
flyway.schemas=shardingsphere-proxy-schemaName # Defined in a config-sharding.yaml file.
[1] https://shardingsphere.apache.org/document/5.2.1/en/user-manual/shardingsphere-proxy/startup/
언급URL : https://stackoverflow.com/questions/74517819/testcontainers-mariadb-shardingsphere-and-flyway
'programing' 카테고리의 다른 글
Twitter 부트스트랩 모달:슬라이드 다운 효과를 제거하는 방법 (0) | 2023.07.29 |
---|---|
Docker의 env-file에 해당하는 Kubernetes (0) | 2023.07.29 |
Liquibase 업데이트 오류 (0) | 2023.07.29 |
매크로의 타일(~)은 무엇을 의미합니까? (0) | 2023.07.29 |
주입된 모의 객체의 메서드에 전달된 인수를 Mockito가 캡처하는 방법은 무엇입니까? (0) | 2023.07.29 |