본문 바로가기

분류 전체보기

(108)
Circuit Breaker (Hystrix) Circuit Breaker (Hystrix) circuit breaker는 사전적 의미로는 회로 차단기, 주식에서는 [주식시장에서 주가가 급등 또는 급락하는 경우 주식매매를 일시 정지하는 제도.] 이다. VI(변동성 완화장치)랑 다른건가... 아무튼 중요한건 회로 차단기나 주식에서나 과부하가 발생되면 조정해주는 장치이다. Netflix Hystrix도 동일한 기능을 제공한다. 분산환경에서는 종속성있는 많은 서비스들이 불가피하게 실패한다. Netflix Hystrix는 latency tolerance 와 fault tolerance 를 추가해서 분산 서비스 간 상호작용을 제어할수 있도록 지원한다. Hstrix는 서비스 간에 액세스 지점을 분리하고, 서비스 전체에 걸쳐 계단식 장애를 중지하며, 시스템 전체..
Netflix MSA pattern - 1 Netflix는 세계에서 가장 MSA 를 잘하고 시청시간이 1.25억 시간 이상인 넷플릭스의 동영상 트래픽을 100% 처리한다. 이를 동시 최고 트래픽으로 환산하면 초당 수십 테라비트에 달하며, 이에 따라 넷플릭스 오픈 커넥트는 세계에서 가장 많은 트래픽량을 처리하는 네트워크 중 하나이다. 이름만 들어도 아는 유명한 기업들이 MSA를 도입하기 위해 Netflix 오픈소스를 사용하고, spring camp 2018 세션에서 들었던 11번가 레거시 제거 프로젝트 에서도 Netflix 오픈소스를 사용했다고 들었다. 내가 회사에서 진행하는 프로젝트에서도 Netflix 오픈소스를 사용해서 이름은 많이 들어봤는데 정확히 하는 역할이 무엇인지 알아보기 위해서 정리!! 일단 Netflix 홈페이지에 있는 설명을 보면...
3. Spring batch domain – job, step 아래 보이는 다이어그램은 수십년간 사용된 Batch 아키텍쳐의 단순화된 버전입니다.이것은 배치처리과정에 대한 domain 을 대략적으로 구성해서 보여줍니다. 스프링 배치는 견고하고 유지보수가 용이한 구현을 제공합니다. JobLauncher로 작업을 실행하고 현재 실행중인 프로세스에 대한 메타 데이터를 JobRepository에 저장합니다. 1. JobJob 은 배치 프로세스에서 캡슐화 되있는 entity이고 단순히 Step을 위한 컨테이너입니다. projet에서 job은 xml이나 java base 컨피그 설정을 할 수 있습니다.JobInstance다이어그램의 ‘EndOfDay’작업과 같이 하루가 끝날 때 한 번 실행해야하는 배치 작업을 생각해보면, 하루에 하나의 ‘EndOfDay’작업이 존재하고, 이것..
2. Spring Batch Admin 스프링 배치 어드민은 스프링은 오픈소스 프로젝트이며, 스프링배치에 대한 유저인터페이스를 웹 베이스로 제공합니다. spring boot 와 spring admin을 연동시켜보았습니다. – maven dependency 추가 spring admin batch 에서 web 설정을 그대로 쓰기 위해 servlet-config, webapp-config 설정을 가져옵니다. – mainConfiguration을 import하고 bootRun을 하면 콘솔에서 접근가능한url들이 나타납니다. http:도메인/home 으로 들어가면 다음과 같이 페이지가 뜹니다. spring IO 에서 spring batch에 대한 소식을 봤는데 버전 2.0.0.M1 이 릴리즈 되면서 다양한것들이 가능해졌습니다. [… will now s..
1. Spring batch 소개. 0. Why Spring Batch 기존 배치 프로그램 [A씨의 배치 개발 일상] A씨는 배치 개발을 위해 개발을 시작한다. A씨는 DB에 자신있어서 프로시저를 애플리케이션에서 호출해서 쓰고, 스케줄러는 DB 스케줄러를 쓰기로 한다. 기껏 JPA로 DB에 독립적으로 만들어놨는데 프로시저를 호출함으로 써 DB에 다시 종속적으로 포함됬다. 프로시저를 작성하고 DB 스케줄러를 등록하면서 개발을 완료했다. 테스트 과정에서 갑자기 이유없이 배치가 정지되는 상황이 생기고, 비정상적으로 중단된것을 알지 못했다. 확인 결과 한꺼번에 많은 양이 몰려서 발생한 에러였고, A씨는 밤새 비정상 정지되었던 배치를 다시 돌리는 로직을 추가 했으며 A씨는 배치가 돌았는지 쿼리를 실행해보고 확인한다. 현업에서 배치프로그램을 쓰다가 ..
Strict-Transport-Security 헤더에 관련해서... Strict-Transport-Security 헤더 - http 헤더는 브러우저에게 웹 사이트와의 통신을 반드시 유효한 https 터널을 통해서 진행하라고 지시.- 임의의 https 오류를 받아들이고 그냥 비보안 연결에서 통신을 계속 진행하는 것은 불가능.- 브러우저는 사용자가 브라우징을 더 진행하지 못하게 하고, 대신 오류를 설명해 준다.- Strict-Transport-Security 헤더를 이용하면 평문(암호화되지 않은) 통신 채널을 통해 전달된 내용을 사용자가 받아들이지 못하게 할 수 있다 리다이렉션으로 해결. Protected Context /* PUT DELETE HEAD OPTIONS WEB-INF/web.xml 또는 tomcat/conf/web.xml 에 넣고 톰캣을 재시작하면 됩니다. t..
자바 다형성과 추상클래스 https://opentutorials.org/module/516/6127 이해하기 쉽게 잘 나와있음.
http url 문법과 리소스 리소스 : 웹 서버는 웹 리소스를 관리하고 제공하는데, 이 리소스는 웹 콘텐츠의 주요 원천이다. https://www.google.co.kr 대부분 url은 스킴://서버위치/경로로 이루어져 있다. 더 자세하게 나누면 스킴://사용자이름:비밀번호@호스트:포트/경로;파라미터?질의#프레그먼트 스킴 : 웹 클라이언트가 리소스에 어떻게 접근하는지 알려준다. 또한 스킴은 프로토콜을 의미하는데 http 프로토콜이 아닌 다른 프로토콜로도 사용가능 하다. ex> mailto, ftp 등사용자이름 : 몇몇 스킴은 리소스에 접근하기 위해 사용자 이름을 필요로 한다.호스토와 포트는 리소스를 호스팅 하고 있는 장비와 그 장비 내에서 리소스에 접근할 수 있는 서버가 어디있는지 알아야하는데 호스트와 포트는 그것을 제공해준다. 경..