본문 바로가기

반응형

좋아하는 것_매직IT/10.microservice

12.마이크로서비스, Atom & REST 비동기 통신은 무엇일까? Atom 이란? Atom is the name of an XML-d Web content and data syndication format, and an application-level protocol for publishing and editing Web resources belonging to periodically updated websites. 참고페이지 : https://validator.w3.org/feed/docs/atom.html 블로그에서 구독자가 접근할 수 있도록 개발된 데이터 포맷 Atom 포맷은 매우 유연하기 때문에 다른 타입의 데이터에도 적합함. Atom 데이터 포맷을 기반으로 하는 마이크로서비스의 통합(Atom & REST) 참고페이지 : https://github.com/ewo.. 더보기
11.마이크로서비스, 카프카에 대해서 알아보자. 카프카란? 아파치 재단의 카프카는 pub-sub모델의 메세지 큐 분산환경에 특화되어 설계되어 있다는 특징을 가지며, 그외에 클러스터 구성, fail-over, replication와 같은 여러 가지 특징을 가짐. 카프카의 아키텍처 마이크로서비스영역에서 카프카는 흥미로운 선택. 카프카의 특징 자바로 구현되어 있으며, API는 언어 중립 프로토콜과 함께 사용할 수 있음. 높은 처리량, 낮은 지연시간과 같은 일반적인 기능외에 복제를 통해 개별 서버의 장애를 보완, 더 많은 서버 대수로 확장가능함. 참고페이지 : https:/kafka.apache.org 메시지 기록을 저장함. 레코드를 영구히 보존함. 많은 양의 데이터를 처리할 수 있으며, 여러 서버로 분산 가능. 스트리밍 처리 기능을 갖추고 있음. 애플리케이.. 더보기
10.마이크로서비스, 메시지 지향 미들웨어(MOM)란? 메시지 지향 미들웨어(MOM) 마이크로서비스에서 MOM을 사용하면 결합도가 낮아짐. 마이크로서비스는 MOM과 메시지를 주고 받음. 즉,송신자와 수신자는 서로를 알지 못하며 통신 채널만 알 수 있음을 의미함. 송신자와 수신자는 메시지를 교환하는 토픽(topic) or 큐(queue)를 통해 서로를 찾음. 부하분산관련 여러 수신자가 동일한 통신 채널에 대해 등록한 경우 수신자 중 한명이 메시지를 처리할 수 있음, 즉 부하는 분산시킬수 있음. 로드 밸런스를 위한 특정 인프라가 필요 없음. MOM은 사용성이 높아야 하고, 높은 처리량을 제공해야 함. 모든 상황에서 적절한 성능을 보장하려면 설정과 관련한 노하우 필요함. MOM 솔루션 소개 JMS(Java Messaging Service) 자바 프로그래밍 언어와 .. 더보기
9.마이크로서비스, 비동기 통신이란? 비동기 마이크로서비스 동기 마이크로서비스 란? 특정 마이크로서비스가 다른 마이크로서비스에 요청을 보내면, 요청이 처리돼 해당 요청에 대한 결과를 얻을 때까지 기다린다면 동기라함. 비동기 마이크로서비스 란? 특정 마이크로서비스는 A 요청을 처리하는 동안 다른 마이크로서비스에 요청하지 않거나 B 요청을 처리하는 동안 다른 마이크로서비스에 요청을 보내지만 결과를 기다리지 않으면 비동기라고 함. 경우의 수 1.특정 마이크로서비스는 요청을 처리하는 동안 다른 마이크로서비스와 전혀 통신 안함. 즉, 다른 시점에 다른 시스템과 통신함. 2.특정 마이크로서비스가 다른 마이크로서비스로 요청을 보냇지만, 응답을 기다리지 않음. 통신 프로토콜 동기 동기통신의 경우 요청받는 서버는 각 요청에 응답해야 함. ex) REST, .. 더보기
8.마이크로서비스, ESI란 무엇일까? ESI(Edge Side Includes) ESI는 HTTP 클라이언트에서 리소스를 통합할 수 있는 수단을 제공하는 XML 기반 마크업 언어임. ESI를 사용하면 웹 애플리케이션이 다른 웹 애플리케이션의 HTML 일부를 통합할 수 있음. 이를 위해 웹 애플리케이션은 ESI 태그를 포함한 HTML을 전송함. ESI 구현체는 ESI 태그를 분석, 다른 웹 애플리케이션의 HTML일부분을 올바른 위치에 두고 통합함. 참고페이지 : https://www.w3.org/TR/esi-lang ESI 구문 예시 ESI의 구현체란? 웹 사이트는 해당 캐싱을 사용해 들어오는 요청을 바탕으로 캐싱해서 웹 페이지를 전달함. 웹 캐싱 서버를 ESI 구현체로 사용할 수 있음. 웹 애플리케이션은 캐싱 실패에 대한 요청을 처리하면 됨.. 더보기
7.마이크로서비스, 자원지향클라이언트 아키텍처란 무엇일까? 자원 지향 클라이언트 아키텍처(ROCA, Resource-Oriented Client Architecture) 웹 애플리케이션을 구현하는 방법, HTML과 같은 확립된 기술에 중점을 두고, 프론트엔드 모듈화와 통합에 많은 장점을 제공하는 아키텍처 ROCA 원칙 서버는 REST 원칙을 준수함. 모든 자원에는 모호하지 않은 URL이 있음. HTTP 메소드가 올바르게 사용됨. ex) GET 메소드는 데이터를 변경하지 않음. URL로 식별되는 자원은 JSON or XML과 같은 HTML외에 다른 표현 방식을 가질 수 있음. 모든 로직은 서버에 있음. 따라서, 클라이언트의 자바스크립트는 사용자 인터페이스를 최적화하는 역할만 수행함. 로직이 한 위치에서 구현되기 때문에 로직을 쉽게 변경할 수 있음. 즉 많은 클라이.. 더보기
6.마이크로서비스, 독립시스템(SCS, self-contained system) 은 무엇일까? 독립시스템(SCS, self-contained system) 이란? 매크로 아키텍처의 컴포넌트를 명세하는 마이크로서비스의 타입 중 하나. SCS는 완전한 매크로 아키텍처를 의미하지는 않음. 일부 도메인 로직의 구현에 필요한 모든 정보를 정확히 제공하는 여러 마이크로서비스를 제공, 따라서 독립시스템을 제공하는 것. 로직, 데이터, UI를 포함함. 변경을 더 쉽게 수행가능, 상용환경에 배포할 수 있음. SCS의 정의 참조 페이지 : http://scs-architecture.org 해당 웹사이트 내용은 아래 github 에서 소스코드로 제공되며, 누구나 변경 할 수 있음(웹사이트 콘텐츠, 크리에이티브 커먼즈 라이선스(Creative Commons License)) 참조 : https://github.com/.. 더보기
5. 마이크로서비스, 왜 가벼울까? 마이크로서비스가 가벼운 이유 마이크로서비스가 제대로 설계되면, 하나의 비즈니스 범위에 맞춰 만들어지므로 하나의 기능만 수행함. 결과 대부분의 마이크로서비스 구현체에서 볼 수 있는 공통적인 특징 중 하나는 마이크로 서비스가 작은 공간만을 차지한다는 점. 마이크로서비스를 지원하는 기술을 선택할 때 확인사항 관리할 수 있는 수준 내에서 마이크로서비스가 전체적으로 차지하는 공간을 통제할 수 있을 만큼 그 기술이 가벼운지 꼭 확인 필요. ex) 웹컨테이너 제티(Jetty) / 톰캣(Tomcat)은 마이크로서비스에 사용될 애플리케이션 컨테이너로서 웹로직(WebLogic) / 웹스피어(WebSphere) 처럼 복잡하고 무거운 전통적인 애플리케이션 서버에 비해 더 적합함. ex) 컨테이너 기술 도커가 VMWare / .. 더보기

반응형