5.3. 데이터 브로커(data-service-broker) 구성
5.3.1. 공통 사항
로컬 데이터 브로커와 원격지 데이터 브로커의 환경 설정은 거의 유사합니다.
원격지 데이터 브로커가 로컬 데이터 브로커의 데이터를 조회하는 경우, 레지스트리에 저장된 로컬 데이터 브로커의 등록 정보를 참고합니다.
등록 정보는 해당 브로커의 접속 정보, 해당 브로커가 공유하는 데이터 정보를 담고 있습니다.
5.3.2. 환경 설정
data-service-broker
의 환경설정 파일(application.yml) 중 data-federation:
설정 항목을 다음과 같이 설정합니다.
# federation mode 환경 설정
server:
port: 8082
data-federation:
standalone: false # true: federation mode 비활성화, false: federation mode 활성화
csource:
id: urn:ngsi-ld:ContextSourceRegistration:1 # 로컬 데이터 브로커의 페더레이션 도메인 등록 ID. 페더레이션 도메인 내에서 유일한 값(unique). 임의의 패턴을 적용하거나 urn:ngsi-ld:ContextSourceRegistration:<임의값> 패턴 사용
endpoint: http://data-broker:<server.port> # 로컬 데이터 코어 모듈과 통신하기 위해 사용되는 접속 정보 (레지스트리 및 원격지 데이터 코어 모듈이 해당 접속 정보로 통신 시도함)
regist-interval-millis: 10 * 60 * 1000 # 레지스트리에 등록된 데이터 브로커 메타 정보를 가져오고 갱신하는 주기 설정
entity-infos:
- type: http://uri.citydatahub.kr/ngsi-ld/TestModel3 # 로컬 데이터 브로커가 공유하려는 데이터 모델(데이터 타입) 지정. 원격 데이터 브로커는 로컬 데이터 브로커가 공유한 데이터만 조회 가능
idPattern: urn:ngsi-ld:TestModel3:* # 로컬 데이터 브로커에 저장된 데이터(엔터티) 중 특정 데이터만 공유하려는 경우, 해당 데이터의 ID (엔터티 ID 또는 엔터티 ID의 패턴) 지정. 지정하지 않을 시, 해당 데이터 타입의 모든 데이터가 공유됨
# 공유하고자 하는 또 다른 데이터 모델 지정(여러개 가능, 아래 2개 라인(type: idPattern:) 재활용)
- type:
idPattern:
# 로컬 데이터 브로커의 위치 정보(GeoJSON 형식)를 메타 정보로 공유 가능. 제공하지 않을 시 빈 값 사용 (location: )
location: '{"type": "GeoProperty", "value": {"type": "MultiPolygon", "coordinates": [[[[127.11132,37.393653],[127.112555.37.393696],[127.1127577,37.3919996],[127.111459,37.391938],[127.11132,37.393653]],[[127.11012959288209,37.39406942288665],[127.1101210152688,37.395925535644096],[127.11249276673757,37.396031425685074],[127.11251239034895,37.394049159260064],[127.11012959288209,37.39406942288665]]]]}}'
operation: retrieveOps # 고정 값
mode: inclusive # 고정 값
# 로컬 데이터 브로커의 페더레이션 도메인 등록 정보 갱신을 위한 정보
subscription:
id: urn:ngsi-ld:ContextSourceRegistration:1 # data-federation.csource.id 와 동일한 값 사용 (로컬 데이터 브로커의 페더레이션 도메인 등록 ID)
endpoint: http://data-broker:<server.port>/csourceNotifications # data-federation.csource.endpoint에 지정한 호스트 값 사용 (레지스트리가 로컬 데이터 브로커의 최신 도메인 등록 정보를 통지할 때 사용)
data-registry:
base-uri: http://context-registry:<server.port> # 레지스트리의 접속 정보
sub-uri:
csource: /csourceRegistrations # 고정 값
subscription: /csourceSubscriptions # 고정 값
배포 환경에 따라 application.yml 파일은 application-local.yml / application-docker.yml / application-dev.yml / 또는 별도 생성한 파일입니다.
5.3.3. 빌드
배포 방식에 따라 JAR 빌드 혹은 Docker 빌드를 수행합니다.
Docker빌드 시, data-service-broker의 Dockerfile의 ENTRYPOINT 설정 항목이 변경해야 할 수 있습니다. 필요한 경우, 아래 5.3.4. 실행을 참고하여 해당 항목을 적용해주세요.
5.3.4. 실행
data-service-broker 어플리케이션 실행 시 지정하는 환경변수 중 Dspring.config.location
항목의 값을 5.3.2.에서 설정한 파일 명으로 지정해야 합니다. 기존에 사용하던 파일을 사용하는 경우 변경하지 않아도 됩니다.