본문 바로가기

Redis

20210830(월) [항해 85일 차] 소켓... 무중단 배포 가능할까? 무엇인가를 이루려고 하는 마음이 없다면 세상 어디를 가나 두각을 나타낼 수가 없다. 무지함을 두려워 말라, 거짓 지식을 두려워 하라. - 블레즈 파스칼 - 오늘 하루 종일 시도해서 redis의 pub, sub, adapter를 적용하여 이제 다른 프로세스 간 채팅은 완벽하게 된다. 다른 프로세스더라도 실시간 채팅이 잘 되는 모습 reload, restart, kill 이후 start 모두 다 동일한 현상이 있다. 연결이 끊기는 순간 join이 안되서 생기는 문제같다. 연결이 끊겼다가 다시 연결되면(listen할 경우) 조인하도록 조치를 취하면 해결될 것 같아 함수를 만들어서 어떻게 했는데 잘 안된다. io관련 코드를 통째로 server.listen 부분에 넣었는데 동일하게 동작하긴 했다.(왜?) 소켓은 .. 더보기
20210829(일) [항해 84일 차] 강을 거슬러 헤엄치는 자가 강물의 세기를 안다. - 우드로 윌슨 - 어제 무중단 배포 관련해서 나온 해결 책 중 하나인 레디스에 대해 좀 찾아봤다. In-Memory DB, 키-값 기반의 데이터 저장소이기 때문에 쿼리를 할 필요 없이 결과를 아주 빠르게 불러올 수 있다는 특징을 가졌다. 대표적인 특징은 노드와 마찬가지로 싱글스레드, 한 번에 하나의 명령만 처리할 수 있다. 레디스 서버에 메모리 한계가 왔을 때 처리하는 다양한 방법들이 있다. 클러스터링 할 때 사용하기도 하고, socket.io 공식 문서에 레디스 어댑터 부분을 보니 다른 서버로 클러스터링 되는 경우에도 하나의 DB를 사용해 통신이 가능하도록 되어있는 듯 하다. pm2 클러스터 모드로 켰을 때 프로세스가 같은 애들끼리만 소켓 통신이 되던 .. 더보기