![Memcached 서버: 두 개의 서버 URL이 동일한 서버를 가리키는 것이 좋은 습관입니까?](https://rvso.com/image/567607/Memcached%20%EC%84%9C%EB%B2%84%3A%20%EB%91%90%20%EA%B0%9C%EC%9D%98%20%EC%84%9C%EB%B2%84%20URL%EC%9D%B4%20%EB%8F%99%EC%9D%BC%ED%95%9C%20%EC%84%9C%EB%B2%84%EB%A5%BC%20%EA%B0%80%EB%A6%AC%ED%82%A4%EB%8A%94%20%EA%B2%83%EC%9D%B4%20%EC%A2%8B%EC%9D%80%20%EC%8A%B5%EA%B4%80%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
여러 다른 파일과 서버에서 Memcache 서버에 연결되는 시스템이 있습니다.
하나의 서버를 유지하고 싶지만 트래픽이 많은 기간 동안 Memcache 서버 수를 늘리는 옵션을 유지하고 싶습니다.
내 생각은 memcache에 두 개의 서버가 있고 두 개의 URL이 (DNS를 통해) 단일 서버를 가리킬 것이라고 알려주는 것입니다. 나중에 원하면 여러 곳에서 코드를 변경하지 않고도 서버를 추가하고 DNS를 변경할 수 있습니다.
이것이 좋은 습관입니까? 두 개의 서버 연결이 있지만 둘 다 동일한 서버를 가리킨다는 사실로 인해 성능 비용이 발생합니까?
코드를 변경하고 배포할 필요 없이 Memcache 용량의 즉각적인 확장성을 달성하는 방법에 대한 다른 아이디어가 있습니까?
답변1
사용 중인 memcached 클라이언트와 여러 서버에 걸쳐 키를 해시하는 방법을 결정하는 방법에 따라 다릅니다. 단일 memcached 서버는 단일 웹 서버가 처리할 수 있는 것보다 더 많은 연결을 제공하므로(아마도) 두 개의 서버를 지정한다고 해서 더 나은 성능을 기대해서는 안 됩니다. 실제로 클라이언트가 서로 다른 두 서버(실제로 동일한 서버)에 걸쳐 키를 해시하려고 시도하면 득보다 실이 더 많을 수 있습니다.
다시 배포하고 싶지 않다면 구성 옵션으로 서버에서 가져온 ENVIRONMENT 변수에 서버를 나열하겠습니다. 예를 들어 ENV['MEMCACHE_SERVERS']를 입력하고 다시 배포하지 않고 서버측에서 간단히 구성하면 됩니다.
Memcache의 장점은 중복되거나 장애 조치되도록 의도된 것이 아니며 지속성 저장소가 아니라는 것입니다. 완전히 죽을 수도 있고 사이트의 캐시 적중률이 0%가 되지만 적어도 여전히 작동합니다.