Page History
...
샘플에서는 추가로 DataDog(https://www.datadoghq.com/) 매트릭스 연동하였습니다. ( 클러스터에 발생하는 메시지에대한 모니터링)
Code Block | ||||
---|---|---|---|---|
| ||||
version: '3.4'
services:
datadog:
image: datadog/agent:7
ports:
- 8125/udp
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- /proc/:/host/proc/:ro
- /sys/fs/cgroup/:/host/sys/fs/cgroup:ro
environment:
DD_API_KEY: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
DD_DOGSTATSD_NON_LOCAL_TRAFFIC: "true"
lighthouse:
image: ${DOCKER_REGISTRY-}lighthouse
build:
context: .
dockerfile: LightHouse/Dockerfile
environment:
CLUSTER_IP: lighthouse
CLUSTER_PORT: 4053
CLUSTER_SEEDS: akka.tcp://actor-cluster@lighthouse:4053
akkanetcore:
image: ${DOCKER_REGISTRY-}akkanetcore
build:
context: .
dockerfile: AkkaNetCore/Dockerfile
depends_on:
- lighthouse
ports:
- 8080:5000
environment:
ASPNETCORE_ENVIRONMENT: Development
MonitorTool: datadog
MonitorToolCon: datadog
port: 5000
akkaport: 7100
akkaip: akkanetcore
roles: "akkanet"
akkaseed: "akka.tcp://actor-cluster@lighthouse:4053"
akkanetcore2:
image: ${DOCKER_REGISTRY-}akkanetcore
build:
context: .
dockerfile: AkkaNetCore/Dockerfile
depends_on:
- lighthouse
environment:
ASPNETCORE_ENVIRONMENT: Development
MonitorTool: datadog
MonitorToolCon: datadog
port: 5000
akkaport: 7000
akkaip: akkanetcore2
roles: "akkanet"
akkaseed: "akka.tcp://actor-cluster@lighthouse:4053"
akkanetcore3:
image: ${DOCKER_REGISTRY-}akkanetcore
build:
context: .
dockerfile: AkkaNetCore/Dockerfile
depends_on:
- lighthouse
environment:
ASPNETCORE_ENVIRONMENT: Development
MonitorTool: datadog
MonitorToolCon: datadog
port: 5000
akkaport: 7000
akkaip: akkanetcore3
roles: "akkanet"
akkaseed: "akka.tcp://actor-cluster@lighthouse:4053"
|
데이터 분산처리
DC가 단일 DB라고 가정해봅시다. AKKA에는 메시지를 저장하는 영속성 기능도 지원하지만
중요 도메인 데이터에대해 RDB로 구성된것을 AKKA의 Persist 로 전환하는것은 바람직하지 않습니다.
RDB는 가장 안정적이고 검증이된 Persist역활을 하는 것중 하나이며 ,RDB의 부담을 덜어주는 방향으로
...
측정가능
클러스터에서 발생하는 도메인 메시지에대한 모니터링및 측정은 장애대응/성능향상등을 위해 중요한요소이며
단순하게 CPU사용량/네트워크 사용량만을 이용하지 않습니다. 설계된 메시지에대한 유연한 오브젝트 단위 카운팅이가능하며
다양한 모니터링 툴과 연동 가능합니다. ( 이전장 참고 - 06. 실시간 메시지 성능 카운팅 )
여기서는, 3대를 클러스터로 묶은후 110만 메시지를 분산 전송하고 ,유실여부와 TPS를 측정하였습니다.
단일노드에서 1700tps정도 나오도록 설계하였으며, 3대의 노드에서 3배의 성능 향상이됨을 검증을 하였습니다. 단일노드가 기대치 이하이거나(100Tps 이하) 자신이 만든 기능에 대해 성능 측정을 할수 없다고 가정해봅시다. |
데이터 분산처리
메시징은 바
- https://getakka.net/articles/clustering/cluster-sharding.html
- https://getakka.net/articles/clustering/distributed-data.html
...