msa에서 특정 지점에서 장애가 발생했을 때,

해당 지점과 연결된 블로킹 서버들은 타임아웃 전에 스레드가 전부 점유돼서 장애 발생하고 그 앞에 서버도 블로킹이면 장애 전파되고 (무한반복)

논블로킹 서버들은 작업이 쌓이긴 해도 스레드가 점유되는건 아니라서 해당 지점과 연결되는 요청들만 타임아웃 발생하고 다른 요청들은 정상 서빙 가능


이희승님 말고 저런 이야기 하는 사람 한명도 못봤네

다들 성능만 이야기하는데, 사실 성능은 그정도로 요구되는 경우가 매우 드물고 서버를 늘려서 해결할 수 있음

그리고 기본적인 성능 차이가 의외로 많이 안남

많이 나려면 io 지연이 길어야하는데, io 지연 길면 애초에 정상적인 서비스가 불가능한 상황임
io 지연 없어도 요청이 몰리면 성능 차이가 나기 시작하는데, 이런 경우는 위에서 말했듯이 서버 늘리면 됨


그런 의미에서 msa에서는 spring mvc보다 spring webflux가 더 좋은데
webflux 이놈이 쓰기가 매우 잣같다 이거지

서비스들이 거미줄처럼 연결되는 진정한 msa에서 왜 node 쓰는지 더더욱 이해가 간다
물론 한국 좃밥들의 msa호소인들에겐 해당사항 없음