동료!memcached에 대한 PHP-memcache 세션 페일 오버
memcached 서버를 처리하기 위해 memcache (2.2.6) 클라이언트 라이브러리 (http://pecl.php.net/package/memcache)와 함께 5.3 (5.3.8)을 실행 중입니다.
- 만 기본 PHP 세션 지원 (어떤 사용자 정의 핸들러)
는 내가 기대하는 것입니다 풀
Session start failed. Original message: session_start(): Server 10.0.10.111 (tcp 11211) failed with: Connection refused (111)
관련 PHP 설정은 동안 (나는 그것이 가까운 표준 있다고 생각하면서)
session.save_handler memcache
session.save_path tcp://10.0.10.111:11211?persistent=1&weight=1&timeout=1&retry_interval=10, tcp://10.0.10.110:11211?persistent=1&weight=1&timeout=1&retry_interval=10
및 memcache 설정은 다음과 같습니다
Directive Local Value
memcache.allow_failover 1
memcache.chunk_size 8192
memcache.default_port 11211
memcache.default_timeout_ms 1000
memcache.hash_function crc32
memcache.hash_strategy standard
memcache.max_failover_attempts 20
Memcached가 여전히 두 번째 서버에서 실행에서 완벽하게 접근 웹 서버 :
telnet 10.0.10.110 11211
Trying 10.0.10.110...
Connected to 10.0.10.110 (10.0.10.110).
Escape character is '^]'.
get aaa
END
quit
Connection closed by foreign host.
다른 말로하면, f 나열된 서버가 대기열의 첫 번째 서버에 성공적으로 연결하지 못하면 순차적으로 충돌합니다. 마침내 나는 3.0.x 클라이언트 라이브러리를 사용할 수 있다는 것을 알았지 만 아직 베타 버전만큼 나에게는 너무 안정적이지 않습니다.
표준 PHP, 클라이언트 lib 및 서버에서 원하는 동작을 얻으려면 어떻게 조언하십시오.
고맙습니다.
최저
, 유진
session.save_path 지시문에서 여러 개의 (쉼표로 구분 된) 값을 사용할 수 있습니까? 나는 php docs를 perusing 어떤 실제 예제를 보지 못했어요. –
@Mike http://php.net/manual/en/memcached.sessions.php : '세션 서버 풀에 사용할 호스트 이름 : 포트 항목을 쉼표로 구분하여 정의합니다 (예 : "sess1 : 11211, sess2"). : 11211 "." – Eugene
링크를 보내 주셔서 감사합니다. 해당 페이지를 보지 못했습니다. 최소한 memcached 아래 묻혀있는 세션 문서에서 참조해야합니다. OP에서 오류 상태에 대해 언급합니다. 'Server 10.0.10.111 (tcp 11211) failed', 그리고 10.0.10.110으로 telnet 할 수 있다는 예를 들었을 때, 실제로 10.0.10.111로 telnet 할 수 있는지 확인할 수 있습니까? –