-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
지선
p.41
- Facebook Launches “Nearby Friends”
- Facebook to shutter its Nearby Friends service, having lost the friend-finding market
p. 44
- 위치 정보를 모든 친구에게 전송해야 한다 → HTTP 프로토콜을 사용하지 못하게 될 수도 있다?
p.47, p. 62-63
- 웹 소켓 서버, 유상태 서버 클러스터라는 말이 구체적으로 어떤 걸 말하는건지?
- p.55 로드밸런서가 인식하는 노드는 연결에 대한 상태를 가지고 있음. 노드 제거 시 draining 상태로 변경. draining 상태일 경우 해당 노드로는 새로운 웹소켓 연결 생성이 안 됨
- 레디스 펍/섭 서버가 유상태 서버라는 것
- 채널에 대한 상태정보: 구독자 목록
- 특정 채널을 담당하던 펍/섭 서버를 교체하거나 해시 링에서 제거하는 경우 → 채널을 다른 서버로 이동시키고, 해당 채널의 모든 구독자에게 알려야 함
- 아마도 서비스 디스커버리가 모든 웹소켓 서버에 해시 링이 갱신되었음을 알리고, resubscription 요청이 발생한다는 말일듯? (p. 63)
p.48, p.57
레디스의 Pub/Sub 시스템은 메시지를 보관(queuing) 하지 않습니다. Publish 하는 시점에 이미 실행한 subscribe 명령으로 대기하고 있는 클라이언트들에게만 전달됩니다.
DictEntry의 key 필드가 channel을 가리킨다. 한 channel을 여러 클라이언트가 subscribe 할 수 있으므로 dictEntry의 value 필드는 리스트(linked list)를 가리킨다. 리스트는 여러 개의 listNode를 가지고 각 노드는 클라이언트를 가리킨다.
PUBLISH channel message 명령은 먼저 channel을 Hash table에서 channel을 찾고, 리스트에 저장되어 있는 클라이언트들에게 하나씩 메시지를 보낸다. 그다음 패턴을 등록한 클라이언트들에게 메시지를 보낸다.
p. 60
Metadata
Metadata
Assignees
Labels
No labels
