2017-04-15 30 views
1

나는 방글라데시를 사용하는 서버 클러스터를 설정하고 PostgreSQL db 연결을 위해 Redis sentinel 및 HAProxy를 사용하여 (pgpool을 사용하여) 재생하고 있습니다. 내 웹 서버 노드 각각에 haproxy와 redis 센티널을 넣고 직접 연결할 수 있는지 궁금합니다. DB와 redis에 대한 분산 된 연결을 생성하고 단일 실패 지점을 연결하고 다른 db 노드로 분할하는 단일 haproxy를 갖는 것으로 줄일 수 있다는 생각입니다. 또한 데이터베이스를 haproxy를 통해 연결하고 redis를 (sentinel을 통해) localhost에 캡슐화 된 상태로 유지할 수 있습니다. 이게 말이 돼?웹 노드에서 db와 redis의 센티널을 위해 haproxy를 실행해야합니까?

답변

1

리소스/비용을 절약하려는 경우에만 적합합니다.

redis sentinel은 머신 카운트가 확장/변경 될 가능성이 있으므로 기계마다 하나씩 배치하는 시나리오에 맞지 않는 경계선 인스턴스의 한정된 목록이 있어야합니다.

그렇지 않으면 다른 인프라 구성 요소 (특히 redis와 같은 클러스터링/HA 특성이있는 구성 요소)를 다른 시스템에 배치하는 것이 가장 좋습니다.

이들 모두를 함께 사용하면 대개로드가 증가하면 응용 프로그램이 서로를 방해하고 CPU를 서로 훔치게됩니다. 또한 애플리케이션/스크립트/플로우를 위치 인식 (즉, 외부 리소스가 항상 로컬이라고 가정)하도록 설계하는 것이 위험합니다. 이는 또한 실제로 좋은 습관이 아닙니다.