마이크로서비스아키텍처 썸네일형 리스트형 15.마이크로서비스, 컨설과 아파치 httpd서버를 이용한 동기 마이크로서비스 시스템을 알아보자. 컨설(Consul)이란? Go 언어로 작성된 매우 강력한 서비스 탐색 기술이며, 마이크로서비스가 서로 통신할 수 있게 함. 참고페이지 : https://www.consul.io 컨설 코드 https://github.com/hashicorp/consul 확인 가능 기원 해시코프(Hashicorp)의 솔루션 마이크로서비스와 인프라 분야에서 다양한 제품을 제공함. 참고페이지 : https://www.hashicorp.com 해시코프는 컨설을 상업적으로 지원함. 특징 HTTP REST API를 내장하고 있고, DNS를 지원함. 컨설 템플릿을 사용하여, 컨설 설정파일을 생성가능함. 서비스 상태 확인 지원, 상태확인 실패시, 탐색에서 서비스 제외기능 복제를 지원함. 데이터 센터간의 데이터 복제를 지원함. 컨설 템플.. 더보기 13.마이크로서비스, 동기통신을 알아보자. 동기(synchronous) 마이크로서비스란? 특정 마이크로서비스가 다른 마이크로서비스에 요청을 보낼 때 요청을 받는 마이크로서비스에서 요청을 처리하는 동안 요청을 보낸 마이크로서비스가 해당 요청의 결과를 기다리는 것. 동기 마이크로서비스는 비교적 자주 사용되는 방법 넷플릭스(Netflix)나 트위터(Twitter)와 같은 마이크로서비스 아키텍처에서는 동기 통신을 사용함. 동기 통신 아키텍처의 장점 모든 서비스는 동일한 데이터 집합에 접근할 수 있기때문에 일관성 이슈가 거의 없음. 시스템이 API를 제공한다면 동기 통신이 자연스러운 접근 방법. 동기 아키텍처로의 마이그레이션은 쉬움. 프로그램에서 메소드, 프로시저, 함수호출은 보통 동기 호출임. 개발자는 동기 모델을 잘알고 있기때문에 쉽게 이해 가능함. .. 더보기 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 메시지 기록을 저장함. 레코드를 영구히 보존함. 많은 양의 데이터를 처리할 수 있으며, 여러 서버로 분산 가능. 스트리밍 처리 기능을 갖추고 있음. 애플리케이.. 더보기 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/.. 더보기 이전 1 2 3 다음