Upload
jbugkorea
View
940
Download
2
Embed Size (px)
Citation preview
맛만 보자 Undertow
Jeff Lee
Who am i
초콜릿을 14년 동안 받아보지 못한 개발자… (ㅠ.ㅠ )GRD ASKY (그래도 안생겨요)
http://blog.daum.net/dhlh0h34/107
먹통~ 먹통~ 왜~ 왜~
“1초에 30만명 접속" 중국 춘제 기차표 예매사이트 '먹통' 막은 알리바바출처 : http://www.ajunews.com/view/20150120144132775
제주항공 홈페이지 '먹통'…특가 항공권 예매 전쟁 시작출처 : http://www.hankyung.com/news/app/newsview.php?aid=201501206254g
코레일 예매 서비스 먹통…"원인 파악 중"출처 : http://biz.newdaily.co.kr/news/article.html?no=10034418
한국시리즈 예매, 작년에 이어 올해도 먹통출처 : http://m.mk.co.kr/sports/home/2014/1383520
저희 회사 서비스의 특징
서비스 접속의 80% 이상은 데이터베이스를 사용하지 않는다.
우리 회사 서비스는 글로벌을 지향한다.그런데 돈이 부족하다. (ㅠ.ㅠ )
파트너 서버
스마트 폰
데이터 베이스회사 서비스 서버
인터넷 트래픽의 폭발적 증가
PC 모바일 IoThttp://www.moneyone.co.kr/attachfile/images/000043/20130514151019435_N9HT2H6D.png
Nginx versus Apache
동시 접속자가 많아 질수록 ngnix가 apache보다 많은 요청을 처리한다.
동시 접속자가 많아져도 ngnix는 apache처럼 메모리 사용량이 많이 증가 하지 않는다.
http://blog.webfaction.com/2008/12/a-little-holiday-present-10000-reqssec-with-nginx-2/
어떤 마법이 숨어 있을까요?
Apache
Ngnix
Socket Connection Thread
Socket Connection
Socket Connection
Thread
OS Kernel
or
Thread Pool
Socket Connection Thread
Web Framework Benchmarks (EC2)
https://www.techempower.com/benchmarks/#section=data-r9&hw=peak&test=plaintext
Undertow - 나도 물 좋아해요~
저류, 되돌아가는 물결, 역류
Undertow - 넌 누구니?
Undertow has a composition based architecture that allows you to build a web server by combining small single purpose handlers.
- Full Java EE servlet 3.1 container- Low level non-blocking handler
http://undertow.io
왜~ Undertow를 쓸까?
겁니 가벼워요~- core 라이브러리 1M- 단순 웹 서버는 4MB 이하 힙 사이즈에서 동작
프로토콜 바꿔줘요~ (HTTP Upgrade)- HTTP 1.1에서 다른 프로토콜로 변경 해줌.
- Upgrade: websocket
당근~ Web Socket 지원- JSR-356 스펙을 포함한 웹 소켓을 완벽하게 지원
왜~ Undertow를 쓸까?
오~ Servlet 3.1 지원- Java EE servlet 3.1 지원
어디 숨었니?- 애플리케이션 안에 포함 가능- 혼자 작동 가능
앗 너무 유연해~- 미리 만들어진 핸들러를 필요한 만큼 가져다가 사용 가능
지원하는 프로토콜
HTTPHTTPSAJP(Apache JServ Protocol)
SPDYHTTP2(Draft 15)
미리 만들어진 Handlers
PathVirtual HostPath TemplateDateResourcePredicateHTTP ContinueWebsocketRedirect
TraceHeaderIP Access ControlACLURL DecodingSet AttributeRewriteGraceful ShutdownProxy Peer Address
Show me the code
Method chaining 방식으로 개발
Handler 만들기
File Service
WebSocket
Reverse Proxy
Error Handling
Servlet Deployment
개발 관련 코드 사이트
Undertow Githubhttps://github.com/undertow-io/undertow
JBoss Wildfly Github (웹서버 확장)https://github.com/wildfly/wildfly/tree/master/undertow
훈훈한 마무으~리
서비스 요구 사항에 맞는 프레임워크를 선택하세요.
- 프레임워크는 각자의 목적을 가지고 있습니다.- 프레임워크의 특징을 잘 파악하여야 합니다.- Undertow는 그 선택지 중 하나 입니다.